This repository is the application skeleton for BlueGO (analogous to laravel/laravel). It ships with the lower-case Laravel-style structure (app/, config/, routes/, resources/, database/, etc.) and is designed to be cloned by Nova (nova new / nova create-project).
app/http- controllers & middleware (use methods likeHomeController{}.Index).app/models- Plasma ORM models.app/providers- service providers (register bindings, logging, etc.).bootstrap/app.go– boots the kernel, registers providers, CORS, database manager, and routes (similar tobootstrap/app.php).routes/web.go– Laravel-style route definitions (e.g.,r.GET("/", home.Index())).config/– typed config helpers (app.go,database.go,http.go,vite.go).database/migrations– register migrations for Plasma;cmd/migrateruns them.resources/– Vite + React frontend with TSX/JSX templates.public/– build output + entry HTML.
# install Nova globally (one-time)
go install github.com/untrustnova/framework/nova@latest
# scaffold + install everything
nova new bloggo
cd bloggo # nova new already copies .env, runs bun install, and runs go mod tidy.
# pick frontend stack during the prompt (tsx default)
# run Go API + Vite dev server concurrently
nova dev
# code generation / migrations
nova make:controller PostController
nova make:model Post
nova make:migration create_posts_table
nova migrate # or nova migrate:fresh
# production build / runtime
nova build # bun build + go build -> bin/server
nova prod # run Go server in APP_ENV=production
nova compose # wrapper for docker compose upnova ui:select tsx|jsx copies templates from resources/templates/<lang> into resources/src and updates public/index.html. The npm scripts simply call those Nova commands (bun run select:tsx).
- Register new routes in
routes/web.gousing the controller methods. - Add middleware via
bootstrap/app.go(httpKernel.Use(...)). - Configure database connections in
.env(DB_CONNECTION,MONGO_URI,SUPABASE_URL,FIREBASE_PROJECT_ID, etc.), and the kernel will open the appropriate driver. - Store custom migrations in
database/migrationsand return them frommigrations.All(). - To add packages (future plan:
nova add restgo), use Nova CLI once RestGo / other vendors are published.
Manual usage: If you clone this repo directly (without Nova), run
cp .env.example .env,bun install, andgo mod tidybefore executingnova dev.
Enjoy building with Go + React the Laravel way!