A starter kit for building a web app with gomponents, HTMX, and TailwindCSS in Go.
Made with ✨sparkles✨ by maragu: independent software consulting for cloud-native Go apps & AI engineering.
Contact me at markus@maragu.dk for consulting work, or perhaps an invoice to support this project?
The easiest way to get started is to Use this template to create a new repository. Or you could clone this repository the traditional way:
git clone git@github.com:maragudk/gomponents-starter-kit.git your-app-nameAfter that, you can start the app with:
make startIf you make style changes, watch the CSS with:
make watch-cssYou can run tests and linting with:
make test lintTailwindCSS has auto-complete of classnames (and more) through IDE plugins.
After you've installed the TailwindCSS plugin for your IDE, it needs some configuration to work with gomponents. Here's the config for VS Code and JetBrains IDEs:
VSCode
Edit vscode-settings.json and add the following:
{
"tailwindCSS.includeLanguages": {
"go": "html",
},
"tailwindCSS.experimental.classRegex": [
["Class(?:es)?[({]([^)}]*)[)}]", "[\"`]([^\"`]*)[\"`]"]
],
}JetBrains/GoLand
Go to Settings -> Languages & Frameworks -> Style Sheets -> Tailwind CSS and add the following (don't delete the other config):
{
"includeLanguages": {
"go": "html"
},
"experimental": {
"classRegex": [
["Class(?:es)?[({]([^)}]*)[)}]", "[\"`]([^\"`]*)[\"`]"]
]
}
}The CD workflow automatically builds a multi-platform Docker image and pushes it to the Github container registry GHCR.io, tagged with the commit hash as well as latest.
You can try building the image locally with:
make build-dockerNote that you need the containerd image store enabled for this to work.
