I built the same app with 5 different stacks

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ธ.ค. 2024

ความคิดเห็น • 428

  • @wisedrug4656
    @wisedrug4656 หลายเดือนก่อน +272

    Please make Open Source Github repo, so we can add our versions with another stack, or improve your versions. I really wanna show how Rust + Htmx version would be fast

    • @luka1790
      @luka1790 หลายเดือนก่อน +23

      Great idea and free content for theo!

    • @sinema7101
      @sinema7101 หลายเดือนก่อน +8

      i agree. would be fun to make one FE e.g. in Svelte/htmx and swap backends (Go, Rust, JS, PHP, C#, Gleam, Zig, ...) with same specs and different solutions.

    • @jonklaric
      @jonklaric หลายเดือนก่อน +12

      Even Go + HTMX would be way faster and smaller than Go + GraphQL + React frontend....

    • @sinema7101
      @sinema7101 หลายเดือนก่อน +1

      @@jonklaric Yes, but that isn't the point of this video. A few of us pointed it would be fun to handle all backends with the same restrictions. (API, Caching, Db) The stacks ain't comparable in the video. imho

    • @johnc0de
      @johnc0de หลายเดือนก่อน +5

      Yeah... i think its more about DX than raw speed...

  • @Felix-g8t1p
    @Felix-g8t1p หลายเดือนก่อน +141

    The NextJS implementation contains so much implicit knowledge you need to keep in your head to understand how all this "easy" "baked in" stuff works behind the scenes. Yes on something like elixir you have more lines of code but once you understand the mvc pattern it stays the same and does not change all the time. You can move around and understand the code base without knowing how all the cache & await connection etc. works. Nevermind the fact that in Next all of this implicit knowledge changes every two months

    • @martinlesko1521
      @martinlesko1521 หลายเดือนก่อน +4

      registered 2 days ago kekw. Also
      1. Why should a person not know how cache and await works ? Await is nowadays essential and caching pretty much as well
      2. Also Next.js 15 is now much more explicit with caching

    • @Felix-g8t1p
      @Felix-g8t1p หลายเดือนก่อน +13

      @@martinlesko1521 I'm not talking about await. I'm talking about await 'connection' and whatever that means. The fact that you have to state that the newly released version 15000 of Next makes caching now much better kind of proves my point. They change things so much and give you these random new abstractions every couple of months that make it less sustainable to keep your projects up to date.

    • @martinlesko1521
      @martinlesko1521 หลายเดือนก่อน +1

      @@Felix-g8t1p "random new abstractions"
      bruh

    • @maciekdeveloper
      @maciekdeveloper หลายเดือนก่อน

      @@martinlesko1521 which one experimental cacheLife or unstable_cache?

    • @PraiseYeezus
      @PraiseYeezus หลายเดือนก่อน

      "implicit knowledge" lmao in a video with RoR in it, this is your criticism.

  • @catofdeepblack
    @catofdeepblack หลายเดือนก่อน +60

    Remember guys, there is a huge difference between a real developer/engineer and a content creator

  • @wouterhenderickx6293
    @wouterhenderickx6293 หลายเดือนก่อน +92

    If I have a look at some of the comments, this video kind of drives home Prime's point about DX just being familiarity with the tools/language/... I'm not saying the niceties in Next aren't real, but the other stacks most definitely include features that would improve performance or "DX", but weren't used in this video because of lack of knowledge.
    The "number of files"-benchmark also just indicates a style difference. Splitting a project with a given number of lines over 10 or 20 files just moves the balance from searching within a file to searching for a file. With proper naming conventions and editor support, there's something to be said about both approaches.
    Very nice vdeo though, on a more global level this clearly indicated the pros and cons of not only the stacks themselves, but of the technology choices. You could sub rails for laravel, go for rust, next for nuxt and come to very similar conclusions because the "approach" is the same.

    • @christhornham
      @christhornham หลายเดือนก่อน +1

      @@wouterhenderickx6293 these are great points.

    • @RA-xx4mz
      @RA-xx4mz หลายเดือนก่อน

      I’ve recently started using Hexagonal Architecture. It’s a lot of folders and files and more boilerplate than I’m used to, but I know where everything is, everything goes. And anyone who knows hex arch will be able to make sense of the code and add to it ez pz

  • @shadowfaxenator
    @shadowfaxenator หลายเดือนก่อน +206

    You must be kidding, comparing nextjs just fetching and caching the whole db. And using redis to store clicks. It’s not a fare comparison with postgres+not having any cache and not quering the whole list from db at once. And even in this totally nextjs promoted comparison elixir shows itself better ;)

    • @maazmunir9213
      @maazmunir9213 หลายเดือนก่อน +12

      he glazes next to a fault i feel like..

    • @DavidLitvakB
      @DavidLitvakB หลายเดือนก่อน +13

      Yeah... DB roundtrips with transaction management live compared to in-memory caching and KV stores....

    • @martinlesko1521
      @martinlesko1521 หลายเดือนก่อน

      RSC is smart isn't it ? ;))

    • @LtdJorge
      @LtdJorge หลายเดือนก่อน +13

      Also, try moving that codebase away from Vercel… 🥶

    • @MohammedAli-mb6oz
      @MohammedAli-mb6oz หลายเดือนก่อน +3

      Rails was faster too 😂😂😂

  • @peterj.2114
    @peterj.2114 หลายเดือนก่อน +33

    I think its pretty clear that you don't just introduce graphql into your project to make an SPA with 2 images and buttons.

  • @siya.abc123
    @siya.abc123 หลายเดือนก่อน +362

    Lol a JavaScript developer complaining about the number of folders in a project is crazy sounding 😅

    • @naughtiousmaximus7853
      @naughtiousmaximus7853 หลายเดือนก่อน +27

      Page.tsx intensifies

    • @EightNineOne
      @EightNineOne หลายเดือนก่อน +19

      Also exaggerating how much file swapping there is in rails. A rails controller is tiny, the model is tiny. It looks like he generated his initial thing with scaffold and then just created an additional view and used that. You can see the jbuilder files etc.
      What is this project, one controller, one view and maybeee two models? That plus about 5 minutes spent in routes. The rest of it will be migrations, something he actually praised.
      The comments around the quality of documentation are very valid though. It’s like a brick wall and they’re incredibly comprehensive but hard to use as reference manuals

    • @programmerjowo
      @programmerjowo หลายเดือนก่อน +15

      Node_modules enter the chat

    • @martinlesko1521
      @martinlesko1521 หลายเดือนก่อน

      ​@@naughtiousmaximus7853you know you can use non-file based routing in js frameworks right?

    • @imfastboi
      @imfastboi หลายเดือนก่อน +1

      @@programmerjowo huh? That could be said for any language

  • @tagKnife
    @tagKnife หลายเดือนก่อน +46

    Calling Go an old stack.
    You're under arrest.

  • @owenmartell4923
    @owenmartell4923 หลายเดือนก่อน +25

    Why are you so insistent on not learning Rails properly?

  • @michaelroudnitski350
    @michaelroudnitski350 หลายเดือนก่อน +60

    Actually, you can use Turbo Frames to do the experience in a single request in the Rails version

    • @EightNineOne
      @EightNineOne หลายเดือนก่อน +10

      With what he’s doing he couple probably just get away with turning morphing on

    • @Zizaco
      @Zizaco หลายเดือนก่อน

      This

  • @greven182
    @greven182 หลายเดือนก่อน +47

    “I used a lot of Elixir back in the day…”. Doesn’t know what the priv folder is. I’m sorry mate, but that is nonsense. Either you didn’t do a lot of Elixir, or you never read any documentation of Elixir or Erlang. That is not Phoenix Specific.

    • @partisan-bobryk
      @partisan-bobryk หลายเดือนก่อน +15

      i'm getting a feeling Theo doesn't do anything more than read the first page of popular frameworks and claims he is a developer

    • @perc-ai
      @perc-ai หลายเดือนก่อน +3

      Theo is not a real elixir engineer its clear that phoenix blows all of these modern frameworks out of the water but since nobody writes elixir most people dont know.

    • @fdov4
      @fdov4 หลายเดือนก่อน +2

      He dropped the ball terribly also with Rails. I guess he unmasked himself.

    • @martinlesko1521
      @martinlesko1521 28 วันที่ผ่านมา

      not knowing priv folder and saying "i used elixir back in the day" is valid, dunno what you find strange for his lack of knowledge, he didn't say he has a lot of experience now, but back then he had

  • @WarloardInPcGamer
    @WarloardInPcGamer หลายเดือนก่อน +23

    wow that elixir app demo was such nice to look at. its so smooth and fast when compared to nextjs demo for some reason. Need to try it manually.

  • @anthonymichel5278
    @anthonymichel5278 หลายเดือนก่อน +58

    I find that weird that the Go stack was more of a graphql stack. Graphql isn't specific to go at all, and there is tons other ways to have a simpler webstack running with go.
    Would have been fairer, though more work, to do a stack without graphql and try graphql on both go and node for example.
    Though appreciate the video and effort put into this.

    • @MelroyvandenBerg
      @MelroyvandenBerg หลายเดือนก่อน +14

      These were indeed all 4 fully different implementations. It's not a good comparison at all.

    • @Devenias
      @Devenias หลายเดือนก่อน +5

      Same. I think a more fair stack would have been Go + Templ + HTMX.
      But ultimately he would have used exactly the same frameworks for all Projects like
      (Go/Elixir/Ruby/...) + React or something like that.
      Edit: typo

    • @anthonymichel5278
      @anthonymichel5278 หลายเดือนก่อน +6

      Don't even need htmx IMHO, just the html template from standard lib would be enough for what he was doing. Then no setup required, works like a breeze.

    • @dublindynamicdrive
      @dublindynamicdrive หลายเดือนก่อน +9

      and let’s not forget graphql is a piece of shit

    • @sandersonstabo
      @sandersonstabo หลายเดือนก่อน +9

      Its because Theo used GQL when he used Go, the video is about the tech stacks he used in his career

  • @simonricard4403
    @simonricard4403 หลายเดือนก่อน +81

    For the Elixir/Phoenix app, you shouldn't have needed a controller. The fetching/sorting functions should be defined within your context (so roundest_phoenix folder, not rounded_phoenix_web), and your Liveview page should simply call these functions. You shouldn't write business logic in the controller (or Liveview, or anywhere in the roundest_phoenix_web folder) to begin with.
    I haven't needed to use a controller in Phoenix for well over a year at this point

    • @t3dotgg
      @t3dotgg  หลายเดือนก่อน +38

      This is actually really good to know thank you

    • @petermueller6349
      @petermueller6349 หลายเดือนก่อน +8

      And start_async instead of the task for the vote, and assign_async and corresponding component for that initial loading render for before the socket connects.
      I haven't needed to use the connected check in a while

    • @snowe..
      @snowe.. หลายเดือนก่อน

      when do you use a controller then?

    • @LofiHits5
      @LofiHits5 หลายเดือนก่อน

      @@snowe.. expose API's, DeadView (traditional views)

  • @joseelias7603
    @joseelias7603 หลายเดือนก่อน +59

    As a Brazilian and a José, you NAILED the pronunciation at 17:33

  • @naota0
    @naota0 หลายเดือนก่อน +6

    The video makes no sense since you are obviously junior on several of these stacks. The same thing should be done but with senior developers, and they should have exactly the same specs

  • @kalist8938
    @kalist8938 หลายเดือนก่อน +20

    Fun fact about Rails is that u complain about things because u don’t know the framework. I don’t understand why u didn’t use turbo frame for your Rails demo when it is the default front framework for Rails… it’s like if u use Next without component .

  • @hank9th
    @hank9th หลายเดือนก่อน +24

    You could have done something very similar to your Next cache in the Elixir version, by using a GenServer or an ETS table. I've found that Elixir/Phoenix projects can go crazy far w/o a database thanks to the OTP primitives.

  • @kjabze
    @kjabze หลายเดือนก่อน +8

    i build my first real estate web app years ago with angular and rails. still works like a charm with very min maintenance

  • @jamesbotwina8744
    @jamesbotwina8744 หลายเดือนก่อน +6

    Thanks!

  • @invizii2645
    @invizii2645 หลายเดือนก่อน +26

    That's a strange Go stack.
    I wouldn't really call it a fair test, when you are comparing a graphql backend against rest backends...

    • @abdelazizlaissaoui9079
      @abdelazizlaissaoui9079 หลายเดือนก่อน +9

      He is not testing stacks he tried the stacks that he used to work with back in the days

    • @Devenias
      @Devenias หลายเดือนก่อน +3

      ​@@abdelazizlaissaoui9079 But then that was a strange stack choice previously. And when you go forward in time you should also revisit your choices. Idioms change and you should always pick the best and/or widely used technology.

    • @Cuptial-ev9tb
      @Cuptial-ev9tb หลายเดือนก่อน +2

      He could’ve used binary serialization via gRPC. Keep tanstack-query and just use raw sql or sqlc. That probably would’ve been the fastest of these stacks in terms of network

  • @sovietwarmachine1979
    @sovietwarmachine1979 หลายเดือนก่อน +8

    Are you sure you used the proper Ruby/Rails extension? I use the Ruby LSP and it works just great! Do not encounter the type of issues you had

  • @jsonkody
    @jsonkody หลายเดือนก่อน +32

    I am in the middle of my transition from JS dev to Elixir/Phoenix dev, I am glad that you like it too

    • @wanbek2004
      @wanbek2004 หลายเดือนก่อน +1

      I've been trying to transition to elixir as well, but it's not easy, any advice or resources

  • @isuperman1113n
    @isuperman1113n หลายเดือนก่อน +6

    I really appreciate videos like this. Great to see your takes on these frameworks with a bit deeper understanding of some of the gripes, along with the things they get right

  • @d3xm0rg10
    @d3xm0rg10 หลายเดือนก่อน +30

    Bruh has to be the most jr developer if I had ever seen one

  • @timtatt
    @timtatt หลายเดือนก่อน +9

    GraphQL implementation did Go dirty

  • @pokefreak2112
    @pokefreak2112 หลายเดือนก่อน +13

    I really dislike this trend of using pokemon as sample data, clearly the best solution will always be to simply store the dataset in memory and everything else is overengineered.
    Doing something like returning a random wikipedia article would be way better.

  • @sortof3337
    @sortof3337 หลายเดือนก่อน +50

    Bro has no clue what he is doing.

    • @khalidalasi2031
      @khalidalasi2031 หลายเดือนก่อน

      😂

    • @finite-void
      @finite-void หลายเดือนก่อน +2

      Most new users working with these technologies won't either. They'll just have 1 lang's exp.

    • @DevRel1
      @DevRel1 7 วันที่ผ่านมา

      Bro is building the same app with 5 frameworks. Not sure what yall were expecting

  •  หลายเดือนก่อน +34

    A round of applauses for the cookies hack, outstanding!

    • @t3dotgg
      @t3dotgg  หลายเดือนก่อน +5

      Thank you! I was proud of that one :)

    • @TusharJain007
      @TusharJain007 หลายเดือนก่อน

      Where was this?

    • @darcikheysaucedo7108
      @darcikheysaucedo7108 หลายเดือนก่อน

      @@t3dotgg lame

  • @winchesterdev
    @winchesterdev หลายเดือนก่อน +8

    One thing you can do if you need to seed in prod is a migration. Seed scripts aren't idempotent.

  • @rhaikh
    @rhaikh หลายเดือนก่อน +4

    You can remove unneeded boilerplate with options sent to rails new. You should consider using Phlex instead of erb.

  • @pierozi765
    @pierozi765 หลายเดือนก่อน +6

    14:40 fly is using MicroVM. They are unpacking docker but not using it for runtime.

  • @muxahuk1214
    @muxahuk1214 หลายเดือนก่อน +6

    React server component version seems a bit unfair in the comparison because you didn't use any database, where other projects did use it. Yes, it might not change the performance or anything in that regard, but since you ephesise on the line count - that's not a fair comparison. You could do the same thing on the GO and other versions to fetch data from the api directly in resolvers and that would decrease the number of lines in the project.
    Moreover this comparison doesn't address the performance and cost, only DX. Would be interested to actually know how much it would cost to run these versions and how performant would they be. Maybe an idea for the next video )

  • @datguy4104
    @datguy4104 หลายเดือนก่อน +18

    For the Rails app it should be a single request. It's SSR, not JS slop.
    12:45 there is nothing stopping you from writing explicit changes in the add_mons_field. Using the naming convention does it for you, though. You could copy what's in the conventionally named migration into the add_mon_field migration and it would do that exact same thing when ran.

    • @EightNineOne
      @EightNineOne หลายเดือนก่อน +4

      Yeah right? Like the naming thing for g migration is a convenience feature, not a rule. They’re so easy to just write 😂

  • @EliasJackson
    @EliasJackson หลายเดือนก่อน +10

    Do Gleam + Wisp + Lustre next! (If you want. No pressure. Love you Theo ❤)

  • @misalambasta
    @misalambasta หลายเดือนก่อน +10

    Rails - 1:30
    Elixir - 20:10
    Go- 38:22
    T3 - 56:05
    Next - 1:08:30

  • @FunTimeswithFlo
    @FunTimeswithFlo หลายเดือนก่อน +1

    A Rails developer would be able to implement a solution faster than the the others, including api caching etc. No contest.
    So much explaining was required for all the JS versions. Even revalidatePage required a ton of explaining

  • @benheidemann3836
    @benheidemann3836 หลายเดือนก่อน +3

    Actually, fly doesn’t run docker. They released a really interesting video about this on their YT but TLDR they spin up a firecracker VM and then unpack all of the docker image layers onto that VMs filesystem. This gives them better isolation than just docker would while also providing better performance than VM + docker.

  • @patriciogarcia5442
    @patriciogarcia5442 หลายเดือนก่อน +2

    That cookie revalidation bit is pure gold 1:17:21 ⚜️

  • @MasterOfChaosYT
    @MasterOfChaosYT หลายเดือนก่อน +29

    Cool! I wonder how HTMX + Go would do 🤔

    • @okadz7037
      @okadz7037 หลายเดือนก่อน +4

      Shity dx

    • @samanderson4881
      @samanderson4881 หลายเดือนก่อน

      @@okadz7037 what's shitty about it

    • @jmlandi
      @jmlandi หลายเดือนก่อน

      @@LiveErrors Golang

    • @jmlandi
      @jmlandi หลายเดือนก่อน +2

      @@okadz7037 i agree, the Templ lib to render html is very dirty. But is effective and fast, good to know if you already program in Go

    • @ddpxl
      @ddpxl หลายเดือนก่อน +7

      @@jmlandi you don't need templ for 2 pages.. the build-in template engine is more then enough

  • @SpaceGhost-1999
    @SpaceGhost-1999 หลายเดือนก่อน +48

    Rails, convention over configuration. Understand the conventions.

    • @martinlesko1521
      @martinlesko1521 หลายเดือนก่อน +3

      good luck if you need something outside those conventions

    • @BobSchmitt-g7s
      @BobSchmitt-g7s หลายเดือนก่อน

      Develop that using a more appropriate stack and connect the two using APIs or MQs. Rails doesn’t do everything, but what it does do has a convention for use.

    • @jpaulvids
      @jpaulvids หลายเดือนก่อน

      @@martinlesko1521like what?

    • @MatthewBrooks-z4d
      @MatthewBrooks-z4d หลายเดือนก่อน +3

      here here, I can't figure out where all of the hate for Rails comes from. Yeah that's true it's perfect for every single use case, but your car isn't a rocket. Does that mean you should get rid of it?

    • @EightNineOne
      @EightNineOne หลายเดือนก่อน

      @@martinlesko1521 You can avoid convention whenever you want. There’s this whole section in the doctrine about it, “sharp knives” (I don’t love doctrines/manifestos btw) about it. The convention is there to make things quick. Ruby is a pretty powerful language and you can do whatever you want with rails. It’ll just be on you. Even then it’s actually not too bad and Laravel actually falls apart much quicker when you colour outside the lines. It’s a bit of a misconception.

  • @someonewhowantedtobeahero3206
    @someonewhowantedtobeahero3206 หลายเดือนก่อน +3

    I never faced the issues you mention with GraphQL. It’s a config issue in the way you defined the schema. And you can generate hooks for each query and mutation with codegen, all of which will be type-safe.

  • @Hapkumdo
    @Hapkumdo หลายเดือนก่อน +31

    Great Idea - would appreciate more stack comparisons :)

    • @yourmamaisphat
      @yourmamaisphat หลายเดือนก่อน

      Agreed! Would love to see PHP & vanilla JS. With the vanilla JS, I'd love to see the output lines of JS code.

  • @havokgames8297
    @havokgames8297 หลายเดือนก่อน +1

    Elixir/Phoenix also has async assigns - this could possibly speed things up as you wouldn't need to block on fetching the next pair. Or it would be quite trivial to have a small 'next' cache genserver or something that gives you back a pair and reloads the next one in the background. So Elixir was fast, but there is still room to make it even faster I think.

  • @studiousllama4776
    @studiousllama4776 หลายเดือนก่อน +31

    Not sure what was going on with Rails, but it is definitely not normal for a new Rails project to take 6+ minutes to set up, especially with Ruby and all the gems already installed. That should take seconds, not minutes.
    It's not really fair to fault Rails for old Stack Overflow answers being wrong, though. That's going to happen for out-of-date answers on any topic in web development. Rails has just been around for a long time. The official setup guide is up to date, so I'd recommend using that.
    That being said, a lot of your other criticisms were definitely valid.

    • @michaelfrieze
      @michaelfrieze หลายเดือนก่อน +6

      I think it's fair to point out that many answers about rails are going to be out of date. It's not specific to rails, but it's something that should be mentioned since it's something developers will experience.

    • @danielashcraft5981
      @danielashcraft5981 หลายเดือนก่อน +1

      It takes maybe 5 minutes to setup rails, not sure what went wrong in his setup

    • @smitjel3739
      @smitjel3739 หลายเดือนก่อน +4

      He's blaming Rails for the limitations of his text editor...wtf? You guys do realize there's other text editors/IDEs than vscode, right? 🙄

    • @Vitor-rf7ko
      @Vitor-rf7ko หลายเดือนก่อน

      ​@@smitjel3739 Devtools are definitely a good reason to dock points from a language. It's not like vscode is some niche editor with limited tooling, it's the most used and supported code editor. It's a massive hassle to have to change your entire dev env and/or use paid software to have a decent DX.

  • @YNNCK_L
    @YNNCK_L หลายเดือนก่อน +3

    Turns out revalidatePath made your nextjs project refetch the whole database? Would generate a nice bill when deployed on Vercel... Kinda proves the point that there is a lot of magic going on in that framework. Having to rely on a personal connection to get it figured out is not the greatest look.
    What are we supposed to learn from a comparison about 2 projects with postgres, 2 projects with graphql (just generate protobufs and it would save 85% of the frustration from the GO part) and projects with a cached database and a kv store?

  • @dracula5752
    @dracula5752 หลายเดือนก่อน +6

    does some weird graphql shit and complains go is bad lmao....

  • @Salafrazz
    @Salafrazz หลายเดือนก่อน +3

    The way the ruby lsp extension also just sets up its own gemfile is a little psycho extra thing, thanks shopify

  • @somebody-anonymous
    @somebody-anonymous หลายเดือนก่อน +8

    What is T6 ( 0:12 ) 😛

    • @schtormm
      @schtormm หลายเดือนก่อน

      t3x2

    • @maulanahahaha
      @maulanahahaha หลายเดือนก่อน

      Samsung SSD 😂

  • @JamalShaheen
    @JamalShaheen หลายเดือนก่อน +12

    TBH this Elixir Phoenix code is elegant, and the ability to define same function multiple times make code even more elegant, Rails I'm sorry mate.

    • @ThugLifeModafocah
      @ThugLifeModafocah หลายเดือนก่อน +2

      yeah, pattern matching in function signature is AMAZING. You just ditch if/switches from your code and have specialized methods to handle just that path that would be inside a conditional. It is something wonderful that I miss dearly.

    • @MKTV-1483
      @MKTV-1483 หลายเดือนก่อน +2

      @@ThugLifeModafocah simple function overloading, lost in the JS world. Remember learning about them and finding it so cool when learning Java in college lol

    • @ThugLifeModafocah
      @ThugLifeModafocah หลายเดือนก่อน +1

      @@MKTV-1483 yeah, kind of overloading maybe linked with multimethod... I don't know. Anyways, it's too powerful because often, the overload happens on types, but in elixir you can do it types (using guards) and with map (struct) values (which I like more than guards). It is awesome.

  • @dbarros
    @dbarros หลายเดือนก่อน +2

    Would love to see more of these videos. Python + FastAPI, maybe?

  • @ghdshds1899
    @ghdshds1899 หลายเดือนก่อน +2

    when i enter a try not to be unfair, inconsistent and biased and my opponent is theo

  • @justinwlin
    @justinwlin หลายเดือนก่อน

    amazing job!!! thank u for spending so much time on this. and great overview! sure there are nuances but i love to see this 🔥

  • @monsieurBoutte
    @monsieurBoutte หลายเดือนก่อน

    Super appreciative of the effort you guys put into this video! This was a great watch.

  • @jacobi321l
    @jacobi321l หลายเดือนก่อน +3

    So I'm also building in Elixir and Liveview and really have to agree with your painpoints. Seeding and env files are weird.
    I wrote the seedcode in a way so I can just connect to the server via IEX and copy paste it.
    For the env files i wrote a .env.exs file and imported it in the config. That worked pretty well.
    Regardless of that programming in Elixir is just wonderful and the responsiveness of Phoenix Liveview is insane.

    • @affieuk
      @affieuk หลายเดือนก่อน

      Forgive me, I'm not a web dev, as an infra guy, couldn't you just dump your seed data from a dev db and import into prod? Is that not seen as elegant or am I missing something obvious?

  • @afaha2214
    @afaha2214 หลายเดือนก่อน +1

    if I was a private equity I would create a framework to gaslight and lure naive developers/managers into think 'this is easy' and play their ego into paying extreme markup for something you can host on a $5 VPS and then continue milking you.

  • @Voidstroyer
    @Voidstroyer หลายเดือนก่อน +2

    Besides the total number of files and lines of code, it would also be nice to get an idea of how many lines of codes and files you have to create/edit yourself using something like a git diff. Although Elixir Phoenix has a large number of files and lines of code, the amount you have to write yourself is probably comparable or maybe even less than the other stacks.
    I am happy to see that Phoenix is number 1 in terms of performance though.

    • @EightNineOne
      @EightNineOne หลายเดือนก่อน

      Phoenix shares a lot of DNA with Rails. It’s going to be low and Phoenix encourages reusability.
      Rails should also be very low. Part of its productivity is due to how little you actually need to write in order to build an application. That’s why there’s so much convention in place and a lot of the Rails “magic” is just good organisation and sensible defaults.

    • @Voidstroyer
      @Voidstroyer หลายเดือนก่อน +1

      @@EightNineOne This is a feature of full-stack frameworks that are very opinionated imo. The same can be said about Laravel. JS frameworks lack in this regard because they are not opinionated enough.

    • @EightNineOne
      @EightNineOne หลายเดือนก่อน +1

      @@Voidstroyeroh f’sure. Laravel is basically just rails in PHP. (Phoenix improves upon rails is a load more ways though IMO) I think what I’m driving at is even with how opinionated rails, django, Laravel etc are, rails still requires little boilerplate by comparison to get you up and running.

  • @endlesslysorrow
    @endlesslysorrow 19 วันที่ผ่านมา

    where can i find your cursor settings?

  • @marcialabrahantes3369
    @marcialabrahantes3369 หลายเดือนก่อน +1

    @Theo: The nullable-field issues with `| null` can be fixed by appending `!` to the end of each field on the GraphQL schema (look at the `field-nullability` page in the Apollo client docs)

  • @splattelol
    @splattelol หลายเดือนก่อน +1

    Awesome to see Ben here!

  • @darkoplax7688
    @darkoplax7688 หลายเดือนก่อน +2

    Love Next RSC for sure

  • @LtdJorge
    @LtdJorge หลายเดือนก่อน

    11:15 You can have that in Rust if you use Diesel, the Diesel CLI is used to run the migrations, and it syncs the macros with your schema. And thanks to the strong typing, if you forget about it, your code won’t compile until you update the structs that should have changed with the schema.

  • @AbhiShake-pl3cf
    @AbhiShake-pl3cf หลายเดือนก่อน +1

    When and for how long did he use go? I remember prime was saying theo hasnt used go much

    • @venomweed
      @venomweed หลายเดือนก่อน

      prolly like 2 weeks from this example

    • @AbhiShake-pl3cf
      @AbhiShake-pl3cf หลายเดือนก่อน +1

      @@venomweed i saw one of his videos saying he used it for solid 2 months

    • @venomweed
      @venomweed หลายเดือนก่อน

      @@AbhiShake-pl3cf close enough

  • @Zizaco
    @Zizaco หลายเดือนก่อน +1

    1:09:01 really? Couldn't you just send back the data via the same POST request in rails?

  • @alexandrecolautoneto7374
    @alexandrecolautoneto7374 หลายเดือนก่อน

    Just started learning Elixir and man it feels good.

  • @samueldominguezlorenzo5734
    @samueldominguezlorenzo5734 หลายเดือนก่อน +5

    Why use graphql on the go project? You are just comparing random things.

    • @Cuptial-ev9tb
      @Cuptial-ev9tb หลายเดือนก่อน

      It’s just a stack he’s familiar with bc of his early days at Twitch

    • @venomweed
      @venomweed หลายเดือนก่อน

      @@Cuptial-ev9tb thats still weird bro there a like less that 10% of go projects that use bloated stuff like these just use normal go lang templates wth is this

  • @TuanTrinh-qx5vq
    @TuanTrinh-qx5vq หลายเดือนก่อน

    What VSCODE theme is theo using? :o

  • @ivanmaglica264
    @ivanmaglica264 หลายเดือนก่อน +1

    I'm surprised you did not use dev-containers in vscode, you wouldn't need to install those things locally.

  • @netspie66
    @netspie66 หลายเดือนก่อน +10

    Long live Elixir! I hope to learn it soon..

  • @Bigtom52
    @Bigtom52 หลายเดือนก่อน +3

    laravel when? :-)
    but find it a super unfair comparison IMO if you are caching all in nextjs and then comparing this to the other frameworks where you are saving in db? 😅

  • @MrPlaybook
    @MrPlaybook หลายเดือนก่อน +6

    Sorry to ask but who won the match?

    • @t3dotgg
      @t3dotgg  หลายเดือนก่อน +20

      Definitely Tyson

    • @CuberAI_
      @CuberAI_ หลายเดือนก่อน +1

      @@t3dotgg hahaha but really who won?

    • @mrchedda
      @mrchedda หลายเดือนก่อน +1

      No winner was announced? I’ll be back in the comments when someone announces it. Lol

  • @christhornham
    @christhornham หลายเดือนก่อน +9

    Thanks. Great video. You might like SolidStart. I built the same project in Next and SolidStart, and I prefer SolidStart. Either way, this video helped me realize I picked great stacks. The others seem so unnecessarily complicated and verbose.

    • @luka1790
      @luka1790 หลายเดือนก่อน +1

      PLEASE THIS

  • @michaelfrieze
    @michaelfrieze หลายเดือนก่อน

    Excellent video Theo!

  • @paw565
    @paw565 หลายเดือนก่อน +1

    I like RSC model, but I still prefer to fetch and mutate data with tanstack query.

  • @imadetheuniverse4fun
    @imadetheuniverse4fun หลายเดือนก่อน

    it really feels like this entire video is just about how a framework-level caching abstraction makes things faster and easier to use?

  • @gavinh7845
    @gavinh7845 หลายเดือนก่อน +1

    Disappointed laravel didn’t make the cut, but it’s similar to rails. Would like to see your opinion on inertiajs

  • @BRODERVEVO
    @BRODERVEVO หลายเดือนก่อน +1

    No laravel? 😢

  • @hannespi2886
    @hannespi2886 หลายเดือนก่อน

    Man, appreciate the work you put into this one, again !

  • @codeChuck
    @codeChuck หลายเดือนก่อน

    @Theo, please INCREASE VOLUME, I maxed OUT on VOLUME and barelly hear you! Other YT videos and twitter vids are much louder!

  • @devanfarrell16
    @devanfarrell16 หลายเดือนก่อน

    The graphql nullability stuff is just an issue with the schema. Saw there was a PR open to fix that already.

  • @picklenickil
    @picklenickil หลายเดือนก่อน +3

    Hey Theo, I have always wandered if web dev complexity should be ranked based on the following
    1. How easy is it to setup auth
    2. How easy is it to setup Db
    3. How easy is it to deploy
    What would you rate each of these rank in the above.

  • @costathoughts
    @costathoughts หลายเดือนก่อน

    Will it be the new 1 billion row challenge ? Criteria: DevExp (How fast a new developer with some kind of experience can run pop into your approach?) + Less entropy possible + Max Performance possible

  • @wojciechorzechowski2211
    @wojciechorzechowski2211 หลายเดือนก่อน

    Phoenix mentioned! Let's go!

  • @TheJubeiam
    @TheJubeiam หลายเดือนก่อน

    was t3 deployed on fly?

  • @brendonmatos
    @brendonmatos หลายเดือนก่อน

    This is premium content. Thank you for that

  • @aminbusiness3139
    @aminbusiness3139 หลายเดือนก่อน

    Love technical breakdowns 🔥 versus the random dev Twitter drama stufff

  • @JLarky
    @JLarky หลายเดือนก่อน +1

    Well obviously now we need Remix and SolidStart (same thing) versions

  • @davidfowl
    @davidfowl หลายเดือนก่อน

    The support policy is so aggressive because Aspire supports the current LTS (.NET 8 at time of writing) and .NET 9 concurrently.

  • @Alexjemapplesyrup
    @Alexjemapplesyrup หลายเดือนก่อน +1

    Sucks that modern t3 stack isn't aligned with the new patterns as much. Feels like its been a little abandoned.

    • @t3dotgg
      @t3dotgg  หลายเดือนก่อน +1

      We have things cooking! Sorry for the delays. You get most of the fun stuff if you use the app router config

  • @TheJubeiam
    @TheJubeiam หลายเดือนก่อน

    Why is he not deploying the Nextjs version to fly??

  • @rodolfo_carvalho
    @rodolfo_carvalho หลายเดือนก่อน

    Returning data on POST at 1:08:48 comes at a cost: refreshing the page unintentionally upvotes. Typically POST requests mutate server state and return a redirect code to tell the browser where to go next / fetch the updated state, and leave the browser in state such that hitting refresh will not cause unintended mutation.

  • @tgeorg12
    @tgeorg12 หลายเดือนก่อน +4

    Was curious to see Remix

  • @sismith5427
    @sismith5427 หลายเดือนก่อน

    The thing for me with elixir/phoenix is it adds far less churn in the codebase... So fed up with npm dependencies adding breaking changes or React throwing out new ways of doing stuff in every new version... React apps always end up adding massive refactoring churn as pen testing always forces you to upgrade everything to latest.

  • @ciarancurley5482
    @ciarancurley5482 หลายเดือนก่อน +1

    Cool vid. Ill try and do a Tanstack Start version.

  • @MrManafon
    @MrManafon หลายเดือนก่อน

    The phoenix config files are very well made. I wish more franeworks adopted their separation (nestjs did!) however, yes it is intimidating the first time you see it in the same way that tailwind is intimidating.
    As for seeds, lol you are never ever supposed to do what you did. Seeds are script meant to ease local development, nothing more. If you wanted to push data to production, you’d import it via psql or turso cli or whatever else it is you are using. 😢

  • @th4tAlbinoGuy
    @th4tAlbinoGuy หลายเดือนก่อน

    Appreciate all the effort put into this. And ben as well. Can’t say I know too much about caching, but it seems that cache the whole db vs having to query it in the other stacks is pretty unfair?

  • @nathangwyn6098
    @nathangwyn6098 28 วันที่ผ่านมา

    I had the SAME issue trying to connect to my local postgres with RoR. I was a brand new dev at the time, but it took me about an entire day or three to figure it out 😄. I was too dumb to even know what to ask stack overflow. Ya know and asking 'Help I can't connect to my database in RoR' on stack overflow is a quick way to get roasted, and your account banned haha. Looking back, I get it , that can mean a million different things, but yeah I didn't know any better at the time.

  • @Joshua.Developer
    @Joshua.Developer หลายเดือนก่อน +1

    Let me guess next JS is the best

  • @tooMuchChad
    @tooMuchChad หลายเดือนก่อน +4

    Thanks

  • @benquan
    @benquan หลายเดือนก่อน +1

    Ben should make a Svelte version!. Would love to see the comparison.