I'm an indie hacker shipping products, my latest project will be with Elixir/Phoenix and so far I'm very happy with this decision. And now you are shipping more great content. Awesome timing!
Have you guys tried Ash Framework for Elixir/Phoenix? It allows for craaazzzzzzy fast app/feature/permissions/all of it. Ash has been a game changer for me. Insanely fast dev cycles blows my miiiiind.
While I mostly agree with your point, it is a bit overdramatic and could be more nuanced. Changing ORMs? Not that likely. Things like Prisma have been okay for a couple of years and will be a good choice for the coming years. Change form validation libs? Not that likely. Using a form validation library at all isn't all that necessary. Update caching? Maybe, if you want 'bleeding edge'. If you don't need the most sophisticated stuff (which you also don't get with things like Django), you update it once every few years at most. Updating your framework? Obviously you need to do that with Phoenix, Django etc. as well. While I agree that updating things like Next.js needs to happen somewhat more often, that is the 'disadvantage' of using tech that is more willing to change to explore possibly better options. Discussing libs all day is hopefully an exaggeration as that seems a bit silly. You choose a framework and important libs (ORM, state management etc.) once and don't fall into the trap of looking at slightly more shiny things if your previous lib choices are still fine and fit the job well. Then you get just get along with adding the new features.
agree with your points. i recently explored using django + htmx + alpine (minimal javascript) for my project, but i ended up going with nextjs instead. It is more fun to build with in my view. i really like to have everything in typescript and the frontend component libraries + tools like v0 are great. it will be a bit higher maintenance but also a lot faster to get great results. also, vercel hosting platform is just a pleasure to work with and my projects don't have the scale where their pricing starts to hurt.
It’s for sure exaggerated, but the amount of this kind of conversation and hand wringing about approach is way lower and the consequences less impactful (not always, but often)
100% Fully agree with you Daniel, that's what I'm trying to tell anyone that asks me what they should do. The main thing is about writing business logic and not talking about wether X or Y is good. Go with something stable and you will be fine. Sales is the most important thing at the end of the day. Great video!
I agree with you man, I was studying Go and one of the things that made me give up was that you had to do everything from zero. It's cool to learn and do small projects, but as someone who wants to ship stuff fast when I saw phoenix it was a breeze of fresh air. Also really cool seeing BR Devs thriving :D
Go is great for learning backend and for systems programming, but when it comes to building complex web apps, that's when Rails or Phoenix shines. And thanks, tamo junto! 🇧🇷
I'd go with Laravel + Inertia both for be a very mature framework and also to keep utilizing the knowledge I got in the past three years about PHP/JS. Furthermore, this way I can keep using React to build my components without the awful needs to build Rest Api. I'm happy you got it to pay your bills with Phoenix already, once you were very determinated to learn it. Good to hear that. I hope Elixir grows more and more.
why avoid building an API if you're already going to use SPA or React? It's generally easier to generate JSON, than to build classic controllers with templates or HTML etc.
If you’ve used both Laravel and Rails, how would you compare them from a 'batteries included' standpoint? Would you say Rails still has an edge over Laravel, or is that no longer the case? The same question for Phoenix vs Rails.
I don't have enough experience with Rails or Laravel to be able to do a comparison. But Phoenix is batteries-included compared to JS for example, because I don't have to install a library in order to query the DB, do validations, authentication, send emails etc
It might be a skill issue, but I moved from Laravel to Nextjs and now to raw Mysql+Drizzle+Expressjs+tRPC+React+AppRouter (waiting for the new "better" way of doing the same thing to ruin my setup)
Question for all users of these battery included frameworks - What CSS component library you use for Rapid application development. In react world we have ShadCN-UI / Material UI now days, what you guys would recommend ?
In Laravel and Rails you can use everything you can elsewhere, Rails even has a flag in its command line to spin up a project with Tailwind/material etc preconfigured
Would you have the same concerns about Express JS as you do with Next and React? Even though it is still JS, it doesn't look like it has all the crazy updates, even though the same issue with deprecated middleware packages exist. I plan on switching over to a batteries-included framework, saw your Adonis video, but I feel it's just better for me to powerthrough learning backend with JS and then switch over to something else. Would really love your opinion on this. Loving your videos.
I was about to say "where's Laravel??" (because it's not in the thumbnail) but then I saw it in the first frame of the video... And you can also use React/Vue with Laravel as well using Inertia (works for Laravel and Rails), or Laravext (Laravel only), not need to use the blade template engine.
Hey Daniel, agree with you on the batteries included frameworks. in the JavaScript ecosystem there is AdonisJS which is similar to Laravel. Currently I am using NextJS maybe for my next project i will try Adonis. BTW Ruby and PHP are languages that i can't seem to love and use, the syntax is weird (coming from Java) typescript is not bad in my honest opinion.
Are the options in Phoenix good tho? In React if you dont like an option, you have alternatives, and if you like it, you dont need to discuss changing, even if its old or abandoned
I can’t speak for Phoenix or Django. Phoenix quite a bit younger than the rest of the list and nowhere near as widely adopted yet, but for Laravel and rails “batteries included” != lock in. Rails has alternatives that work with everything part of the stack, don’t like erb? Use viewComponents or phlex or inertia and react. Don’t like the testing framework built in? Use rspec. In Laravel, if you don’t want to use Eloquent, use doctrine or the query builder or raw SQL. You just don’t have the same amount of churn and boilerplate to write with these systems and the replacements are usually drop in.
Now that you are professionally working with Phoenix, I'm sure many people, like me, would like to know how to find a job in the Elixir/Phoenix ecosystem? Please make a video on that. It's easier for people to decide to move away from the JS/TS world once the path to becoming a professional dev using Elixir/Phoenix becomes clear!
@@DanielBergholz This is a very bold claim, considering most frameworks started as a pet project of someone, and that many of them carry questionable decisions even for the devs themselves (that they can't change for backwards compatibility reasons). And I think the same reasoning you apply to frameworks you should apply to other things, if you believe that frameworks are made by people "way more experienced than you" then you must also believe that libraries are made by people "way more experienced than you" and that they have a very good reason not to be part of other framework. I don't think it is productive to fight against this, but this kind of general advise I find questionable at best, very little are the times I found a framework that could have solved most of the development problems I experienced with the "batteries included", they are always for the average case and only for the "average of the average application case", in which case I find sometimes just using some libraries that are meant to do exactly what I want is sufficiently good and causes less pain.
I just want a good stack that uses bare-bones Express and React and links them via tRPC!! I'm tired of opinionated frameworks' hidden quircks and uneditable complexities!
I agree but kind of disagree. It depends on your project and how well established your business is. For indie hackers and solo-penuers, you're right these frameworks are very good. However, at some point there will be an issue you will face because of your chosen framework's restrictions. Most often is because of the ORM limitations. Like all things in software dev, it's about picking the right tool for the job. I'm language agnostic and I will use a different language/framework if it helps me get things done More efficiently but I do prefer less batteries included if I can. I don't like the JS/TS ecosystem you essentially have to install a lot of libraries to get things done
Agree 100%. I might be biased, but I think Phoenix provides a good balance between having batteries included and giving you the freedom to customize it
@DanielBergholz I haven't looked at phoenix yet so I'll take your word on it. I wanted to ask, why go with phoenix over something like laravel or spring. It seems a bit too niche?
@@zeer0629 this is more of a personal preference. I love functional programming and LiveView (the frontend framework from Phoenix) is very similar to React
Please consider doing a look/dive into Ash for Phoenix! It really is remarkable. It’s essentially a DSL that allows for much more minimal code that will in turn create normal elixir functions for the entire app, AND you can escape hatch, turn it off, or even never use it again if Ash ever gets scrapped. Ash very very very much aligns with a One and Done, well supported stack to use in conjunction with Phoenix, that does all the stuff that Phoenix does not - super deep policies/multi tenant/optimizes data reads/anything else that Phoenix doesn’t cover and the remainder of features that SaaS typically use. It really is magical :)
If you were discussing Next vs Remix, and now you are shipping features, these features may suck. You were at position of discussing Next vs Remix because there is where you fit in a real world company. Batteries included are good for indie hacker devs which will most likely ship a full stack product in 3 months and get 0 users.
I relate with that a lot. But I'd rather have compared something like SlimPhp vs Laravel or Express vs Nest. Also I feel like people are unnecessarily afraid of MPAs. You most often don't need a full SPA software. Or you might even have more than one SPAs laid in multiple pages. I find Svelte a good choice for that.
I'm an indie hacker shipping products, my latest project will be with Elixir/Phoenix and so far I'm very happy with this decision. And now you are shipping more great content. Awesome timing!
@@quintenkamphuis this is awesome! We need more entrepreneurs using Elixir 🚀
Have you guys tried Ash Framework for Elixir/Phoenix? It allows for craaazzzzzzy fast app/feature/permissions/all of it. Ash has been a game changer for me. Insanely fast dev cycles blows my miiiiind.
While I mostly agree with your point, it is a bit overdramatic and could be more nuanced. Changing ORMs? Not that likely. Things like Prisma have been okay for a couple of years and will be a good choice for the coming years. Change form validation libs? Not that likely. Using a form validation library at all isn't all that necessary. Update caching? Maybe, if you want 'bleeding edge'. If you don't need the most sophisticated stuff (which you also don't get with things like Django), you update it once every few years at most. Updating your framework? Obviously you need to do that with Phoenix, Django etc. as well. While I agree that updating things like Next.js needs to happen somewhat more often, that is the 'disadvantage' of using tech that is more willing to change to explore possibly better options. Discussing libs all day is hopefully an exaggeration as that seems a bit silly. You choose a framework and important libs (ORM, state management etc.) once and don't fall into the trap of looking at slightly more shiny things if your previous lib choices are still fine and fit the job well. Then you get just get along with adding the new features.
agree with your points. i recently explored using django + htmx + alpine (minimal javascript) for my project, but i ended up going with nextjs instead. It is more fun to build with in my view. i really like to have everything in typescript and the frontend component libraries + tools like v0 are great. it will be a bit higher maintenance but also a lot faster to get great results. also, vercel hosting platform is just a pleasure to work with and my projects don't have the scale where their pricing starts to hurt.
It’s for sure exaggerated, but the amount of this kind of conversation and hand wringing about approach is way lower and the consequences less impactful (not always, but often)
100% Fully agree with you Daniel, that's what I'm trying to tell anyone that asks me what they should do. The main thing is about writing business logic and not talking about wether X or Y is good. Go with something stable and you will be fine. Sales is the most important thing at the end of the day. Great video!
@@tenacity_dev thank you!
Hey just throwing it out there, loco rs is a rails like framework in rust that is super easy to get up and running with.
I agree with you man, I was studying Go and one of the things that made me give up was that you had to do everything from zero. It's cool to learn and do small projects, but as someone who wants to ship stuff fast when I saw phoenix it was a breeze of fresh air.
Also really cool seeing BR Devs thriving :D
Go is great for learning backend and for systems programming, but when it comes to building complex web apps, that's when Rails or Phoenix shines. And thanks, tamo junto! 🇧🇷
100% agree. The custom car analogy is spot on.
I'd go with Laravel + Inertia both for be a very mature framework and also to keep utilizing the knowledge I got in the past three years about PHP/JS. Furthermore, this way I can keep using React to build my components without the awful needs to build Rest Api.
I'm happy you got it to pay your bills with Phoenix already, once you were very determinated to learn it. Good to hear that. I hope Elixir grows more and more.
@@DiogoLScarmagnani thank you! And yeah, Laravel + Inertia is a killer combo
why avoid building an API if you're already going to use SPA or React? It's generally easier to generate JSON, than to build classic controllers with templates or HTML etc.
Laravel is the most "batteries included" framework I've worked with. It has everything.
gotta check it out heard many good things about laravel.
@@jovincebrillantes1042 I agree!
If you’ve used both Laravel and Rails, how would you compare them from a 'batteries included' standpoint? Would you say Rails still has an edge over Laravel, or is that no longer the case? The same question for Phoenix vs Rails.
I don't have enough experience with Rails or Laravel to be able to do a comparison. But Phoenix is batteries-included compared to JS for example, because I don't have to install a library in order to query the DB, do validations, authentication, send emails etc
@@DanielBergholz Thanks
I feel like I needed to hear this
It might be a skill issue, but I moved from Laravel to Nextjs and now to raw Mysql+Drizzle+Expressjs+tRPC+React+AppRouter (waiting for the new "better" way of doing the same thing to ruin my setup)
This sounds way too complex 😅 I prefer my batteries-included frameworks instead of piecing together a bunch of libraries
Question for all users of these battery included frameworks - What CSS component library you use for Rapid application development. In react world we have ShadCN-UI / Material UI now days, what you guys would recommend ?
If you're using Laravel you can still use Shadcn if you want.
In Laravel and Rails you can use everything you can elsewhere, Rails even has a flag in its command line to spin up a project with Tailwind/material etc preconfigured
I can see Theo grinding his teeth 😆
Would you have the same concerns about Express JS as you do with Next and React? Even though it is still JS, it doesn't look like it has all the crazy updates, even though the same issue with deprecated middleware packages exist. I plan on switching over to a batteries-included framework, saw your Adonis video, but I feel it's just better for me to powerthrough learning backend with JS and then switch over to something else. Would really love your opinion on this. Loving your videos.
Express is not a framework, it's a library.
@@oserodal2702 i didn't say it was.
I was about to say "where's Laravel??" (because it's not in the thumbnail) but then I saw it in the first frame of the video... And you can also use React/Vue with Laravel as well using Inertia (works for Laravel and Rails), or Laravext (Laravel only), not need to use the blade template engine.
Laravel is amazing, and extremely flexible with Inertia
Was it hard to land an elixir job?
i guess so, it's not super popular but in a few years i believe it will it's such a good framework
Someone watched a video of mine and decided to get in touch. So you could say I got "lucky"
Hey Daniel, agree with you on the batteries included frameworks. in the JavaScript ecosystem there is AdonisJS which is similar to Laravel. Currently I am using NextJS maybe for my next project i will try Adonis. BTW Ruby and PHP are languages that i can't seem to love and use, the syntax is weird (coming from Java) typescript is not bad in my honest opinion.
Indeed. I'm currently using AdonisJS with react (via inertiaJS) and it's the 🐐
Are the options in Phoenix good tho?
In React if you dont like an option, you have alternatives, and if you like it, you dont need to discuss changing, even if its old or abandoned
I can’t speak for Phoenix or Django. Phoenix quite a bit younger than the rest of the list and nowhere near as widely adopted yet, but for Laravel and rails “batteries included” != lock in.
Rails has alternatives that work with everything part of the stack, don’t like erb? Use viewComponents or phlex or inertia and react. Don’t like the testing framework built in? Use rspec. In Laravel, if you don’t want to use Eloquent, use doctrine or the query builder or raw SQL.
You just don’t have the same amount of churn and boilerplate to write with these systems and the replacements are usually drop in.
Rails is fantastic, and django is also good
Now that you are professionally working with Phoenix, I'm sure many people, like me, would like to know how to find a job in the Elixir/Phoenix ecosystem?
Please make a video on that. It's easier for people to decide to move away from the JS/TS world once the path to becoming a professional dev using Elixir/Phoenix becomes clear!
Vc tá muito destravado no ingles 👏
Tamo junto!
why did you use framework when you can use golang stdlib with htmx
@@kodosunofficial_5 this is not at all batteries included. You still need to wire a bunch of libraries together like JavaScript
Go + Gin to the moon
This is not a good thing, you get stuck with the choices of someone else in a little fragile box (which absolutely most frameworks are).
@@diadetediotedio6918 99% of the time, the “someone else” you’re referring to is way more experienced than us, and made much better decisions
@@DanielBergholz
This is a very bold claim, considering most frameworks started as a pet project of someone, and that many of them carry questionable decisions even for the devs themselves (that they can't change for backwards compatibility reasons). And I think the same reasoning you apply to frameworks you should apply to other things, if you believe that frameworks are made by people "way more experienced than you" then you must also believe that libraries are made by people "way more experienced than you" and that they have a very good reason not to be part of other framework.
I don't think it is productive to fight against this, but this kind of general advise I find questionable at best, very little are the times I found a framework that could have solved most of the development problems I experienced with the "batteries included", they are always for the average case and only for the "average of the average application case", in which case I find sometimes just using some libraries that are meant to do exactly what I want is sufficiently good and causes less pain.
I just want a good stack that uses bare-bones Express and React and links them via tRPC!! I'm tired of opinionated frameworks' hidden quircks and uneditable complexities!
Daniel, I watched your video with translation voice by TH-cam AI. the future is great!
Wow, this looks insane! 🔥
Inglês ta fera Daniel
@gyordandf5418 valeu!
I agree but kind of disagree.
It depends on your project and how well established your business is. For indie hackers and solo-penuers, you're right these frameworks are very good.
However, at some point there will be an issue you will face because of your chosen framework's restrictions. Most often is because of the ORM limitations.
Like all things in software dev, it's about picking the right tool for the job. I'm language agnostic and I will use a different language/framework if it helps me get things done More efficiently but I do prefer less batteries included if I can.
I don't like the JS/TS ecosystem you essentially have to install a lot of libraries to get things done
Agree 100%. I might be biased, but I think Phoenix provides a good balance between having batteries included and giving you the freedom to customize it
@DanielBergholz I haven't looked at phoenix yet so I'll take your word on it. I wanted to ask, why go with phoenix over something like laravel or spring. It seems a bit too niche?
@@zeer0629 this is more of a personal preference. I love functional programming and LiveView (the frontend framework from Phoenix) is very similar to React
@@DanielBergholz ah fair enough. Good luck on your journey and future projects with phoenix and keep up the great videos
I couldn't agree more. BTW: AdonisJS is the GOAT in the JS world
it's sad that I'm just hearing about AdonisJS. Must be my algo because all I hear about is Next, Remix, and Apollo
PREACH. PHOENIX FTW.
Please consider doing a look/dive into Ash for Phoenix! It really is remarkable. It’s essentially a DSL that allows for much more minimal code that will in turn create normal elixir functions for the entire app, AND you can escape hatch, turn it off, or even never use it again if Ash ever gets scrapped. Ash very very very much aligns with a One and Done, well supported stack to use in conjunction with Phoenix, that does all the stuff that Phoenix does not - super deep policies/multi tenant/optimizes data reads/anything else that Phoenix doesn’t cover and the remainder of features that SaaS typically use. It really is magical :)
If you were discussing Next vs Remix, and now you are shipping features, these features may suck.
You were at position of discussing Next vs Remix because there is where you fit in a real world company. Batteries included are good for indie hacker devs which will most likely ship a full stack product in 3 months and get 0 users.
Damn
I relate with that a lot. But I'd rather have compared something like SlimPhp vs Laravel or Express vs Nest.
Also I feel like people are unnecessarily afraid of MPAs.
You most often don't need a full SPA software.
Or you might even have more than one SPAs laid in multiple pages. I find Svelte a good choice for that.
So many apps could just be MPA + HTMX/hotwire. Unless you have a TON of state or a very complex UI, they’re more than enough
Nest +react opiniated+flexibility
but junior dev want instant feedback (hot reload)
You can do this with both Laravel and rails, rails you can even use Vite.