Ask HN: Easiest and cheapest full-stack frameworks that you love?

26 points by NayamAmarshe ↗ HN
Lately I've been interested in the idea of overnight startup. Well, not quite literally but the idea is to make projects in just days instead of months.

I've been looking at multiple BaaS solutions like firebase, supabase, appwrite, pocketbase and UI frameworks like svelte, next.js, solid.js and more.

I wonder what could be the best option? Something that is cheap to host (preferably free initially) and super easy to manage (like pocketbase having a GUI for creating RDBMS).

52 comments

[ 3.6 ms ] story [ 107 ms ] thread
I'm guessing Supabase/Firebase + Next.js hosted on Vercel.
I agree. I also recommend using t3-stack with supabase/firebase.
Just be ready for shenanigans if you want to use prismic with supabase auth
+1 especially for Supabase, very easy to use and typesafe.
If you're genuine about your goal (re-examine your own feelings, it's easy to deceive oneself!), your question is going in the wrong direction.

The framework doesn't matter.

If you want to release a startup quickly, just do the minimum amount of work to test the hypothesis you have about your user. Most of the time that will not involve programming. It could be as simple as setting up a Gform or calling a few friends and talking to them about their problems.

If it turns out you do need to code, take whatever tool you already know that gets the job done. Crucially, "gets the job done" means: focus only on what you know you already need. Do not plan ahead. Don't think about scalability. You can always re-write if your idea is actually good (which it almost never is).

Do things that don't scale.

However, if you find your motivation is not so much about starting a startup, but more about learning a new framework, just pick the one that's most interesting to you.

> The framework doesn't matter.

If we're talking about ease of use, doesn't that matter? For example, I could write things in React or use a templating engine or even regular HTML/JS. All 3 options have different ease of use and require certain boilerplate to get things done in the same time. For example, you could use Webflow to create a landing page that would probably take you twice the time if you were to do that in React using regular CSS.

You could also use Pocketbase's GUI to quickly setup your DB instead of using Prisma to write relations and migrations and handling all the stuff you wouldn't need to on Pocketbase.

So I'm kinda confused about 'framework doesn't matter'. In a sense, it doesn't when I'm talking about using it to build something (I know I can pretty much build anything with them) but when talking about the actual time and work involved, some frameworks might provide some time saving processes others don't.

At the beginning (which from your post I assumed that's where you are, sorry if I misunderstood), it doesn't matter since you will (should!) have very few features. Those will be fast to build in almost anything.

Code is a liability. The more code you have, the more you have to maintain, improve, etc.

Now, if you already have a customer base, it's a different story - but then your idea has already been validated.

My main point is, don't obsess over these decisions until then. It's very easy to fall into this trap (I have several times), where you deceive yourself that you're building an MVP, but really you're building this huge complicated thing that nobody really needs.

Michael Seibel (YC CEO) has a great video where he talks about many people (myself included) kinda want to be artists, so they make something that is like art, when really what you need to build is something to be thrown away. https://youtu.be/1hHMwLxN6EM

Thank you for the advice!
You're welcome! I just realized I linked the wrong video, here's the correct one (also Michael Seibel), where he talks about art:

https://youtu.be/C27RVio2rOs?t=1119

The wrong video was very helpful as well to be honest, so thank you for it :)

Helped me realize I was thinking about my project in the wrong way. Hopefully will release in the next few weeks :)

One of the best answers IMHO. Should be the top spot.

Thanks for your input.

It’s 2023 and I still think nothing beats Rails (even with all its flaws).
This!

Use one of the many admin panels that directly build on your data structure. Administrate, RailsAdmin, ... As well as devise for Auth, Postgres as scalable cheap DB, and so on.

I am not sure if any other framework can make a single person or small team this productive (when it comes to CRUD like operations)

Eh, I've tried rails many times just to ask myself what makes this better than laravel?

I mean laravel new app --jet (jetstream/saas features) gets me:

- authentication/authorization - Including: oauth, tokens, 2fa, etc. - queues w/ choice of redis, memcache, db, etc. - cache w/ choice of redis, memcache, db, etc. - SaaS dashboard w/ teams using something like phoenix's liveview called livewire OR vue + inertia - If you use filamentphp you have the perfect backend dashboard, but without that you still get the consumer saas one with teams, etc.

The only package needed above is filament for the above, and that's to have a resource based admin that's just super easy - try a tutorial it'll take a day what it used to take a week to build. Everything else comes baked into the initial app.

Rails you have to pick a queuing setup, an admin backend, and setup devise, etc. Having auth baked in just makes things super easy.

PHP obviously, I had to work with it for 11 years professionally.

Right now it's the worst scripting language on the planet.

No one in their right mind would start a new project using PHP.

I started making stuff in rails around 2013, got a job at a PHP firm around 2018 where I've worked with a lot of Laravel. At this point i know Laravel better than rails, I would say.

Most of the things you mentioned is either present in rails by default, such as queues and cache. Yes, you have to install external dependencies such as device for authentication etc, but that takes mere seconds to set up. Like, two or three CLI commands and you're done. Rails has "liveview" too in the form of Stimulus.

Never heard of filament tho, looks kinda neat. I know there are some similar gems for rails, but I have little experience with these kinds of products.

I still pick rails for my private development projects. Laravel and Rails both have their upsides, but none of them are really a game changer enough that I'dd consider dropping rails in favor of Laravel. Some of the things I like with rails in particular are things like

* Interactive repl on exception screens in the browser. I can interrogate the state of my request when the error occurred.

* "Intellisense" in the rails console(and also interactive repl) is kinda nice.

* I find it easier to configure and setup rails in docker than php.

* I like that in rails validations are defined on the model and not on the request.

* I like the built in form_for, form builder in rails, i like that its also very extendable. Which makes it easy to make reusable components with little to no code.

* My IntelliJ is often much better at understanding and parsing my rails projects than my rails projects.

* Lots of small rails things such as route functions instead of the route helper.

* It feels to me like rails has less boilerplate and is better at generating scaffolds, but that might be because of the laravel code I have been working on.

Kinda what lakomen said actually. I started coding with PHP, tried to and semi learned many languages but it took ruby to fully understand why coding is pure fun. Took me several more years to realize that Rails is likely the last major framework I am going to learn and here I am, 10 years later, still rocking it.

I dont know anything about modern laravel or fancy js frameworks. But that's part of the magic, Rails still does all that for me, as it already did when laravel wasn't more than a toy framework yet and likely still does in 10 years from now.

PHP also is still the worst language I ever had to work with, that's opinionated tho.

What are the flaws?
I’d say the biggest drawback is performance. Ruby is slow and resource hungry, Rails leans heavily on reflection. Starting a large Rails app can take 10+ seconds (even with bootsnap). Large test suites can become time consuming to run. Heavy use of partials can noticeably impact rendering time.

However, this is not an issue until you have a large app. It’s a small downside compared to the upside. It’s also less of an issue today as servers have become cheaper and more powerful. As DHH said, “…sure, I'd like free CPU cycles too. I just happen to care much more about free developer cycles and am willing to trade the former for the latter."

Thanks for the reply. I guess it's not as big of an issue if it can save development time.

> Rails leans heavily on reflection. Starting a large Rails app can take 10+ seconds

This is nothing compared to the spring boot project at my job, takes like a whole minute to start haha

If I may ask, how big is that project?
Well, it's a business software so a lot of moving parts (but that's also because it's Java and there's a lot of code for not a lot of functionality). I'm not a spring boot pro or anything but I think it's also slow because there are faults in the project. Stuff breaks often, hot reload is a mess and doesn't even work and there's no unit testing.
It’s def a solid option esp. if you’re very familiar with it already.

But, I think Elixir/Phoenix beats it handily at this point for someone starting from scratch with either one or that is willing to spend a week or two learning something new.

Elixir and Phoenix is wonderful, but it is not comparable to rails when it comes to pure productivity — Rails is much better. And if you include hotwire into the mix, it is not anywhere a close comparison. Liveview is not comparable due to tech difference (websocket and low lantency requirement), as well as an additional complexity on top of phoenix (you add liveview and your productivity will be affected).

Don’t get me wrong, I would still pick Phoenix a lot of the time over rails, but that is despite the lower productivity. Sometimes even Phoenix + hotwire is not a bad idea.

Speak for yourself? I personally find I’m much more productive with elixir/phoenix and the end result is much more performant. (I say this having built multiple large projects with rails in the past)
https://www.meteor.com/ If you’re fine with MongoDB in the backend. Then you get a lot of speed in development and same language in backend and frontend. Plus view live updates on all connected clients as data changes in backend. And hot Code push to clients if new build on server available. I loved it when doing https://www.4minitz.com/ (retired FOSS)
This: https://create.t3.gg/

having typesafety out of the box between backend and frontend is a game changer.. not having to do fetches manually and your api autocompleting is awesome.

Yes huge +1 to t3. Given how opinionated t3 is I wish they added (even if optional) more must haves like testing and background workers.
This looks pretty weird. Instead of using this, I find it more appropriate to prepare something more basic to meet your own needs.
[dead]
Fastify isn't full stack, is it?

Auth, DB and other things would need to be added manually.

yeah, not really a full stack. But the modularity design allow us to use different components depends on our needs.
Wt a C++ based web development toolkit. Includes all the bells and whistles like front-end, ORM, graphics(2D/3D), audio, video, graphs/charts, tables, trees, supports browsers with no javascript, responsive, payments, authentication, notification and much more.

The development experience is similar to desktop application development.

Examples are available here: https://www.webtoolkit.eu/widgets/layout

talking about C++, there are drogon framework: https://github.com/drogonframework/drogon

not bells and whistles like on Wt as there are no integrated widgets. But have c++ based template (for HTML) engine and other integrated parts what you expect from framework (routing, controllers, db, authentication handling and so on).

and boasts high performance design

ASP.NET 7 with c# as a programming language. The tooling is mature, it's not going to rot. I've realize a lot of framework are great in theory but getting started and staying afloat is hard.

This framework is typesafe, you can use: React, Angular, MVC, Blazor, Pages.

Everything you need.

In second position, i would pick any top 10 php framework: Laravel, Symfony, Yii.

Why, because they are simple to work with and to deploy.

One piece of advice I learned to only write code that works for now, just write

But for a newcomer… god. Is Microsoft tied by law to only a limited set of names for their products? Why is everything called the same even though they are completely different?

Asp.net, asp classic, asp 1234567, Net core, core only? Net framework, just “.net”, Asp webforms? Asp razor? What is going on?

Also the fact that you go to Microsoft and you’re on a page of non core documentation, then you click on a code example and you end up in core docs doesn’t help.

Then there are 4 different ways of making an HTTP request and you have to be a net enthusiast to know which one is a wrapper on which one and what is the current one vs the old stuff.

Idk, I guess it’s good if you know it, but it’s pretty icky to get into.

There are lots of projects that start you off with things most SaaS projects need. Eg https://bullettrain.co/

Personally I’m also loving SvelteKit. To me it perfectly bridges the front and backends. I ported most of my SaaS to it. Still new though so not a lot of community support. https://kit.svelte.dev/

I tried SvelteKit and while I like that it's easy to start with, the syntax for conditionals is not my favorite and it's also hard to find support for it. I think it's a little bit easier to get things done in Next.js than SvelteKit, even when you're building the exact same thing. I can't really comment on the rest though, I only played with it for an hour or so.
Elixir/Phoenix is wonderful. Worth a look.
Rails still holds the top spot in getting things out the door in the shortest amount of time. So many example projects and tons of amazing libraries that are available. They absolutely have the best developer docs in the industry as far as I'm concerned.

https://guides.rubyonrails.org/

https://api.rubyonrails.org/

Phoenix/Liveview is a close second. I would personally use Phoenix/Liveview at this point because I know that stack pretty well, but it is definitely not as easy as Rails to learn. However, once past the learning phase I think there's distinct advantages especially with Liveview.

Fly.io has a free hosting tier currently. You can also get some free servers through Oracle Cloud.

Django. Never as productive with anything else plus I like coding in Python. Anything I need that's not out of the box I usually can find as a 3rd party app. I use templates + htmx + a little js here and there as needed
I'm actually doing some research on a similar topic. I'm trying to find what would be the most productive tools for me to create quickly create an MVP or proof of concept.

I narrowed my choices down to Rails and Django, most likely only using the API creation portions of each since I prefer using a JavaScript framework to handle the front-end. I spent some time writing down a list of areas that I could compare the two frameworks, and I'm going to see which one I like the most. Though I have a feeling I'm going to end up with Django. Their documentation and tutorials are incredible.

Meteor is a very strong option. It will build anything you throw at it. It has built-in accounts so you can get your login/auth system running very quickly. It has a lot of options for live data if your app needs it - your users see relevant updates on their screens without needing to refresh the window. It supports React, graphQL, MongoDB, and other view frameworks/databases.