What's GOTTH?
A simple tech stack that we use to create web applications.
Why GOTTH?
Once you get past the learning curve, you're able to build extremely complex, good looking and responsive web applications with minimal front-end friction.
Who is site this for?
People who are looking more for a "sparknotes" and step-by-step version of working with GOTTH over a detailed case study.
If you value speed, simplicity, and maintainable codebases - GOTTH might be the perfect fit.
Pros & Cons
Disclaimer: This is the opinion of the author. Your mileage may vary.
Pros:
- No Javascript, and no Javascript ecosystem. Even though you use 2 js libraries - you don't need to write any js code yourself, and both libraries have great documentation/support.
- Go is a fast powerhouse of a language with a ton of features and great documentation.
- Minimal JavaScript thanks to HTMX, minimal Frontend thanks to TailwindCSS.
- Advanced front-end features like animations, panels and more from Tailwind.
- Templates allow an extremely easy way to create custom HTML pages, and populate them with the necessary information.
- HTMX lets you implement APIs and dynamic features quickly.
- Database Agnostic. I like Mongodb, but you can easily swap it for something else using the necessary Go drivers/modules/scripts.
- Deployment agnostic. We go over using docker, but you can
- Extensible backend. Want to add live reload (air) or debugging (delve)? Go right ahead.
- Extensible frontend. Can't live without React/Sveltea Cheese/Goober .js? (Okay, the last one was supposed to be a joke but it's actually a pretty cool project) Well, with some tweaking you can get it working.
- It teaches you a lot about web development, without being overwhelming.
Cons:
- Less conventional than popular JS frameworks, so smaller community and less online support. AI is good with dealing with individual parts (the Go code, the HTMX code, Tailwind styling) but struggles to "bring it all together".
- An intense learning curve - none of this is taught in University classes, and this is all extremely diferent from typical development methods. With that being said - efficiency and simplicity is one of the benefits of the GOTTH stack, and once you get over the hurdle, you'll find everything is smoother than React/Next.js.
- HTMX might lack some advanced features that large JS frameworks provide. (I need examples, pls give me some in the github repo).
- Tailwind css encourages "copy+paste development" with many repeated sections.
- Debugging is hard - we're using so many interconnected technologies, and identifying which one is giving us the issue can be difficult.
- While a lot of the logic should apply between development projects (templating, AJAX requests, backend request handling) a lot of it is domain-specific to GOTTH. This means that you might be annoyed if you go back to your React day job after being exposed to GOTTH.
Why this tutorial:
- *Looks left then slowly looks right in an exaggerated manner*... Where else can you go?
- Dead simple and straightforward.
- Database/system agnostic. Start with the basics, extend how you want.
- We use a unique building block approach, so we don't overwhelm new users.
- At the end, you'll have a deep understanding of each individual piece of technology - as well as how they all fit together at once.
- This is meant to be extendable, and at the end, I'll have sections detailing how you can add further Go code/tests.