The kickstarter repository for full-stack Go apps using your grandfather's technology.
Quick heads-up, this is still work in progress so expect lots of changes to come.
The aim of Grafto is to be starter template that provides most of what you'll need to get a new web project off the ground, taking inspiration from Laravel equivalent. There are some opinionated choices made (like no ORM, old fashioned HTML rendered on the server) but tries to be as idiomatic as possible.
The target audience for the starter is mostly going to be solo-devs building side-projects or trying to bootstrap a new business.
It's important to note that there currently exists a much more feature complete starter template, called pagado. This is not an attempt at replacing that, but rather offer another approach and view to full-stack web development in Go.
- Refactor InternalError controller
- Update InternalError path's in controllers/user.go
- Add support for flash messages
Make sure you've the following dependencies installed:
- Go v1.21+
- PostgreSQL v14+
- Goose
- AIR
- Justfile
- Docker | optional
- sqlc 1.22.0
- templ
Next, run the cmd below to have your .env
files ready:
cp .env.example .env
You'll need to setup a database before you can run the migrations, do that, and fill out the variable in the .env
file
named "DATABASE_URL".
With that in-place, simply run:
just migrations-up
and the database will be ready. Lastly, to run the application, open two terminals, run:
just run
in one, and
just watch-css
in another.
Visit http://0.0.0.0:8000
to see the start page.