Live data from Hacker News

Ask HN: What would be your stack if you are building an MVP today?

news.ycombinator.com

61–70 of 736 posts

Re: Ask HN: What would be your stack if you are building an MVP today?

#61

I've had an unparalleled experience in getting an MVP live with shuttle[0] - nothing is as fast for deploying a web app with a database to the cloud. For the database I’ve used shuttle’s dedicated SQL DB instance[1] and for the front-end I’ve used shuttle’s static file server[2]. If you are not scared of diving a bit into Rust, I'd a 100% recommend it. [0] https://github.com/shuttle-hq/shuttle [1] https://docs.shuttl…

For something in the same vein but for Go, there is Encore: https://encore.dev / https://github.com/encoredev/encore

Re: Ask HN: What would be your stack if you are building an MVP today?

#62
This is one of the core use cases where Encore [1] really shines. It helps you get up and running really quickly by natively supporting common cloud infrastructure components (databases, Pub/Sub, caching, cron jobs, secrets management, etc), and a simple low-boilerplate way of defining APIs.

It automatically provides API docs, architecture diagrams, and infrastructure provisioning, based on static analysis of your code base.

Disclaimer: I'm one of the founders.

[1] https://encore.dev

Re: Ask HN: What would be your stack if you are building an MVP today?

#63
post #59
post #36

I'm building an MVP solo. Rust for the core application, Elixir for the backend, frontend, API, data layer. Javascript is pretty much non-existent, all client-side interactivity is done by LiveView. Packaged into a podman container and deployed to a Hetzner dedicated server. Storage on PostgreSQL, probably the only thing I would rather not have to manage, but honestly single node is perfectly fine for an MVP. Provisi…

If the backend, frontend, API and data layer are in Elixir, what's actually written in Rust?

At the core there is a custom crawler written in Rust, with the goal of eventually releasing it as an open source standalone application.

But everything else, including scheduling the execution of this crawler, and parsing its output, is done on the Elixir monolith.

Re: Ask HN: What would be your stack if you are building an MVP today?

#64

Django, in my previous role we did MVP websites for academics and the speed of getting a site up and running and deployed was just so fast. I’ve never worked with anything else that is as fast, anything like FastAPI or Flask or Express or similar either requires additional libraries to add really basic and common functionality or you have to roll it yourself. I personally don’t think that if you’re building an MVP yo…

I‘m trying to learn Django just for this kind of MVP purposes. I also did a small mini project in RoR by following their documentation. Is there anything that is significantly easier to do in RoR vs. Django? Alternatively, is there anything, say, on a larger scale that I can do with RoR that I cannot do in Django if the project grows? These are the questions I‘ve been wrestling with quite a bit now. After learning Vue and React.js and having used and being cognizant of Next, Nuxt, Supabase, Firebase and all that other stuff, I‘m looking to become a bit of a better developer by understanding the intricacies of traditional monoliths and how problems are solved on the backend. I‘d also like to be able to serve predictions and host ML models in production. Likewise, if my MVPs catch on, I’d like to retain majority of my ”IP” by the means of Django or RoR. Any intuition perhaps on my above questions? Thx!

Re: Ask HN: What would be your stack if you are building an MVP today?

#67
SvelteKit + Supabase.

It’s the opposite of what a lot of people recommend. It’s not battle tested. Both of these technologies are still maturing BUT:

I can write everything in JS/TS, I don’t have to get good at Ruby PHP or Python

Postgres is a great skill to learn.

Supabase is portable and can be self hosted, and its JS client is easy to use for DB manipulation and stuff like object storage.

For me, building a true full stack web app (not a todo list tutorial but something with real custom features) was going to be a learning process because I’ve been so heavily front end focused. So I decided to try to learn with the most modern tools available. It’s mostly worked out. I’ve had to ask for help on Discord a lot, especially with Supabase.

I have this idea for a blog post called “it’s just a CRUD app” that kind of challenges this idea that CRUD apps are brain dead simple. When you look at the myriad of options for building and deploying one. We’re talking like 50+ frameworks. Methodologies like dependency injection, micro service and monolith patterns. Yeah maybe it’s simple if you have been doing it for 15+ years and are comfortable with your stack but if you’re newer to the game, there’s a lot of complexity at play and the best choices for your situation are not obvious. Before moving to Supabase I was using NestJS because I was convinced I needed this framework with guard rails, but I hated it. So moving off that caused a lot of churn.

Edit: I also wanted to mention that the biggest split amongst all these recommendations IMO is how the backend and frontend interact with each other. Some of these frameworks will render frontend views for you. Then you're dealing with a very classic web app. Then you hear other people in this thread talking about HTTP handlers, and it's clear they're talking about the backend existing as a REST API, which IMO is a bad pattern to use for your own app. REST APIs should be used for exposing your service to third parties.

But there's a third way, that's becoming popular amongst the "bleeding edge" with things like Next.js and SvelteKit that have a "backend for frontend" where they have to run a node/deno based server anyways to do on demand SSR and hydrate. Having a separate backend, especially a separate backend that is just a REST API leads to a ton of redundant code and confusion.

So instead with ORMs like Prisma, people setting a persistent DB connection on this backend server and accessing/manipulating the DB directly with some kind of client. I think this approach came to prominence alongside the rise of GraphQL. That's basically the way Supabase works - they have a JS client and you interact with it in a similar way you would Prisma or TypeORM. They even have an article about how their client can be used in a similar enough way to GraphQL that it's not worth using GraphQL instead.

Instead of traditional controllers where you would stash a lot of business logic (including authorization), the idea is you leverage PostgreSQL's advanced features to help with that. I'm not a huge fan of this for multiple reasons. So you kind of have to make your own decisions on how much abstraction you're going to put on top of their client.

Re: Ask HN: What would be your stack if you are building an MVP today?

#68
post #32
post #20

If it is a SaaS 100% Ruby on Rails Why: - has almost everything that I need usually in mature gems - battle tested in production - speed of development

I did so last year, and I cannot be happier. My only regret is that I wasn't aware of htmx/hotwire at the time. I went with Vue, and I regret it immensely. Rails is the fastest development platform I've tried so far, it is predictable, well crafted, structured yet flexible. You can't go wrong with it. Every now and then I try something new on a side project or I have to work on some other codebase for my customers, a…

I'm vaguely aware of htmx, but have never used it. Had not heard of hotwire until just now, but that looks really interesting. Thanks for the pointer!

Would you care to say any more about your experience with Vue? I've heard a lot of good things about Vue and had it on my mental "things to learn one day" list for a while. Would be really interested in hearing any counter-points from somebody who hasn't enjoyed working with it.

Re: Ask HN: What would be your stack if you are building an MVP today?

#69

I would use a full stack framework so I do not have the overhead of creating API endpoints. I would use Laravel with Livewire.

You might also want to check out https://wasp-lang.dev/ - it lets you use React & Node.js (although it seems you prefer php), but you don't have to write API endpoints + everything works out-of-the-box

(disclaimer: I'm one of the main contributors to the project)

Re: Ask HN: What would be your stack if you are building an MVP today?

#70

Django, in my previous role we did MVP websites for academics and the speed of getting a site up and running and deployed was just so fast. I’ve never worked with anything else that is as fast, anything like FastAPI or Flask or Express or similar either requires additional libraries to add really basic and common functionality or you have to roll it yourself. I personally don’t think that if you’re building an MVP yo…

I‘m trying to learn Django just for this kind of MVP purposes. I also did a small mini project in RoR by following their documentation. Is there anything that is significantly easier to do in RoR vs. Django? Alternatively, is there anything, say, on a larger scale that I can do with RoR that I cannot do in Django if the project grows? These are the questions I‘ve been wrestling with quite a bit now. After learning Vu…

My view on this is that there is little between them so in that case it’s better to look at availability of skills you’d need to take it forwards in the operating region. For e.g. if it’s easier to hire Ruby developers then choose Rails.

I see a lot of people talking about Elixir, etc. on this thread, but I’m based in the U.K. and I’ve never seen a company locally using Elixir so even if it’s really cool, it’d be a bad idea for me to choose it absent a very very good reason. If I choose Django then even if I can’t find a Django developer, I can likely find people who know Python and the barrier to entry is pretty easy.

Post reply on HN