Skip to content

untrustnova/bluego

Repository files navigation

BlueGO Starter

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).

Structure at a Glance

  • app/http - controllers & middleware (use methods like HomeController{}.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 to bootstrap/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/migrate runs them.
  • resources/ – Vite + React frontend with TSX/JSX templates.
  • public/ – build output + entry HTML.

Nova-powered Workflow

# 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 up

Frontend Switching

nova 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).

Customizing

  • Register new routes in routes/web.go using 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/migrations and return them from migrations.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, and go mod tidy before executing nova dev.

Enjoy building with Go + React the Laravel way!

About

BlueGo is an Framework made with Golang and Vite for simplicity like Laravel and Vite.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published