Skip to content

riipandi/tango

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

156 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

banner

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.

Go TypeScript React Go Report Card Contributions


pnpm dlx tiged riipandi/tango myapp-name

In this repo I'm using go-chi and Connect RPC, but you can change it with whatever library you want.

🏁 Quick Start

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

Up and Running

  1. Install the required toolchain & SDK.
  2. Find and replace tango, Tango, and MyApplication strings in the source files.
  3. Install the required application dependencies: pnpm install
  4. Create env file for development: cp .env.example .env.local
  5. Geneate application secret key: pnpm generate:key --apply
  6. Geneate Connect RPC proto: pnpm generate:proto
  7. 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.

Available tasks for this project

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)

Test ConnectRPC

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"}'

🐳 Publishing Docker Image

Sign in to container registry:

echo $REGISTRY_TOKEN | docker login REGISTRY_URL --username YOUR_USERNAME --password-stdin

Replace REGISTRY_URL with your container registry, ie: ghcr.io or docker.io

Push docker image:

pnpm docker:push

πŸš€ Deployment

Read the Deployment Guidelines for detailed documentation.

πŸ“š References

πŸͺͺ License

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.

Creator Badge

About

Monolith Go, React, and TanStack starter project with Cobra CLI, Viper, Connect RPC, and go-chi router.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors