Ask HN: Easiest and cheapest full-stack frameworks that you love?
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 ] threadThe 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.
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.
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
https://youtu.be/C27RVio2rOs?t=1119
Helped me realize I was thinking about my project in the wrong way. Hopefully will release in the next few weeks :)
https://news.ycombinator.com/from?site=concise.space
Thanks for your input.
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)
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.
Right now it's the worst scripting language on the planet.
No one in their right mind would start a new project using PHP.
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.
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.
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."
> 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
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.
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.
I'm the defacto maintainer of this package and the Node.js package mysql-live-select.
These implement pub/sub and reactive queries using the MySQL binary log as the event source:
https://github.com/vlasky/meteor-mysql
https://github.com/vlasky/mysql-live-select
With things like filamentphp and laravel spark most of the work is already done for you.
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.
Auth, DB and other things would need to be added manually.
The development experience is similar to desktop application development.
Examples are available here: https://www.webtoolkit.eu/widgets/layout
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
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
https://deployer.org/
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.
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/
This is like t3 but uses Solid.js, which is magnitude simpler and faster than React.
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.
This is the template I use to start https://github.com/quavedev/meteor-template
For example, I built https://codeftw.dev (https://en.codeftw.dev in English) and https://www.lemeno.io/nerds in recent years.
Meteor built-in integration with MongoDB and real-time data system makes everything very fast to be implemented.
Disclaimer: I'm the former CEO of Meteor (www.meteor.com)
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.