This is one of those very opinionated “let’s close this thread on stackoverflow” questions ;). But hey, who gives a damn, this is a free galaxy after all!
Following scenario: My roommate and I, we won Startup Weekend last year but ended up both being too busy to pursue that idea back then. We’re now trying to revive it and we started to separately work on frontend and backend. However, since it’s fast and convenient I just created the backend on the fly and I was able to program our entire MVP/beta within 3 weeks, including the entire devops, which also contains the backend code of course.
I am a bit turned off by the speed of development on the backend side, especially considering my roommate is unlike me a full-time developer with a focus on backend yet I’ve basically have both our parts done now and he’s still not finished with it. I have seen and interacted with a few startups now that built their entire app around APIs and the result of that from my perspective so far has been it’s slow and very inflexible and can be achieved with Meteor within a fraction of the time.
Now I am concerned about the further progress of our MVP. The MVP is mostly ready, there’ll only be some fine-tuning over the weekend, then it’s time to throw that buggy piece of garbage out into the interwebz and let people complain about it . Or be happy about it!
For me it seems this way of development doesn’t make sense to me but I wanted to be open minded about trying out na API based backend. I’m not very impressed at this point but I still want to give my roommate’s approach and him the benefit of the doubt. Our web app will most likely never need to expose any data via APIs to third party services by the way.
What are the pros and cons of using something like Meteor vs an API based architecture? The main thing I just can’t wrap my head around is: Why would you ever want to build everything from scratch, without decent pub/sub, routing, partial publications, reactivity, and probably more I haven’t mentioned here yet. Does this really make sense for a product that doesn’t need to expose any data to any other sites? It feels very inflexible writing an entire new API endpoint just if I want to insert something tiny into my database. As a startup and startup founder who has had experience with moving too slow in the past and finding excuses to be too slow, my main objective is always to go as fast as possible to the minimum MVP to learn from users. I just don’t feel like APIs enable a frictionless developer experience to quickly throw out certain small features that help you learn from your users.