You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After 7 years of n:point quietly running in maintenance mode, it's time for some small updates.
There are two main motivations:
Reduce the cost. This project wasn't originally engineered for the scale it's running at now (~10M requests/day), and is now costing me about $500/mo, much more than I had intended to float for a free-to-use project.
Until recently, I didn't have capacity to maintain the site, and so with the cost going up, I had to seriously consider shutting it down. But I'm still proud of it, and it runs great even after all these years. I think with some small tweaks, I can keep it online. I want to honor my FAQ:
I will do everything I can to make sure the service stays up forever. If you are planning on using it for something particularly important and permanent, we should talk about setting up a paid plan with defined SLAs.
Unfortunately, there's no smoking gun for the high bandwidth cost. It's a large number of medium-size documents (50KB - 500KB) being accessed many thousands of times (but within the 600 requests/min limit).
Update plan
Add a size limit, probably something like 100KB to match jsonbin.io. Some of the high bandwidth is caused by way oversize documents, what looks like many-MB PDF document data, being accessed thousands of times.
Enforce the rate limits (currently 600 req/min by IP and by document token)
Add proper caching via CloudFlare
Add a special surprise for the bad actors (won't reveal yet but I have something in mind 😉)
Automatically delete unowned documents that haven't been accessed for over a year
After that I will take stock of the costs and re-evaluate. It may be necessary to take more measures, but I hope not.
Possible extensions
I want to work on other projects first, but there are some directions on my wishlist to take the project:
Paid accounts (maybe like $10/mo to increase the size and rate limits, and help support the project). Just aiming to cover costs, this project is not intended to really make money
POST requests (already implemented, but not released because it was more than I could support)
Some kind of jq like query language for documents
POST requests to a subsection of the data. I like the idea of being able to append to a list via POST request, for example, making n:point a mini backend for prototype projects
Other options for n:point users
For anyone looking for higher limits and more features, https://jsonbin.io/ seems to work well!
I'm not interested in just trying to replicate all of JSON bin's features. If it works, great. I made this site because I wanted an even more lightweight version and I wanted to support JS-style syntax, which nobody else offered at the time.
After 7 years of n:point quietly running in maintenance mode, it's time for some small updates.
There are two main motivations:
Until recently, I didn't have capacity to maintain the site, and so with the cost going up, I had to seriously consider shutting it down. But I'm still proud of it, and it runs great even after all these years. I think with some small tweaks, I can keep it online. I want to honor my FAQ:
Unfortunately, there's no smoking gun for the high bandwidth cost. It's a large number of medium-size documents (50KB - 500KB) being accessed many thousands of times (but within the 600 requests/min limit).
Update plan
After that I will take stock of the costs and re-evaluate. It may be necessary to take more measures, but I hope not.
Possible extensions
I want to work on other projects first, but there are some directions on my wishlist to take the project:
jqlike query language for documentsOther options for n:point users
For anyone looking for higher limits and more features, https://jsonbin.io/ seems to work well!
I'm not interested in just trying to replicate all of JSON bin's features. If it works, great. I made this site because I wanted an even more lightweight version and I wanted to support JS-style syntax, which nobody else offered at the time.