A Simple scaffold template to start building web apps with Go, HTMX and Web Components.
I have no idea what I'm doing - NordGus
I discovered Go via a podcast talking about Buffalo, since then I was fascinated with the possibility of shipping all the required data (files, templates, images, assets, etc.) inside a single Go executable. To the point that one of my first experiments was a tool to embed an Angular application inside a Go executable.
It reminded me of the old cartridge-based game consoles and their ROMs from my childhood. So that's why I decided to call it the ROM Stack, a Tech Stack designed to build ROM-like applications with Go.
This is a simple setup, I've designed it to help me reduce friction between idea and execution for my side-projects.
As I continue to work with it, I will update it so is not as bare bones or better setup for serious development.
At the moment, this template includes a devcontainer
setup for vscode that works(tm).
And also has a nvm
setup to work on a local environment.
But you're right. I completely forgot.
- Install the tools needed by the Go extension.
- Run
go mod edit <module name>
to rename the Go module. - Run
go mod tidy
to update Go dependencies. - Rename the project inside the
package.json
. - Run
npm install
to update yourpackage-lock.json
.
- Run
go mod edit <module name>
to rename the Go module. - Rename the project inside the
package.json
. - Run
go mod download
to download Go dependencies. - Run
npm install
to download Node dependencies. - Install
air
by runninggo install github.com/cosmtrek/air@latest
.
- Make the proof-of-concept.
- Write my own manifesto-like
README.md
. - Learn how to set up
eslint
. - Setup
eslint
. - Learn how to set up
Prettier
. - Setup
Prettier
. - Migrate to simple
esbuild
. - Learn how to use
air
. - Setup
air
to handle hot-reloading. - Learn how to use
Makefiles
. - Setup
Makefile
to control the different tools in the project. - Setup test environment.
- Setup
Docker
image to build and serve the project. - Learn how to set up a CI/CD pipeline for the project.
- Stop sucking at code.
- Stop procrastinating.
- Stop making checklist I can't complete.
I have no idea what I'm doing, so I do not recommend use this template for production and any-scale deployments beyond personal education without heavy modification.
If you have more experience setting up the missing pieces, or you consider that I'm missing something else or misconfigured something. Don't be afraid of collaborating. Open a PR. And please explain in details why and what it does. Share your knowledge with other developers.
Let's build cool stuff together.