"Since the web is neither as complex as game development nor as sensitive as the embedded systems, web developers have to create their own job security through useless complexity." That's the strongest line I've heard in a while. I'm stealing it.
Exactly. Web dev is just a simple select from database and display to browser and input from browser and save to database. Tools nowadays are uselessly complicated 😅
To be honest, in my personal experience, anything with a "nice" GUI is going to be complicated because GUIs are complicated... If you are doing a ultra minimalist interface (maybe just command line), the world is kind of your oyster.
This video is exactly what I need. I actually scared of web dev because of how complicated it seemed so I stick with embedded systems, but now I have a lot of free time and wanted to make a website.
So basically we got back to when i was doing the same with php 5 + jQuery ... We changed this as soon as react was invented to get faster response with json and more reactive pages. Are we going back again?
Yes we are, because 90% of the web if not more it's just simple forms, storing data and presenting it. You don't need shared state accross "components". All that mumbo jumbo it's just more fat your devs have to maintain. Back in the day the problem was that the full refresh was expensive, but with this addition HTML fixed the issue that triggered virtrualDOM manipulation.
Agreed. The original reason of using react was making web dev easier but it had totally turned into opposite way. People was just trying to show off to catch the latest tech ten plus years ago, even though the jobs or projects they did never needed React. I used to say now already 2024, web dev still spent hours and days on frontend to deal with code based css or JavaScript without any dragging and dropping frontend controls, this is a shame.
This stack is overlaps with every single template based web application server in existence including the original perl-based PHP which predates ASP by a long shot. making this obvious comparison doesn't make you sound as smart as you think it does. Also ASP only ran on the windows platform and there's nothing open-source about he IIS application server that it required.
You sir should take away your JSF mention and leave this comments section immediately. Back in the early 2010, JSF was used in one of my real work projects... I still have nightmares about Primefaces...
@@awesome-coding Was using it several years later, fixing up for a "nice" GUI done by dedicated UI\UX designer. You should get a medal for using that premature stuff.
@@awesome-coding I use JSF with PrimeFaces for my job. 😭😭 It's not all sunshine and rainbows. Btw, it would be interesting to see something related to SPAs as well
@@awesome-coding I forgot to thank you for making the video. My bad. I appreciate you making the video. It was the first time I’d watched someone build out anything simple with Go and HTMX. My other option would be Prime’s video, but it’s so long, I’ve yet to watch it.
Would be nice to see a git repository with the final code. I tried to follow along, but got stuck at the end with adding the task.html. I think I missed an update to the index.html that ties it all together?
Update, I actually spent a bit of time getting this working, and I have a working repo. RUclips doesn't like outside links, but my username is ctstewart, and the repo name is basic-todo-with-go-htmx. I fixed several issues that were in this video that were preventing this from running. One major problem that I could not fix is Windows compatibility. Windows dev for the sqllite and Go requires gcc, something I couldn't get installed properly and gave up on. It was far easier to develop within a Dev Container using VSCode and Docker. The setup file is part of the repo. If either of you have any questions about the changes I made to get it working, I'd be happy to help!
I love this video. Can you make more btw? Like seriously, its kinda maddening how over complex ts shit is. Game dev and embedding is so simple and straightforward for me. But trying to deal with 9 quadrillion different frameworks and all this mindless bs makes me suicidal
Pocketbase please! I've been poking at it using its static pages with JS and HTMX calling the back end, but very nice to see what someone who knows what they are doing show one around. I can see how Pocketbase could replace some of the fastapi/flask/quart approaches I've been using. I really like your videos Mr. Awesome.
Your code in the video doesn't work. I had to move the inside the form and update the htmx version. Also the Delete buttons don't refresh the todo list and stay on the screen
The Go std library now has its own HTTP router. You don't need chi anymore. (chi is what go developers used for routing until the latest release, whereas I think gin is what Node developers use because, well, they just need at least one little thing that can be overly complex to buck against the system)
You probably should do a second video about how to add authentication to this basic web app. As is, your one todo list editable by anyone finding your url isn't near anything usable. Simplicity is no point if you can't go production ready. Anyway, nice explanation. I'm still not sold on Go, since any back-end language could easily do the same in about as many lines of code.
the less moving parts and the simplest stack are the reasons why even today there are apps running in legacy code without a single trouble and handling millions of users, and i've seen lot of developers trying to migrate to a new modern alternative creating more issues than what is solving, i know that not all websites are created equally, and some needs heavy interactivity ( which i still wants to know what is a heavy interactive websites ) of course apps like figma, penpot are the exception.
It's a fire until you realise that you need to implement accessible UI. I also wish you good luck in finding professional developers with reasonable salary expectations who will use this technology stack. But overall this is a great stack for hobby projects.
@@alexandershishkovskiy I do frontend at work and enjoy writing in this stack on my free time. Can you tell me more about the a11y or give some starting point to go and learn about. I'm interested
@@alexandershishkovskiy ehh youre over emphasizing the time bottleneck that UI components are. gopress has plenty of components already or once could use alpine and set then some components in an afternoon. Really though, UI components arent much of a write time bottleneck, effective db queries and backend business logic are, both of which this stack excels at speeding up :)
A while back I would say the same, but fireship is all about AI now, or tech scandals. Good ol' days when he was doing some coding stuff. So now this is the new fireship!
"Frequent Releases" signals the _opposite_ of stack longevity. Do you see PHP getting frequent releases? Sky scrapers still under construction are not fit for occupancy.
You forgot about data validation, emails, async jobs, caching, etc... Like 99% of the rest of the stack. If only we would render html, life would be so good.
In 9:37 you've managed to build just a Hello World app. It's not the simplest tech stack by any means. In the same time you could have built a functional CRUD app with Rails and Turbo.
I think most modern "Full-Stack JS" solutions like Next, Nuxt, etc would probably be better classed as SPAs with SSR, because they typically switch to client side routing after the initial server render, and as you said, they send JSON or framework specific responses (like RSCs) instead of HTML.
It's probably the same mix. I just find Go way easier to learn and work with compare to Rust. (I also have very little experience in Rust, so I might be subjective)
Very high interactivity on the site: use a framework as you mostly write js (or wasm) anyway. You probably won't write most changes to the backend anyway. Minimal interactivity: return html with your backend and sprinkle in some js of your choice. (e. g. HTML, jquery, etc) You can also use Interaction between components on site as interactivity.
I think a combination of cloudflare worker with its edge based D1 database & R2 storage makes better tech stack when combined with cloudflare pages. 🤔 This is just my personal choice 😊
This the about the stack I'm working on right now but I added templ to the mix. Not sure that was a good idea. I'm not a fan of the fact that templ has to be compiled to go. It's just an extra step that I feel could be avoided.
Yes, I don't want to sound too negative about Templ. Just sometimes I feel I get the old version of some html served. Like it couldn't compile the latest version and it serves me the last compiled version without a warning. Also the CSS is my least favorite thing. Give me nested CSS inside css(){} and a way to inject some custom properties dynamically inline. Overal I like Templ though, i think it is good. When I wrote my first comment I just spend some time trying to my latest changes to show up. And wasn't sure why it didn't work.
good tuto until the end, but... where is the example of the app running? show the code working, where is the gist for the code? good animations and voice, but I think the video needs some polish, thanks anyway, it was useful
just reframing what Primeagen said is useless and boring
go read a paywalled medium tutorial
the absolute shock dumb people go through when smart people think with their heads and come to similar conclusions
"Since the web is neither as complex as game development nor as sensitive as the embedded systems, web developers have to create their own job security through useless complexity." That's the strongest line I've heard in a while. I'm stealing it.
Me too
Exactly. Web dev is just a simple select from database and display to browser and input from browser and save to database. Tools nowadays are uselessly complicated 😅
Gold
it depends what kind of what web app?? is it web app like figma? canva? then it's quite complex@@genechristiansomoza4931
To be honest, in my personal experience, anything with a "nice" GUI is going to be complicated because GUIs are complicated...
If you are doing a ultra minimalist interface (maybe just command line), the world is kind of your oyster.
This video is exactly what I need. I actually scared of web dev because of how complicated it seemed so I stick with embedded systems, but now I have a lot of free time and wanted to make a website.
Glad to hear!
Remember folks, it never hurts to just use css and javascript. Abstraction of the same concepts is just a dialect difference.
So basically we got back to when i was doing the same with php 5 + jQuery ...
We changed this as soon as react was invented to get faster response with json and more reactive pages. Are we going back again?
My thought as well. Just looks like basic PHP
Yes we are, because 90% of the web if not more it's just simple forms, storing data and presenting it. You don't need shared state accross "components". All that mumbo jumbo it's just more fat your devs have to maintain. Back in the day the problem was that the full refresh was expensive, but with this addition HTML fixed the issue that triggered virtrualDOM manipulation.
yes because you don't have to maintain state in 3 places and do serialisation to JSON and back again for every call
Agreed. The original reason of using react was making web dev easier but it had totally turned into opposite way. People was just trying to show off to catch the latest tech ten plus years ago, even though the jobs or projects they did never needed React. I used to say now already 2024, web dev still spent hours and days on frontend to deal with code based css or JavaScript without any dragging and dropping frontend controls, this is a shame.
Hadware is cheaper, browsers are more capable
The Simplest Tech Stack with Go
PHP: "and I took that personaly"
There is an alarming number of PHP enthusiasts in the comments😅
* Coldfusion left chatroom
@@awesome-coding PHP is ❤
@@awesome-coding PHP video next?
ironically GO + HTMX is arguably simpler even then PHP... I don't know if you remember configuring php.ini and your apache httpd.conf... it was "fun"
0:10 pure wisdom
Microsoft used to call this Active Server Pages 20+ years ago.
This stack is overlaps with every single template based web application server in existence including the original perl-based PHP which predates ASP by a long shot. making this obvious comparison doesn't make you sound as smart as you think it does. Also ASP only ran on the windows platform and there's nothing open-source about he IIS application server that it required.
@@TerenceKearns why did you feel the need to whip it out?
@@guser7137must be a devoted PHP fan
That's why they say: "When you need new ideas, read old books"
this video has been on my feed for a while now, today i watched it, liked and subbed
Thank you!
JSF (Java Server Faces) just waiting in the background like "oh okay we're looping entirely back to thin clients and fat servers?"
You sir should take away your JSF mention and leave this comments section immediately.
Back in the early 2010, JSF was used in one of my real work projects... I still have nightmares about Primefaces...
@@awesome-coding Was using it several years later, fixing up for a "nice" GUI done by dedicated UI\UX designer. You should get a medal for using that premature stuff.
@@awesome-coding I use JSF with PrimeFaces for my job. 😭😭
It's not all sunshine and rainbows.
Btw, it would be interesting to see something related to SPAs as well
please show the end result, it would make it so much easier to understand
correct
Yeah. That was my only gripe with the video, but I can imagine what it would be like in the browser.
Thanks for your feedback! Will keep it in mind for future videos.
@@awesome-coding I forgot to thank you for making the video. My bad.
I appreciate you making the video. It was the first time I’d watched someone build out anything simple with Go and HTMX.
My other option would be Prime’s video, but it’s so long, I’ve yet to watch it.
@@samuelodan2376 Thank you!
Web devs= complexity is our hallmark
Yay for job security!
u forgot to say that Go has a nice mascot
True that :))
Lol worst part of the language
gopher? XD
@@popel_ yes that and an http server setup lol
Awesome Golang + HTMX video! Would love a deep dive on PocketBase.
Coming soon!
Great video, would love to see a deepdive on pocketbase, using a similar project example
Coming soon! Thanks for your feedback!
you can add templ in this stack
Especially since net/http in go 1.22 makes Gin and other frameworks mostly unnecessary.
@@charlesbcraigso what is the recommend framework then, htmx+go+templ?
A deep dive into pocket base would be great!
Will do! Thanks for the input!
Would be nice to see a git repository with the final code. I tried to follow along, but got stuck at the end with adding the task.html. I think I missed an update to the index.html that ties it all together?
Same. Did everything the same and in the end it didn't work.
Same. Pretty frustrating result. He never created a "task.html" file, so I'm not sure what that's referencing.
Update, I actually spent a bit of time getting this working, and I have a working repo. RUclips doesn't like outside links, but my username is ctstewart, and the repo name is basic-todo-with-go-htmx.
I fixed several issues that were in this video that were preventing this from running. One major problem that I could not fix is Windows compatibility. Windows dev for the sqllite and Go requires gcc, something I couldn't get installed properly and gave up on. It was far easier to develop within a Dev Container using VSCode and Docker. The setup file is part of the repo.
If either of you have any questions about the changes I made to get it working, I'd be happy to help!
Yeah, seems to just be a plug for his pocketbase solution.
more HTMX please
And we are all the way back again
I love this video. Can you make more btw?
Like seriously, its kinda maddening how over complex ts shit is.
Game dev and embedding is so simple and straightforward for me. But trying to deal with 9 quadrillion different frameworks and all this mindless bs makes me suicidal
Glad you like it! More to come!
Is there a video for SPA?
You, sir, have awesome content! Instant subscription!
Thank you!
awesome innovative way of presenting. Thanks sir
Thank you!
Nice vid, what VSCode theme are you using?
Mr. Awesome
Is the shown code publicly available somewhere?
I would like to watch a video about Pocketbase and SPA
Coming soon!
Yes, please!
What’s SPA ??
@@bestskyever Single Page Application
Can you also please make one about how to add css and interactive components like carousels using this tech stack?
Sure thing! Will add it on my todo list.
Thanks for the feedback!
PocketBase mentioned LETSSSGOOO
Pocketbase please! I've been poking at it using its static pages with JS and HTMX calling the back end, but very nice to see what someone who knows what they are doing show one around.
I can see how Pocketbase could replace some of the fastapi/flask/quart approaches I've been using.
I really like your videos Mr. Awesome.
Working on it!
Your code in the video doesn't work. I had to move the inside the form and update the htmx version. Also the Delete buttons don't refresh the todo list and stay on the screen
wait no github code provided?
The simplest tech stack is JS , CSS and HTML.
*the simplest way to make spaghetti
spaghetti is a language-independent phenomenon.
@@yayz_ it depends on the one coding it.
@yayz_ I love pasta!
Came here to say exactly this.
I've got this feeling that we're constantly reinventing the wheel somehow...
it is the same wheel - we are just presenting it as "innovation" every 10 years :D
Could you add a link to a full code?
What was that version of Vue that you put in the same category as HTMX ??
Petite Vue - github.com/vuejs/petite-vue
@@awesome-coding Thanks!!
The Go std library now has its own HTTP router. You don't need chi anymore. (chi is what go developers used for routing until the latest release, whereas I think gin is what Node developers use because, well, they just need at least one little thing that can be overly complex to buck against the system)
Could you do a video on how to do lazy loading with this stack?
these animations are so cool, how do u make them
Thanks! I’m using Premiere Pro
@@awesome-coding cool
thanks
What's your opinion about Blazor NET8
Hey! I don't have enough experience with it yet so I can't really have an informed opinion :(
Would be great to have timestamps in your videos
video was so good you earned yourself a subscriber !!
Yay! Thank you!
poketbase is really interesting. I'd like to see a video on that!
Coming soon!
You probably should do a second video about how to add authentication to this basic web app. As is, your one todo list editable by anyone finding your url isn't near anything usable.
Simplicity is no point if you can't go production ready.
Anyway, nice explanation. I'm still not sold on Go, since any back-end language could easily do the same in about as many lines of code.
Great stack for todo app
Yes! In for a PocketBase video. It's such a cool tool.
Coming soon!
the less moving parts and the simplest stack are the reasons why even today there are apps running in legacy code without a single trouble and handling millions of users, and i've seen lot of developers trying to migrate to a new modern alternative creating more issues than what is solving, i know that not all websites are created equally, and some needs heavy interactivity ( which i still wants to know what is a heavy interactive websites ) of course apps like figma, penpot are the exception.
amazing video!
Does anyone know the name of the font he is using?
Poppins and Futura for the graphics.
@@awesome-coding Oh i'm sorry, i meant the code font
Is React not capable to creating an MPA?
Not on its own - You need to pair it with something like Next JS or Astro to have server side rendering.
Go + templ + htmx + tailwindcss is so fireeee
It's a fire until you realise that you need to implement accessible UI. I also wish you good luck in finding professional developers with reasonable salary expectations who will use this technology stack. But overall this is a great stack for hobby projects.
@@alexandershishkovskiy I do frontend at work and enjoy writing in this stack on my free time.
Can you tell me more about the a11y or give some starting point to go and learn about. I'm interested
I’d remove templ and tailwindcss. You are better off using Pure CSS and HTML Templates IMO
@@alexandershishkovskiy ehh youre over emphasizing the time bottleneck that UI components are.
gopress has plenty of components already or once could use alpine and set then some components in an afternoon.
Really though, UI components arent much of a write time bottleneck, effective db queries and backend business logic are, both of which this stack excels at speeding up :)
Fireship from eBay.
😂😂😂😂😂😂😂
A while back I would say the same, but fireship is all about AI now, or tech scandals. Good ol' days when he was doing some coding stuff. So now this is the new fireship!
He's doing a great job and the quality is also pretty good tho
hilarious xD
I'll take it.
"Frequent Releases" signals the _opposite_ of stack longevity. Do you see PHP getting frequent releases? Sky scrapers still under construction are not fit for occupancy.
Is this like streamlit?
No
Yes to Pocketbase ❤
Please make fast api & fast html tutorial
Dont forget about Convex too - the realtime backend as a service. I would like to see how you use it with Runes
You forgot about data validation, emails, async jobs, caching, etc... Like 99% of the rest of the stack.
If only we would render html, life would be so good.
Right?... It really does feel like that amounts to 1% and the 99% is complexity.
He gave up before getting to those concepts
Great video!!! I have a question if you don't mind answering, which font do you use in code snippets? like on 4:48
Hey! MonoLisa :)
I've been using this quite a bit lately.
SPA please
Will do!
Great video ❤
Thank you!!
Astro with htmx is something special btw 🎉
Please create a crash course atleast 1 hour tutorial
03:07 3-TH 🙌
😅
We want Pocketbase tutorial
Will do!
i convinced my company to migrate over. we decided with poem (rust) instead of go. it's a lot more productive than next.js.
Can anyone explain why multi-page apps + ssr is faster than single-page apps? 1:29
Js bundle size can make it slow
In 9:37 you've managed to build just a Hello World app. It's not the simplest tech stack by any means. In the same time you could have built a functional CRUD app with Rails and Turbo.
Only showing code and no intermediate steps or a working solution really doesn’t demonstrate much
Thanks for the feedback! will keep it in mind.
I think most modern "Full-Stack JS" solutions like Next, Nuxt, etc would probably be better classed as SPAs with SSR, because they typically switch to client side routing after the initial server render, and as you said, they send JSON or framework specific responses (like RSCs) instead of HTML.
Most can "prerender" a route, and that would return just HTML, but that's typically the exception rather than the rule, aside from things like Astro
Yes, Please SPA !!!
Will do! Thank you!
What about Using Rust with HTMX, i mean if you know little bit of Rust already?
It's probably the same mix. I just find Go way easier to learn and work with compare to Rust. (I also have very little experience in Rust, so I might be subjective)
In 8:16 the form should also have method="post" attribute
Good catch!
Itching to try these now . Ig who needs sleep anyway
Rust ecosystem is getting stronger as well
Make an ASP NET Core video:
-MVC
-Web API
-Blazor
I'm actually diving into the .NET code world these days, so this video might happen soon.
Nice content
Thank you!
haters will say that latency is an issue and blablabla.
just setup multiregional apps with cloudfare and turso and u are good to go.
Say you couldn’t do that, what is the best framework across languages for latency? Honestly just curious, never really occurred to me
POCKETBASE ❤
awesome
Pocketbase yes
still waiting for enterprise HTMX web that isn't todo app
Maybe video on fasthtml ?
Will look into it!
Please PocketBase 😊
SPA with go, please
Will do!
Very high interactivity on the site: use a framework as you mostly write js (or wasm) anyway. You probably won't write most changes to the backend anyway.
Minimal interactivity: return html with your backend and sprinkle in some js of your choice. (e. g. HTML, jquery, etc)
You can also use Interaction between components on site as interactivity.
I think a combination of cloudflare worker with its edge based D1 database & R2 storage makes better tech stack when combined with cloudflare pages. 🤔
This is just my personal choice 😊
Yes
D1 is not edge yet
@@duayenemre I have personally tested the api performance (with D1 operations) on edge servers. It does exist on edge
Back in the day, we called MPAs "web applications".
🤣
"... use a web framework that will be around in10 years ..." :) I like this kind of humor.
:)) Vue and React are 10 years old, Angular is 8 years old. So it's not really that uncommon :D
@@awesome-coding And how different is the current version from 1.0? #ItsStillTheSame #KindOf #SomeHow 😄
didn't u made the same video last year ?
Good memory! That was a shorter 3 minute version, and some people asked for a deeper dive.
Fiber is simple and faster. HTMX may need some JS code which can be added with petite-vue
I thought the json struct tags were to rename the key so it doesn't export the capitalized value
Please do a proper PB tutorial. It has been so difficult to find a good one that doesn't just stop at showing auth.
Will do! Thanks for the input!
The only issue with go templates is that you don't have any types
If that's a real issue, you can use Templ instead.
This the about the stack I'm working on right now but I added templ to the mix. Not sure that was a good idea. I'm not a fan of the fact that templ has to be compiled to go. It's just an extra step that I feel could be avoided.
The templ compilation is extremely fast though.
The fact that templ is type safe made up for the build step for me
Yes, I don't want to sound too negative about Templ.
Just sometimes I feel I get the old version of some html served. Like it couldn't compile the latest version and it serves me the last compiled version without a warning. Also the CSS is my least favorite thing. Give me nested CSS inside css(){} and a way to inject some custom properties dynamically inline.
Overal I like Templ though, i think it is good. When I wrote my first comment I just spend some time trying to my latest changes to show up. And wasn't sure why it didn't work.
Define Simplest
Just add turso and now you are production ready :)
turso for what ? does the database/sql std lib is too complex for you ?
adding subscription based products to your stack isn't going to make it production ready
@devloper344 I think the idea is that SQLite is not scalable on its own, and Turso solves that through their distributed edge solution.
good tuto until the end, but... where is the example of the app running? show the code working, where is the gist for the code? good animations and voice, but I think the video needs some polish, thanks anyway, it was useful
Thank you for your feedback!
please bring more go videos
That's the plan!