Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: My first tiny web service, a simple key/value store (tinycache.io)
33 points by donutdan4114 on May 24, 2015 | hide | past | favorite | 46 comments


I am not sure I understand the pricing and/or the service. What are your guarantees about dropping or not dropping keys? Obviously you can't sell unlimited memcache space for 20$/mo and you must protect against customers exhausting all your available resources.

So since it's quite obvious that there must be some limit and/or expiration policy I think you should really just spell it out on the page.


We never drop keys unless the expire time is set. As long as someone isn't abusing the service by flooding it with random data, it will scale for them.


How do you determine if I am flooding your service with random data?

My understanding is that one of your main ideas is to encrypt the data so I am honestly wondering where you would even start to check if a user was randomly flooding you or legitimately storing lots of keys.

Not trying to pick nits here... My original point was that -- in my opinion -- it comes across slightly dishonest if you insist that there is no limit even when it's obvious there must be one. (I mean seriously, how many machines is this running on right now? Even if it's running on amazon/google you can only scale my backend up so much with 20$/mo)


Thanks for the feedback, I updated the pricing message to be clearly max-keys of 100,000 for gold plan. All feedback appreciated.


Another kind of abuse could be to store huge chunk of data per key. Even with 10,000 keys if each key stores a 50 MB JSON blob you're storage cost could go up quickly.


Max value is 64kb


Okay I will update the messaging to be more accurate. Good feedback.


It's an interesting idea, but I'm not sure there are very many potential use cases. Mostly, I can see using this client-side so that I don't need to set up a back end myself, but if I understand correctly, that's not really possible since you have to keep the API key private.


Yeah, I remember there was a service like this around 2009 (that, like this, I thought was pretty nifty... I wish I could remember the name) - but it was anonymous and you didn't need auth: you could write to a url and have the hash of it as the "read" endpoint... I used that for a lot of quick mock-ups and things.


You're probably thinking about openkeyval.org which is now defunct.


It is of course possible, it just needs a domain whitelist, app public api key and per user rate limiting


Would definitely be interested in figuring out a way to access the api securely in JS.


I've used parse.com free account, created a class named 'cache' with columns 'key' & 'value'. The free plan's capacity is like 100k bigger than your highest paid plan. Sorry, I do not see the advantage of your service.


>> curl https://tinycache.io/api/v1/YOUR_API_KEY/mysecretkey?decrypt...

Passing the key as a GET parameter is not super-secret, I would avoid doing that if possible.


Technically it is secure over HTTPS. Is there a specific concern you have?


URLs have a tendency to end up in logs. Unless you are careful in your implementation (including what you inherit with your 'stack'), you may end up inadvertently persisting keys.

EDIT (btw, I love the concept of your product)


Thanks for the feedback!


I like the idea of the pixel font, but find one that doesn't make the N look ugly. Silkscreen's usually a safe choice.

And I'd make the dev account more than 100 hits/day. I could easily go through that while actually coding, fixing bugs, repeat.

Since the use case is about quick, lightweight projects, I'd make creating an account optional until you need it. I'd want this to be as frictionless as possible, so that if I'm in the throes of coding and want the simplest possible key value store, I can just type in a URL like https://tinycache.io/api/myemail@address.com/CACHE_KEY and know it'll work without having to break out of my editor.


Thanks for the feedback. In regards to the "font", that was actually done in photoshop. It's meant to look a bit pixelated and "off". But I'll probably tweak it to clean it up.


I'd really caution against your pricing structure. Unlimited access to a million keys is no joke, I've run some rather large memcached servers and none of them were $20/month.

You should pricing should always reflect the true cost + your desired profit margin. I'd probably be charging hardware usage + 15% before even factoring in the value of the service itself.

Right now I'd say you're vastly too cheap; don't think about the costs solely as your servers but what's the value you've added to memcached/caching? Surely that's more than what you're charging?

Tldr; Keep the small plans cheap but make the big plans waaay more expensive. Those using the biggest plans are finding the most value.


Thanks for the feedback, I will review the pricing to data storage cost. My general thought is that most people won't max out the system, and that the cheaper accounts will offset the cost of the larger ones.


You bring up a good point though, the service is much more focused on smaller data sets. I'm not trying to compete with huge storage services.


well, if you consider that they're probably just deploying on $5 and $10 digitalocean droplets, the 'unlimited' nature of the requests just means 'as much as your instance can handle', and there's a built-in profit margin.


Currently the service is in rackspace, and it's not cheap hosting. But yes, "unlimited" means as fast as the service can handle among all the other requests that are incoming too.


This service isn't designed to compete with something that has dedicated VMs and that kind of thing. It's vastly cheaper than most other data stores for this reason. Granted, it will scale for very heavy use. Right now, it's essentially launch day, so how much people use it will determine how I optimize it.


why not just separate all the clients onto cheap discrete VMs running the api, and forward requests with nginx or haproxy or something?


Who would pay for this ? I truelly wouldn't know


parse.com is essentially the same thing and it seems that it's popular enough. Of course it has a lot of polish and additional services on top of KV store but it's core value is key-value store with REST API.


Yes, similar idea. Mostly focused on personal applications, and small apps. Will probably add additional features in the future for doing more advanced queries, message queues, etc.


I agree... definitely something I'd use in a weekend hack, but if it ever got more than 100/req a day, I'd probably rewrite the backend myself.


Indeed it's definitely focused on small applications or personal use.


Hey everyone, all feedback is appreciated. The main point of the service is speed, and ease-of-implementation. It's very easy to setup an account, and the API is very simple.

Always curious what fellow HNer's opinions are.


Congratulations on releasing something out there. I think above all, you will walk away with some gained wisdom in various areas of web services that'll make your next project even better.


Awesome I (a human) love it. Trying to sign up but I'm having this problem: https://www.dropbox.com/s/yd91j84bmrg4w0w/Screenshot%202015-...


Hmm, not sure what's going on with that. Try again, I changed the captcha type.


Worked now, thanks! By the way, with this many haters you know you must be onto something good...


For personal use, this page explains how to setup a local script to work with the API. Makes it super easy to access whatever data you want across different computers.

https://tinycache.io/documentation/examples


I'm having a hard time figuring out what this service could be used for.


Mostly for small scripts and apps that could store data without having to setup your own back-end.


I'd probably go with firebase for a simple app or proof of concept. It even includes authentication.

https://www.firebase.com/pricing.html


My problem with a service like that is that once you jump out of the free plan, their prices jump way up. tinycache is a small service for small applications with small pricing.


Even for that I wouldn't use this. And I wouldn't even think of paying for that.

EDIT: You can't even use this securely on the client side, so I would have to set up a back-end anyway.


Okay


Key/value databases are simple enough to setup and run, even for small projects. I can't see myself paying for a service like this.


Indeed. Although setting up a central data server with an API takes a bit more work. However, if you're willing to do the work and set all of that up yourself, than yes, the service isn't for you. I see it more as a simple way for someone to integrate their script or app without having to do a lot of the cloud-setup.


I actually like this, and am happy that you were able to release something... Most people don't!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: