The BETH Stack: Build Hypermedia-Driven Web Apps with Great DX and Performance

An opinionated way to build web apps in 2023
-------------
LIVE SITE (down rn because I needed the database for another project but new video coming soon)- the-beth-stack.fly.dev/
PROJECT REPO- github.com/ethanniser/the-bet...
Bun - bun.sh/
Elysia - elysiajs.com/
Turso - turso.tech/
HTMX - htmx.org/
typed-html - github.com/nicojs/typed-html
tailwind-css - tailwindcss.com/
drizzle - orm.drizzle.team/
hyperscript - hyperscript.org/
fly.io - fly.io/
FOLLOW ME ON TWITTER- / ethanniser
Content Credits:
Snippets + Memes: Htmx Docs- htmx.org/
Snippets: Typed-html readme- github.com/nicojs/typed-html
Snippets: W3 Schools- www.w3schools.com/django/djan...
------------
This video is NOT sponsored in any way. I have zero relation with any of these projects. I choose the stack because I though each part was cool.
------------
VS Code:
Font - Fira Code
Theme - Material Theme Darker
Gear:
Microphone - Shure SM58
Headphones - Philips SHP9500
Interface - Focusrite Scarlett 2i2
Timestamps:
0:00 Intro
0:15 HTMX
2:07 HTML templating
3:25 JSX is pretty good
4:17 typed-html
4:51 Bun
5:20 Elysia
5:45 Lets start building
6:55 Add JSX
7:23 Add HTMX
7:53 Add Tailwind
8:32 Todo list time
9:00 Reading Todos
9:34 Updating Todos
10:39 Deleting Todos
11:15 Creating Todos
12:04 Using a 'real' db
12:22 Turso
12:50 Create db schema
13:59 Using the db client
14:56 Client Scripting
15:27 Hyperscript
16:08 Time to deploy
16:14 Fly.io
16:51 The BETH stack
17:06 Outro

Пікірлер: 577

  • @ethanniser
    @ethanniser11 ай бұрын

    CORRECTIONS: 8:04: Tailwind via script tag is "designed for development purposes only, and is not the best choice for production" I HAVE UPDATED THE GITHUB REPO WITH A PROPER TAILWIND IMPLEMENTATION- basically uses the tailwind cli to generate a output css file and serves it for the main page to have a link tag to, also added a dev script for automatic rebuilding on changes OTHER STYLING OPTIONS: Obviously there are lots of styling libraries out there. Feel free to pick whatever one works the best for you. I have added examples using twind and uno (both do not require a cli step) as branches in the repo if your curious what that might look like.

  • @philheathslegalteam

    @philheathslegalteam

    11 ай бұрын

    Ill give a recommendation here. Swap Tailwind with UNO. Its designed to also work from CDN with insane speeds 10x faster than tailwind.

  • @universaltoons

    @universaltoons

    11 ай бұрын

    unocss is better

  • @ethanniser

    @ethanniser

    11 ай бұрын

    Thanks for the suggestion, I have updated the comment + added a unocss branch to the repo

  • @joeroddy

    @joeroddy

    10 ай бұрын

    One small thing, you said Bun was only available on Linux, but it runs on Mac as well. Maybe you meant Unix-like systems? Great video btw

  • @emircanerkul

    @emircanerkul

    9 ай бұрын

    Nop, i didnt like it. json must have for green planet :) If i had 1000 rows, this htmx just increase package size about 100x idk maybe more

  • @VictorMartins239
    @VictorMartins23911 ай бұрын

    M: Moddable SDK E: Elysia T: Turso H: Htmx

  • @woodmanmade
    @woodmanmade11 ай бұрын

    Starts with "tired of all the chaos in frontend dev" Proceeds to suggest using 4 super bleeding edge tools 😅 And here I thought I was an early adopter hipster programmer! ---- Jokes aside, some interesting things in here. Not really for me (I'm a SvelteKit groupie) but some cool approaches nonetheless.

  • @snavesinned
    @snavesinned9 ай бұрын

    First, this is super cool and a very creative stack using these technologies, but we've basically come full circle back to full server-side rendering but with serverless. I don't see this being any simpler or more complicated than other options, it just makes it look like the data to html translation is getting cut out when it's really just being abstracted away. And yeah, wow, the speed of bun and these frameworks, I can definitely see the appeal of rendering on the backend for consistent page load speeds, especially with caching strategies (memcache) using a functional programming paradigm. This will give us a lot to think about. I'm interested in seeing the pros/cons pan out on this one. At a minimum, I think this will lead to other innovations and trends for web development.

  • @IgorogI1000

    @IgorogI1000

    7 ай бұрын

    He overcomplicated the backend, but you can have very simple and productive setup with HTMX. Besides the simplicity, you get very good performance, compatibility, SEO and cacheability. Using templates in the backend allow you to use variables in the CSS, HTML and JS freely :)

  • @jarnathan-snow

    @jarnathan-snow

    6 ай бұрын

    In my opinion if you are already using a Bun stack then go ahead and use a client side framework like React or Solid if you want more performance. It will make your life easier if you need to maintain local state in a component. Going to the server to collapse/uncollapse an accordion or display a modal, to me feels like an overkill and without a framework is way harder to maintain in the browser. You can implement Server components to only load javascript to the components that you need and do all server operations with React as well if you want to have the backend state philosophy as a priority.

  • @eduardofcgo

    @eduardofcgo

    3 ай бұрын

    memcache? If it's servless as you say you should take advantage of standard http cache headers and strategies

  • @t3dotgg
    @t3dotgg11 ай бұрын

    Wait no I’m the person who made a KZread channel then a tech stack and got prime’s attention

  • @ethanniser

    @ethanniser

    11 ай бұрын

    :)

  • @yogpanjarale

    @yogpanjarale

    11 ай бұрын

    Still this is lighter than t3

  • @old_gaffer

    @old_gaffer

    11 ай бұрын

    I would think social engineering if it wasn't for the vscode

  • @recursion.

    @recursion.

    11 ай бұрын

    Shut up Theo, mans got retweet from the owner of Bun.

  • @user-on2rx4si7g

    @user-on2rx4si7g

    11 ай бұрын

    Honestly you have to spend more time to the ww comunity and @ethanniser created good content no prime no fireship no T3 this is new yummy 😋

  • @hartvenus
    @hartvenus11 ай бұрын

    Good to see No Boilerplate inspired youtubers propping up

  • @Gabriel-ej1xv
    @Gabriel-ej1xv8 ай бұрын

    Maaaan! This is really awesome! I don't remember the last time I felt so exited about development like I'm now, this approach have much potential!

  • @13zebras
    @13zebras5 ай бұрын

    That was incredibly cool! I'm going to build your demo this weekend. I keep wanting a off the React treadmill, and this felt really clean and full of potential.

  • @magne6049
    @magne604911 ай бұрын

    Your videos are above and beyond! Exceptionally pedagogical, and always adressing the cutting edge! I hadn’t even thought about this unique stack before! Instant sub!

  • @oscarljimenez5717
    @oscarljimenez571711 ай бұрын

    I love how his almost writing React Server Componentes without writing React Server Components 😂

  • @philheathslegalteam

    @philheathslegalteam

    11 ай бұрын

    And not 5 second hot reload times 😂

  • @angelustrindade132

    @angelustrindade132

    11 ай бұрын

    What makes it better

  • @AhoyThere

    @AhoyThere

    11 ай бұрын

    I like this approach, it looks very clean and easy to understand. In your opinion what would be another way to write this?

  • @mango4199

    @mango4199

    11 ай бұрын

    @@AhoyThereinteresting. What about mobile app devs who use Swift or Kotlin? They’re expecting JSON and now they’re getting HTML/XML. Or IoT devices like smart TVs or smart fridges?

  • @ulicod3158

    @ulicod3158

    11 ай бұрын

    @@mango4199 I think that wasm can be good to use in mobile apps but can be hard

  • @aspiring_millionaire
    @aspiring_millionaire8 ай бұрын

    Wow I am really thrilled to see so many cool tutorials being put out! Great content Ethan :)

  • @EudaderurScheiss
    @EudaderurScheiss9 ай бұрын

    i started with web dev 22 years, went into a the backend role for now and stopped frontend when react started going big. and as i can see nothing has changed lol. ive implemented my own htmx 20 years ago, always wanted purly functional clients with my own html elements. my syntax looked like m stood for my. you could also just define etc. i really believe every js programmer reinvents the wheel over and over again. back then it was considered bad practice to have your own html elements.

  • @VadimBolshakov

    @VadimBolshakov

    5 ай бұрын

    I've done the same thing 3 ago with jQuery, replaced parts of HTML with responses from backend

  • @rucklerful
    @rucklerful11 ай бұрын

    thank you so much for the effort in making this video. I had a blast watching it.

  • @mrtnhwtt
    @mrtnhwtt11 ай бұрын

    Amazing video! I’ve been wanting to test htmx, I’ll give it a try with the tools you mentionned!

  • @andreas.soderlund
    @andreas.soderlund11 ай бұрын

    It was an interesting look into the bleeding edge, and I want to like it, but in the end this is as complicated as installing most frameworks with most ORM:s and most databases. I'm sure it will be fast, though speed issues, when disregarding bad coding, is a luxury problem that most sites won't have. It's also amusing (in general, not just to this stack) that type safety seems so important on one hand, but on the other hand, inline string-based DSL:s are happily being used, with Tailwind and htmx/hyperscript, at best semi-statically type checked by VS Code extensions. The most straightforward way I've found to develop web apps today is SvelteKit, which replaces most of the libraries in the first 12 minutes of the video with a single npm command. (It has an experimental bun adapter as well.)

  • @nathanfranck5822

    @nathanfranck5822

    9 ай бұрын

    Yeah.. definitely seems a little half-baked. I was thinking that you may as well skip drizzle and just use raw sql strings with bun:sqlite, since you're missing type safety in so many other places

  • @mgan59
    @mgan599 ай бұрын

    Been on the sidelines on tech news, this was a great overview of some of the new tech. Great to see how tailwind slots into htmx and the recent bun announcement - great content 💯

  • @i-am-learning-life
    @i-am-learning-life9 ай бұрын

    After this i can say that we will be using django, java and php again as a full stack project.😊

  • @khuntasaurus88

    @khuntasaurus88

    9 ай бұрын

    All 3 of those are backend languahes/frameworks...

  • @jotarokun2223

    @jotarokun2223

    9 ай бұрын

    ​@@khuntasaurus88so what about a js framework that is a backend framework but is a frontend framework??

  • @louiseboyle9618

    @louiseboyle9618

    9 ай бұрын

    That's smell the noob. Django is a Web framework for Python. All the languages you said are backend. And I don't get the point of your comment with his video.

  • @i-am-learning-life

    @i-am-learning-life

    9 ай бұрын

    Chill guys I am not talking about the framework.. I don't care what framework you use. The end goal should be useful product which solves the business problems not chasing shinny objects for business problems.I was specifically talking about the model view controller based technology where you have simple html,css and Js in one framework itself.. as you get experience you understand that business care about money not you framework... make it work make it cheap and give a good experience that's it...

  • @fernandofarofa

    @fernandofarofa

    9 ай бұрын

    You can do similar with Livewire or Blazor, but livewire is more like this.

  • @binh1298ify
    @binh1298ify11 ай бұрын

    Awesome video, i love the way you explain all the components in the stacks, especially the htmx part. As a React Typescript enjoyer, I'm very excited to see where the future of webdev is heading. Keep it up bro ^^

  • @tylert2413
    @tylert241311 ай бұрын

    Really love where the js ecosystem is headed. Its like waking up from a hangover from all the unneeded complexity and crap performance.

  • @Mkrabs

    @Mkrabs

    11 ай бұрын

    As a backend dev, the js landscape is scary

  • @chukwuemekaajima8373

    @chukwuemekaajima8373

    11 ай бұрын

    @@Mkrabs 😂

  • @heroe1486

    @heroe1486

    11 ай бұрын

    ​@@MkrabsAs a backend Dev one should just stay away from JS, we're stuck with it on the frontend but not on the backend

  • @herrpez

    @herrpez

    11 ай бұрын

    I was out of the web dev world for most of the JS garbage meme era. I got back to inherit a React project 18 months ago, and it was... deeply unpleasant. Not only because it was a junior dev's first React project that had never been rewritten or well maintained, but also because it was React. 😂 I have an upcoming greenfield project, and htmx swoops in from nowhere like some sort of guardian angel. If I were a religious man, I'd be praising somebody right now.

  • @whong09

    @whong09

    11 ай бұрын

    I finally got over my personal hurdle of not wanting to use Django. It's good. Flask is good too, but I'm not sure why I'd ever choose it instead when I can use Django Rest Framework. Type annotation and IDE integration is the future of typing btw. I started programming 15 years ago, typing used to be a thing necessary for the compiler to function, knowing how much memory to reserve, etc.

  • @rujmah
    @rujmah5 ай бұрын

    Awesome intro to the... erm, BETH stack 😮 😄 Great use of bun.js and some of the other tools. Going to give these a try. Looking forward to your other videos.

  • @kualta
    @kualta11 ай бұрын

    pretty exciting, great video!

  • @FajarAndiPatappari
    @FajarAndiPatappari9 ай бұрын

    Fffffff... Crazy good....! Keep produce content with BETH stack. I want to know more. Thank you

  • @oussamasethoum1665
    @oussamasethoum166511 ай бұрын

    This video is so useful and full of information, thanks a lot man. I had no idea I can activate Tailwindcss extension just by adding the config file and still using it from cdn.

  • @ethanniser

    @ethanniser

    11 ай бұрын

    Please check the pinned comment, this way is not meant for production.

  • @RamiGB
    @RamiGB11 ай бұрын

    Beautiful, thank you Ethan

  • @StellarWeb008
    @StellarWeb0089 ай бұрын

    This effectively fulfils my dream of power of an entire website in one file.

  • @JEM_GG
    @JEM_GG11 ай бұрын

    Very cool, and really well presented 👏

  • @yogpanjarale
    @yogpanjarale11 ай бұрын

    This is cutting edge stack as it gets

  • @shanehanna

    @shanehanna

    11 ай бұрын

    Cutting edge like early Y2K. I didn't hate hypermedia the first time around so I have no complaints this time either.

  • @miguecast
    @miguecast8 ай бұрын

    Me ha sorprendido que he podido seguir la explicación perfectamente. Si sabes Express y React (y Tailwind) es perfecto.

  • @kirillnovik8661
    @kirillnovik866111 ай бұрын

    Definitely an interesting approach for small scale apps and personal projects Can't see how this simplifies anything Also having a hard time seeing this approach working out for large scale rich user experiences

  • @Ksixx

    @Ksixx

    11 ай бұрын

    I had the same thought about this, a more complex app may turn into a nightmare to maintain

  • @avid459

    @avid459

    11 ай бұрын

    Look ma, It only works for simple apps comment by react devs 🤦‍♂️

  • @jcon2060

    @jcon2060

    11 ай бұрын

    Honestly. Most people in the bleeding edge web space keep peddling the latest framework. But, in a lot of cases, huge codebases are written and continue to be maintained in freaking JQuery (whiplash yet?) and the best case scenario would be to spend hundreds of dev hours and resources porting it to a more stable and clean solution.

  • @JiggyJones0

    @JiggyJones0

    10 ай бұрын

    ​@@avid459can you not see the tight coupling between backend and frontend and how that would be harder to scale to multiple different clients. What do you do when you have to add mobile and tv clients, you know something applications with large user bases usually do.

  • @nirnullz

    @nirnullz

    9 ай бұрын

    It’s component-based, allowing you to structure the directory like Angular, Next.js, Nuxt.js, or any enterprise app architecture, including clean code/clean architecture. Everything becomes a functional component, and I can simplify it without a service layer or include one for more DDD/TDD approach projects. Essentially, it streamlines full-stack development with the latest technologies and tooling. It’s ideal for small to medium teams of full-stack developers with a UI/UX designer using Figma. Since the components are standard HTML/CSS/JS, you can also set up Storybook to document them using data from a development/stagging database. This enables UI/UX and business processes to be integrated into manageable scenarios, allowing stakeholders to test and document everything on a single platform. It can also be easily extended to incorporate frontend/backend microservices, thanks to the existing tooling, which leverages edge computing as demonstrated in the video. Because the backend and frontend are unified, you can structure the repository as a monorepo with a straightforward layout, making it suitable for full-stack teams of developers.

  • @zozephdev
    @zozephdev11 ай бұрын

    Blazingly bleeding edge stack. Definitely trying this😂

  • @aaomms7986
    @aaomms79865 ай бұрын

    Great vid ever!!

  • @rsenthilkk
    @rsenthilkk11 ай бұрын

    Your content quality is 😍🤩 love to see more videos from you

  • @iancallaghan9987
    @iancallaghan998711 ай бұрын

    Great video! Some interesting takes.

  • @UnathiGX
    @UnathiGX11 ай бұрын

    I love this a lot....especially the Acronym

  • @axa993
    @axa99310 ай бұрын

    We're going back to the old PHP days. I was there. It was hell. Frameworks like Next, Remix, Astro etc. are popular for a reason and throwing out hydration and a JS UI library in a modern web app looks nice on paper but it's a very bad move that will cost you a lot down the road. Also, start thinking about extreme edge cases, large refactors, auth etc. It can get very painful very fast. It looks nice but it's not fitting for all use cases. Don't trust the hype, the real tech stack you need is always different and will always depend on the specific requirements of the project. Performance is cool, less JS is cool but in the end we should be focused on building things not overthinking them into existence. BTW this is a nice video and it was extremely informative and easy to watch.

  • @nanonkay5669
    @nanonkay566911 ай бұрын

    This is crazy powerful, omggggg.

  • @jaoltr
    @jaoltr11 ай бұрын

    🔥This video is a HOMERUN. You've got a new subscriber. Thanks! 🔥

  • @KET0NES
    @KET0NES10 ай бұрын

    great video, there's a lot of people talking vaguely about htmx so appreciate the proper work and detail behind this. i dont know why im so drawn to htmx. what do you think of using astro with htmx? astro routes already let you return html, using astro components & SSR, and its also really pwoerful and lightweight. a lot of people here talking about DX, and to me astro + htmx with some work put into it and squinting could turn out a little like remix. PLUS it would allow the flexibility to sprinkle in some svelte + preact components where relevant

  • @HuynhLuong227
    @HuynhLuong2279 ай бұрын

    Tks for sharing 🎉🎉🎉

  • @follantic
    @follantic9 ай бұрын

    This is the most hipster thing I've seen all week. Love it!

  • @robertbarnett6879
    @robertbarnett687911 ай бұрын

    you can already tell he's on his way to hundreds of thousands of subs.

  • @BrianGwaltney
    @BrianGwaltney11 ай бұрын

    This idea with Hono instead of Eylsia is awesome. Hono has built in support for jsx and way fewer bugs. Love this idea though. Rebuilding some production apps with it already.

  • @niklasgrewe

    @niklasgrewe

    11 ай бұрын

    thanks for the comment. Hono looks really cool, good examples and as you mentioned built-in JSX support. Did you use Bun for the runtime or what would you recommend for production?

  • @MichaelCampbell01
    @MichaelCampbell019 ай бұрын

    Nicely presented, and I got some TIL's. +1 sub!

  • @adimardev1550
    @adimardev15507 ай бұрын

    just wow!

  • @micnubinub
    @micnubinub11 ай бұрын

    Great video 🔥🔥... Keep it up

  • @taufiqdev
    @taufiqdev11 ай бұрын

    I was literally testing out Elysia yesterday

  • @kirso
    @kirso4 ай бұрын

    This is amazing, I noticed that the REPO has Lucia auth now, is there a continuation of the tut?

  • @solarburster
    @solarburster9 ай бұрын

    htmx is a great tool to go with when your goal is to show tons of data, like thousands of rows or cards and to avoid using react virtualisation. But, on the other side, doing some complex forms with dynamically added fields would be worse DX than react-hook-form. Anyway, thanks for sharing your stack.

  • @gabrielpetersson3416

    @gabrielpetersson3416

    9 ай бұрын

    what no

  • @icarojose6316

    @icarojose6316

    8 ай бұрын

    What, yes

  • @pebcak

    @pebcak

    8 ай бұрын

    As a frontend webapp developer, the thought of trying to do anything semi-complex in htmx makes me shudder.

  • @fizzcochito

    @fizzcochito

    7 ай бұрын

    ​@pebcak you don't get it old man, these junior devs and their blazing fast todo apps are the future

  • @user-lm5ju8nc2t
    @user-lm5ju8nc2t9 ай бұрын

    Awesome content, man! I like it. But I didn’t quite get how that error that you throw “Content cannot be empty” from the /todos route is handled ?

  • @ev3rybodygets177
    @ev3rybodygets17711 ай бұрын

    Damn that was awesome

  • @JuanGarcia-qd8ig
    @JuanGarcia-qd8ig11 ай бұрын

    I mean I hate react as much as the next guy, but this looks so painful, it's PHP with extra steps.

  • @Pismice

    @Pismice

    2 ай бұрын

    What does it have to do with php ?

  • @JuanGarcia-qd8ig

    @JuanGarcia-qd8ig

    2 ай бұрын

    @@Pismice Oh I should be more clear. I said it is PHP with extra steps because You have a lot of bloat over your server side templates. Back in the day in PHP You had first class support for just echoing or embedding HTML. Like PHP doesn't give a fk. Just open a PHP Tag in the middle of your html, echo your server side variable, and you are good. Nowadays this is just templating but waaay more complicated and installing a bunch of stuff and then bundle the thing and it's just worthlessly complicated. Can we just go back to PHP for semi-dynamic websites please. it's templating we know templating we've been doing it for decades now.

  • @JuanGarcia-qd8ig

    @JuanGarcia-qd8ig

    2 ай бұрын

    @@Pismice As much as I dislike PHP's syntax the two strongest points for PHP are: EXTREMELY clear documentation and exceptional HTML templating. Why would you try to reinvent a worse versión of that.

  • @alienmo6653
    @alienmo665310 ай бұрын

    Great vid

  • @dailyfunnytv358
    @dailyfunnytv3586 ай бұрын

    the absolute madman

  • @amandeepsingh6581
    @amandeepsingh65818 күн бұрын

    Amazing

  • @APDesignFXP
    @APDesignFXP9 ай бұрын

    Sounds like a good stack, I was looking into using bun

  • @Wizatek
    @Wizatek11 ай бұрын

    The templates being in completely separate file is exactly what makes them great, you can switch out templates without having to change any code

  • @ethanniser

    @ethanniser

    11 ай бұрын

    There’s for sure pros and cons. If you prefer separate file templates you can still use them with htmx.

  • @CamaradaArdi

    @CamaradaArdi

    9 ай бұрын

    ​@@ethanniserif having to switch files is bad for you then you need a better workflow (learn vim)

  • @BrotWurst

    @BrotWurst

    9 ай бұрын

    @@CamaradaArdi how does your IDE effects the separation of you project files? even if you can switch ultra fast, it still has pros and cons.

  • @n1xx1

    @n1xx1

    9 ай бұрын

    @@CamaradaArdi ye... no, switching files is not a workflow problem and you don't need vim to be a better developer. It's more of a separation of concerns issue. Grouping by "what it does" rather than "what it is" is usually much preferred. That's why we have JSX, that's why people enjoy using CSS-in-JS or tailwind, that's why frontend frameworks use single file for component that includes script, styles and template, and so on. And about the original comment, in the end, all templates are tightly coupled with the code, so the argument of switching them out without changing code doesn't make much sense to me.

  • @CamaradaArdi

    @CamaradaArdi

    9 ай бұрын

    @@BrotWurst because I can go to the file that I want in a fraction of a second pressing 2 keys. That's much much much faster than navigating the same file.

  • @binaryfire
    @binaryfire11 ай бұрын

    Great video. Interesting take on the separation of code and templates. As a MVC user I can't stand the idea of putting my logic in templates 😂. Having a separate controller (logic) and view/template (html) for each HTMX endpoint/fragment is an amazing workflow. In the end, just do whatever works for you.

  • @ellisgl

    @ellisgl

    11 ай бұрын

    I've been doing web dev for over 20 years, and it took a while to get to a point where 'separation of concerns' became something desired, instead of doing stuff quickly. I see JSX and it makes me cry.

  • @sazk4000
    @sazk40009 ай бұрын

    this type of content should ideally be in a blog format for easier reading

  • @uchennaofoma4624
    @uchennaofoma462411 ай бұрын

    Love this vid. But it's aalso nice to mention tat bun is still very experimental. I tried working on a project with it like 2 days ago vut couldn't get it working (cos of some bun specific error). There's also the fact that most popular libraries don't interop with bun 😢. But besides that, your stack looks really interesting and i think ill try it out 😃

  • @opposite342
    @opposite34211 ай бұрын

    doing flask sqlite htmx rn but will defo try this stack in my next project

  • @brunoggdev6305
    @brunoggdev630511 ай бұрын

    awesome stuff

  • @IgorogI1000
    @IgorogI10007 ай бұрын

    Using template engine + HTMX is pure joy

  • @nomadshiba
    @nomadshiba9 ай бұрын

    instead of tailwind, i would wanna make inline with @scope when browser support is there until then i can just generete random class names i guess

  • @palabert
    @palabert9 ай бұрын

    Ssr app in highly performant bun runtime with htmx to handle dom updates from the server. Very nice

  • @RoyerAdames
    @RoyerAdames11 ай бұрын

    wait, this is beautiful

  • @user-on2rx4si7g
    @user-on2rx4si7g11 ай бұрын

    Genius ❤🎉

  • @berkefekeskin9172
    @berkefekeskin91729 ай бұрын

    I AM SAVED

  • @the_disco_option
    @the_disco_option11 ай бұрын

    I expected memes about htmx and milk, but what I got was pretty cool stack

  • @ethanniser

    @ethanniser

    11 ай бұрын

    milk?

  • @the_disco_option

    @the_disco_option

    11 ай бұрын

    ​@@ethanniserhtmx memed about milk on Twitter for some reason, so now I just associate the two lol

  • @AndiSyafrianda
    @AndiSyafrianda9 ай бұрын

    love this video

  • @maximumcockage6503
    @maximumcockage65034 ай бұрын

    What do you think of swapping the database out for Mongo? Bun has mongoose support and afaik Mongo is still pretty fast

  • @Metruzanca
    @Metruzanca10 ай бұрын

    SHIT, this stack combines a bunch of different things I've been wanting to use. Bun, Elysia, Turso and HTMX. Damn. Literally have no choice but use this stack in my next app.

  • @Atmos41
    @Atmos4111 ай бұрын

    I would choose Hono over Elysia: - out-of-the-box JSX support. - many runtimes supported (CFW, Deno, Bun, AWS Lambda, etc). (edit - no downsides I could think of for a stack like this one. Type safety is really good with Hono too) Then it would just be called the H stack :)

  • @jacoblockwood4034

    @jacoblockwood4034

    10 ай бұрын

    But then it doesn't make a catchy title!!11!!1! HTBH

  • @ethanniser

    @ethanniser

    10 ай бұрын

    @jacoblockwood4034 Thank you for understanding lol

  • @Christopher-lx4ud

    @Christopher-lx4ud

    10 ай бұрын

    How would one add component styling using css-in-js concepts? Like styled-compnents?

  • @DryBones111

    @DryBones111

    10 ай бұрын

    @@Christopher-lx4ud One wouldn't.

  • @nirnullz

    @nirnullz

    9 ай бұрын

    @@Christopher-lx4udjust use less or scss then: my-component-name { .class or anything css rule { } } No need to do black magic like shadow dom or compiled component css style.

  • @andrepadez
    @andrepadez9 ай бұрын

    I'm not a fan of the HTMX paradigm and am still too attached to express to even consider Elysia, hopefully some time soon. This video, however, was amazing and you just gained a new subscriber

  • @adammo6661
    @adammo66619 ай бұрын

    It looks very performent, however I can't understand if does this allow for more complex JS logic for components? Currently I use react and have a ton of useEffects, where many states are dependant on each other. Would it be possible also here? If so, how?

  • @josephkashi
    @josephkashi11 ай бұрын

    Question: If we don't need a DB with CRUD but only -R--- from the backend/(frontend), which react-like tools work great (=fast) with Bun + Elysia + Htmx?

  • @vijayarajan-bt5fk
    @vijayarajan-bt5fk11 ай бұрын

    அருமையான முன்னுரை நன்றி

  • @sbrugby1
    @sbrugby18 ай бұрын

    I liked it, although it seems nuts to already be using typescript/jsx but decide to reach for htmx/hyperscript, forgoing all type-safety/static-anaylsis you could've just had via react.

  • @Christopher-lx4ud
    @Christopher-lx4ud10 ай бұрын

    How would you write component specific CSS that lives within each component? I've taken your github repo and have broken everything into sub-folders like "components", "layouts", "pages" etc.

  • @KalpeshPanchal
    @KalpeshPanchal11 ай бұрын

    Amazing Guide and walkthrough of all mentioned technologies. It surely seems to be very performant. Best wishes for your and channel's success. Subscribed.

  • @feba33
    @feba3310 ай бұрын

    Gonna try it

  • @ethanniser

    @ethanniser

    10 ай бұрын

    Let me know how it goes!

  • @hazreh
    @hazreh11 ай бұрын

    This is interesting but I think DX suffers a lot the moment you start having multiple pages. Also doing CSR means it's going to be slow on first pageload. I honestly don't see any advantages over something like Sveltekit, which gives you the familiar html-like templating while still having everything you would need in a modern web development.

  • @RudraSingh-pb5ls

    @RudraSingh-pb5ls

    11 ай бұрын

    Can it be used at enterprise level ? Why do they still use Angular at big corporations ?

  • @KManAbout

    @KManAbout

    11 ай бұрын

    ​@@RudraSingh-pb5lswhy do they still use Java at banks?

  • @RudraSingh-pb5ls

    @RudraSingh-pb5ls

    11 ай бұрын

    @@KManAbout man i m asking the same thing

  • @gileee

    @gileee

    11 ай бұрын

    ​@@RudraSingh-pb5ls Couple reasons. Because their apps were made 10+ years ago. It's the only framework their devs know. They don't want to introduce something new into the stack, better have everything be Angular, Java since that's what they commited to a long time ago.

  • @Mcsqw

    @Mcsqw

    11 ай бұрын

    ​@@gileee I worked for the UK government and could only dream of Angular and Java - I was stuck with VBA 😢

  • @sujezz
    @sujezz11 ай бұрын

    In some ways it's cool, in others I absolutely hate having mixed backend and frontend. I can't see how multiple people would do a project this way.

  • @IanWitham

    @IanWitham

    11 ай бұрын

    No different from having multiple frontend devs working on a frontend or multiple backend devs working on a backend

  • @sufyanfaris

    @sufyanfaris

    11 ай бұрын

    You can make the FE server be a client that calls another BE server which houses the logic. Just like what a React app does, but it's server side & no(or less) javascript sent to the user's browser

  • @jugurtha292

    @jugurtha292

    11 ай бұрын

    he made everything in a single file. but it doesnt mean this is how it should be. he could have created a controllers folder, routes file, components folder...

  • @the.real.ipatch

    @the.real.ipatch

    11 ай бұрын

    Monorepo

  • @AbhinavKulshreshtha
    @AbhinavKulshreshtha11 ай бұрын

    950th subscriber.

  • @gen81828
    @gen818289 ай бұрын

    interesting stack but still prefer sveltkit, the script template style method does a better job than putting everything on the server, better view and dx especially when debugging and working in a team

  • @FinlayDaG33k
    @FinlayDaG33k11 ай бұрын

    2:52 Interesting point since I personally think you should keep your templates and "business logic" separated especially since I had to work with both front-end and back-end. Keeps things very nice and tidy.

  • @ethanniser

    @ethanniser

    11 ай бұрын

    For sure, that thought is 100% personal preference. If you like the separation then for sure stick with temptations libraries that allow you that experience.

  • @TechBuddy_
    @TechBuddy_11 ай бұрын

    I did a very similar thing two days ago but with deno, hono, alpine, turso and htmx sooooooooo DeATH stack IG lmfao 🤣🤣 fantastic. Or the HADD stack for deno nono drizzle, htmx and alpine. 🚀 😅 Edit: great video btw loved it ❤

  • @mango4199
    @mango419911 ай бұрын

    We’ve come full circle

  • @markvolkmann1117
    @markvolkmann11176 ай бұрын

    Is there a way to use JSX and return multiple elements in order to update one using `hx-swap-oob`?

  • @dave6012
    @dave60129 ай бұрын

    Curious to see how that elysium route setup scales… obviously putting all your routes and logic in one file is not a good dx, but I don’t see how you can separate that out. Export the elysium instance and decorate it with new handlers and re-export? I has the confusion

  • @patrikwihlke4170
    @patrikwihlke41709 ай бұрын

    Why can I not set completed to true for the "learn vim" item? I've tried for over a decade now.

  • @ravikiranp7532
    @ravikiranp753211 ай бұрын

    This is cool but how well does this scale?

  • @nameless3191
    @nameless31918 ай бұрын

    Syntax looks terrifying, the PHP nightmare is returning with a new power

  • @teej_dv
    @teej_dv11 ай бұрын

    make sure to check off your todo for "learn vim" next

  • @ethanniser

    @ethanniser

    11 ай бұрын

    still working on that one lol

  • @yuliusseraph4973

    @yuliusseraph4973

    11 ай бұрын

    omg it's tj the friend of rusteagen!

  • @marty4372
    @marty437211 ай бұрын

    even without rust, is too blazingly fast. I will consider the BETH stack in future projects and all know Bun when reach v1.0 it will break node and deno. Greetings from mexico, new to your channel

  • @marty4372

    @marty4372

    9 ай бұрын

    @CesarLP96 ?

  • @BriceFernandes
    @BriceFernandes10 ай бұрын

    Interesting video, but as far as I'm concerned, getting JSON from the API is a feature, not a bug. This approach tightly couples the API to the FE, which reduces testability and the ability to compose APIs or use different API endpoints into a single app. The stack components look v. interesting though. Thank you for making this video and I'll definitely check out Bun, Elysia, Turso and hyperscript.

  • @jacoblockwood4034

    @jacoblockwood4034

    10 ай бұрын

    Well, this is just how the HTMX model works. If you don't like it, don't use HTMX.

  • @davidmcdonnel4831

    @davidmcdonnel4831

    10 ай бұрын

    The backend can offer json or htmx depending on the request mimetype if you wanted to support both. Just extra work for the backend at the router layer and presentation layer.

  • @okie9025

    @okie9025

    9 ай бұрын

    @@davidmcdonnel4831 "extra work" no thanks

  • @summerWTFE
    @summerWTFE9 ай бұрын

    @6:19 no coloring or LSP highlighting for HTML?

  • @seschaitanya5676
    @seschaitanya567611 ай бұрын

    I love the idea!!! The way you've combined the tools to make a stack is pure class. But doesn't htmx feel very imperative? Handling DOM operations by manually selecting DOM nodes can be bit of a hassle.

  • @ethanniser

    @ethanniser

    11 ай бұрын

    Htmx is a great option for certain kinds of apps where working with the dom imperatively is manageable, but for more complex, or highly interactive apps even the htmx authors recommend sticking with a js framework See: htmx.org/essays/when-to-use-hypermedia/

  • @seschaitanya5676

    @seschaitanya5676

    11 ай бұрын

    @@ethanniser Great! thanks for sharing the article! Looking forward to more videos!

  • @jtpotato
    @jtpotato9 ай бұрын

    so now we’re back to the server doing the heavy lifting…. interesting

  • @anyGTv
    @anyGTv9 ай бұрын

    Can you do a video on websockets using the htmx and Elysia?

  • @user-wj8lx2ws8y
    @user-wj8lx2ws8y9 ай бұрын

    @ethanniser Do you believe this is the perfect frontend stack for 2024? I mean, if I am starting with frontend development, should I go for the BETH stack straight away?