Starter project template with Go, Cobra, Viper, React, TanStack (Router, Query, Store), and whatever router library you want to use. This aims to make you able to quickly create awesome app without having to bother with the initial setup.
pnpm dlx tiged riipandi/tango myapp-nameIn this repo I'm using go-chi and Connect RPC, but you can change it with whatever library you want.
You will need Go >=1.26, Node.js >= 24.14, PNPM >= 10.33,
and Docker >= 20.10 installed on your machine.
Also, you need to install the following tools:
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest
go install github.com/bufbuild/buf/cmd/buf@latest
go install github.com/swaggo/swag/cmd/swag@latest
go install github.com/pressly/goose/v3/cmd/goose@latest
go install github.com/goreleaser/goreleaser/v2@latest
go install github.com/anchore/grype/cmd/grype@latest- Install the required toolchain & SDK.
- Find and replace
tango,Tango, andMyApplicationstrings in the source files. - Install the required application dependencies:
pnpm install - Create env file for development:
cp .env.example .env.local - Geneate application secret key:
pnpm generate:key --apply - Geneate Connect RPC proto:
pnpm generate:proto - Run project in development mode:
pnpm dev
Vite serves the frontend on :3000 and proxies /api/* and /rpc/* to Go on :3080.
Go files are watched and auto-rebuilt.
| Command | Description |
|---|---|
pnpm dev |
Vite dev server (:3000) + Go API server (:3080) |
pnpm build |
Build frontend + Go binary (single file) |
pnpm start |
Run the production binary |
pnpm cmd |
Run Go server directly (go run -tags debug .) |
pnpm test |
Run tests (frontend and backend) |
alias fetch-rpc='curl -SLi -H "Content-Type: application/json" -X POST'
fetch-rpc -s http://localhost:3000/rpc/api.v1.GreetService/Greet -d '{"name": "John"}'Sign in to container registry:
echo $REGISTRY_TOKEN | docker login REGISTRY_URL --username YOUR_USERNAME --password-stdinReplace REGISTRY_URL with your container registry, ie: ghcr.io or docker.io
Push docker image:
pnpm docker:pushRead the Deployment Guidelines for detailed documentation.
- Choosing the Right Go Web Framework
- How To Structure A Golang Project
- How to Structure Your Project in Golang
Licensed under either of Apache License 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Copyrights in this project are retained by their contributors.
See the LICENSE-APACHE and LICENSE-MIT files for more information.
π€« Psst! If you like my work you can support me via GitHub sponsors.
