Micro APIs for Everyday Use
blog.m3o.com
blog.m3o.com
2. Why would I pay someone to "generate IDs" at $1/10k requests?
3. If the DB API was performant and supported full SQL, it looks like it would cost $business I know of two orders of magnitude more than current cloud spend to switch to it. (They would not, because of compliance.) For whom is this the right pricing model for?
I compared the pricing here to Amazon Aurora Serverless (https://aws.amazon.com/rds/aurora/pricing/) with their example of 110 operations/second. Their cost: $186/month, yours: $28,512/month.
4. No SLAs, SLOs, SLIs, metrics, no data sovereignty or retention/deletion policy, no privacy policy, no compliance policy, no mention of encryption or details on how tokens are generated, rotated, revoked. No mention of password security in the user identity API. Why should I trust that you're not selling my data or storing it on an SD card somewhere that anyone could just grab and walk away with?
Admittedly the "library as a service" ones are more for niche use cases, like how I go to a website sometimes to get the current Unix timestamp.
If you want an example $X_FORMAT id, paying 1/100 cent for it is no big deal.
alias t='date +%s'I teach front end web development to a total beginner who is only just becoming aware that programming a web app with persistent state shared amongst users requires separate technologies than HTML/CSS/JS. The table API could be ideal for her. The alternatives: shared hosting with PHP/MySQL, anything AWS, or even Google Sheets/Airtable are all much bigger cans of worms that just slow down her cycle of getting things out there and learning the whole of the SLDC.
1. How do you trust any startup is going to be around in the future? You can't know for sure, but something about the product calls out to you. Luckily all our services are "source available" here https://github.com/micro. Meaning if the company ever went under, you could go ahead and reuse these. We'd obviously change the licensing as required. Otherwise, we're also happy to license this technology to anyone who wants to run it themselves. Its just not "open source" by the traditional measure.
2. Maybe you wouldn't, or maybe you would depending on what kind of IDs you want to generate and how inconvenient it is for you to do otherwise. Snowflake IDs aren't the easiest to create, they require backend clustered coordination and uniqueness. But alas pricing is an art so all of this will likely change over time and be made much cheaper as we get more feedback like this.
3. If someone is looking for full SQL, they should go spin up a managed SQL database, this isn't that. We see this as a super simple and convenient persistent data storage layer that might work really well for frontend or people who were otherwise big fans of mongodb for that simplicity. It's just our first shot at some sort of CRUD layer.
4. You're right, we should do better on this. Firstly we're not selling your data and we only store whats needed purely from a customer perspective. We offload a lot of credit card and transaction processing to stripe so don't store that directly either. The product is in beta, so no SLAs just yet. Everything else, we're just learning and evolving so hopefully with helpful prodding like this we can do better.
But I see that as a challenge too, your target market is very limited. It is really cool product from dev or engineer perspective but I am not sure how you will go beyond individual developers. I think by posting your service here you might get a bias opinion, what would be really cool is if you target people who are learning to code and couple this service with that, it adds lot of value. Joy of getting an API working as a junior dev acts like a positive stimuli and your APIs are built for that. I dont think it is built for serious apps and services because the liability is high and it is very competitive too.
I think those people would get more value/experience from more integrated solutions/platforms of the "no code" family.
For example, Cache, a Get is 0.0001$ per request, so, with the initial 5$ you would have 50k Gets that, given the nature of a Cache seems extremely expensive. I guess your highest costs are storing up to 1mb and egress traffic (If you are in a cloud provider) but, even for a side project I could destroy the 5$ by myself developing the project itself.
Other than that, loving it, and I will try to give it a go in the future, and check how the pricing affects my decisions.
Most of you competitors have some form of free tier and cheapo devs like me would prefer to embrace some complexity over paying upfront for just simple projects. the $5 starting bit is great but is not the same as a limited free tier.
Overall love the idea and wish you all the best. Love the minimalistic/functional UX of the site as well.
User completes a human-level task (for another API even) somewhere between CAPTCHA and MTurk to earn a few API calls.
Do something with ads near or even on the result to earn a few API calls. (Prototyping dev eyeballs are valuable.)
But honestly nothing wrong with charging money for a service.
If a developer makes an API and it becomes popular on Micro, what prevents Micro from cloning that API and cutting the dev out of the proceeds?
In a similar vein, how much visibility does micro API bring to my API compared to established platforms? Even assuming it's a lot, why not just publish my API on all of them?
Looking at it another way. I worked on open source for many years. Seeing what AWS has done to open source projects, it's a really dishonourable thing and while I get they're running a business I think there were better ways to go about it than just lifting a project and running it themselves. So for us it's really about building a trustworthy business that empowers individual devs and small teams. And you can't do that if you try to cut out the people who got you to where you wanna go.
This seems like it would be easy to monetize (if that were desired) by just increasing quotas / limits, or adding certain features to any particular API that made QOL better.
The PDF api was really easy to hook into for cleaner receipt attachments in emails.
Happy to chat further about this space if you're interested && keep up the great work building for devs
Why do I need an API to convert images? Find emojis? Convert "John" to "Hello John"? (ok the helloworld service is just a demo.) I can do that on the client using Javascript.
Moreover, why this instead of something like AWS Lambda, where you code your own service? Instead of prebuilt APIs, why not make it more general?
Don't get me wrong, this seems like a great service and I can see some niche use cases. Also basic APIs for things like database operations and authentication which can actually get pretty complex, and like getting the weather which you can't do yourself. But I can't really see the benefit to some of these APIs, and a custom lambda-style service-creator seems better than a lot of niche APIs and "submit a form if you want your API here".
Btw, I suggest adding links to https://m3o.dev from https://m3o.com and vice versa. Until your response I didn't see that the former site existed.
Twofold: First, it's similar to why they wouldn't just clone a developer's API on the network. The system that can do image conversion requires maintenance. A system that is calling an API providing that image conversion offloads that maintenance elsewhere (presumably to something that can manage the maintenance more efficiently than someone who just incidentally needs the feature).
Second, APIs will become the primitives everything else is built out of in time. Custom code in clients just become more and more of a shim over time.
A micro API might be useful for a micro project. But if your project is micro, do you really need to bother with one more SaaS dependency? Just use a full SaaS app building platform that will provide a fully integrated developer experience. (https://www.nocode.tech/ is a directory).
This is actually SUPER useful because it means you can upload one master image and have the API automatically generate thumbnails, hover states, text overlays, face-detected cropping, effects, shapes, source sets, WEBP versions, etc. And then it manages all the caching, invalidations, CDNs, etc. too. It fits really well into serverless architectures where you don't want to have to maintain and scale your own backend instance of ImageMagick or similar. It turns hours of work into seconds.
But it's also a pretty mature field: Imgix and Cloudinary both do this much more powerfully and much cheaper. 10,000 cropped images (say, for thumbnails) would cost $100 on Micro but be free or nearly so on either Imgix and Cloudinary.
For the more complex APIs (like images, ironically), I would rather trust one of the bigger companies that have been doing that -- and only that -- for years, with more forgiving pricing.
For simpler APIs, I'd just build it as a serverless functions straight in Cloudflare Workers or similar. Much cheaper, probably faster and more reliable infrastructure, and scalable.
Some advice - keep it simple! Simplicity and ease of use are big selling points to me. It's very easy to get lost in feature creep.
The way I see it is this: there are always a bunch of devs learning their trade.
At one point I would have great ideas but be missing two or three key components that I couldn't build.
I searched for out of the box solution for one time tokens and for a way to store date in transit for automation - nothing existed that I could use so I built it - but I've 20 years experience now and wanted to share my solutions.
Yes, you can do all of this in AWS yourself, but sometime you just want to solve it and move on.
Sometime you want to tell a client it is 0.0001 per record and that their business needs $5 per month to automate/integrate/remove something that costs them a lot more.
And charge them a decent rate for the solution, not the tools.
You're selling something for budding entrepreneurs who can't afford a developer and marketing it to developers.
The sooner you realise this, the earlier you'll be able to pivot (like mashape did).
Best of luck!
Also, this is probably most useful for prototyping scenarios. In production, you want something faster and cheaper.
i find APIs that let you interact with or observe the world far more compelling (e.g. get the latex forex rates, make a phone call, etc), especially if they put a nice stable interface in front of a lot of complex or evolving details you'd rather not have to care about.
APIs that provide data are useful. APIs that just transform data that you provide much less because much less efficient and also bring integration nightmares (think not just today but long term).
Is there an opportunity for third party developers to add new APIs?
I've been a user of RapidAPI as both an API publisher & consumer and I think I prefer this Micro model instead - API curation, standardized docs etc. etc. RapidAPI can feel like a bit of a free for all and even though it's technically one entity proxying everything it's often felt to me like more of a list of random services than something cohesive. I can definitely see why Micro is describing their service as a sort of AWS of useful APIs.
The navigation and layout of the site are terrific.
Good luck!
(Maybe save that for 2022-04-01.)
If it is guaranteed to stay micro, what are the migration paths to go to something less micro? Will Micro Services, Inc help me in that path?
I don't see the value of using specifically the Authorization header for machine-to-machine APIs (except to make it easier for man-in-the-middle).
A security token with the property that any party in possession of
the token (a "bearer") can use the token in any way that any other
party in possession of it can. Using a bearer token does not
require a bearer to prove possession of cryptographic key material
(proof-of-possession).
I think most people interpret that definition as including API secret keys. I’d be curious to hear any alternative suggestions as I run into this fairly regularly.https://datatracker.ietf.org/doc/html/rfc6750#section-1.2
Also relevant: https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentica...
He is trying to build something useful, which may take some pivots, and that is nothing to be ashamed of.
This is fine for a student project or an app which has a fixed planned end-of-life, but not much more.
If I learn that API and it disappears, I just wasted my time. I should have learned an API that I will be able to reuse later.
The only issue I had was with shaming the developer for building something he thought people would want and soliciting feedback. If that wasn't the intention of my parent comment, I apologize and retract my statement.
I got very burnt once (in terms of time wasted anyway) by a startup that couldn't decide what it wanted to do.
They had an amazing BaaS product that probably was making good coin already that I am sure would have got them a buy out eventually but they decided to pivot to work on a DB abstraction layer and shut the whole thing down.
If they had just pursued the original vision they would be minted by now instead of trying to convince people their commercial layer is better than the umpteen other free ones.