Overview
What’s in the box?
This project uses a plethora of valuable open-source tools, libaries, and frameworks. Many of them are “free as in beer” as well as “free as in speech”.
🧰 Running things
- pkgx is without a doubt the best package and command runner out there.
- Taskfile is a superior version of Makefile.
Combine both for an optimal local DevEx (seamless, portable, invisible).
👽 APIs
- GraphQL is a pretty widely recognized standard. Great for aggregating data and lots of frontend support.
- GraphQL is hard to build in the backend, and Protocol Buffers are the undisputed champion of schema modeling.
- If you’re using Protobufs, choosing not to use Buf isn’t really a choice.
- To actually build an API from your Protobufs, ConnectRPC is the way to go.
- The problem is that ConnectRPC isn’t GraphQL. To bridge that gap, use Vanguard (for transcoding) and Tailcall (for API composition).
🗃️ Data
- Atlas for declarative database migrations — because no one likes having to look at hundreds of migration files or having to guess what the schema currently looks like.
- Postgres — need I say more?
- SQLBoiler as a great Go ORM.
🔭 Observability
- OpenTelemetry (OTel) is the industry standard.
- Jaeger lets you visualize distributed traces.
- HyperDX is another open-source platform I’m keen to try.
🎨 Frontend
- Bun — an all-in-one JS runtime and toolkit
- NextJS as the React framework
shadcn/ui
for beautiful Radix/Tailwind components.- Astro and Starlight for docs
🤷 Misc
- D2 for declarative diagramming
- Docker
uber-go/fx
for dependency injection- Golang