gofs v2 — evergreen full-stack Go with Web Components

Build Web Apps That Never Break.

A lightweight Go architecture leveraging native web standards, zero runtime dependencies, and AI-accelerated simplicity. No npm, no heavy JavaScript frameworks, no upgrade treadmill.

The Problem with Modern Dependencies

Managing dependencies has become the single largest tax on engineering velocity. Breaking changes, supply chain vulnerabilities, and framework obsolescence drain teams into spending 80% of their time "standing still."

🛡️

Go 1 Backward Compatibility

Go was built for long-term engineering. The Go 1 compatibility guarantee ensures an app written today compiles and runs unchanged decades later. The server relies on Go's standard library (net/http, html/template, database/sql) with zero external framework lock-in.

🌐

Web Standards Never Break Over Time

"The browser does not break the web." HTML, CSS, and DOM APIs written in 1995 still render today. Web Components (Custom Elements, Shadow DOM, HTML Templates) are W3C browser standards, not transient JavaScript frameworks. They don't deprecate their APIs or force expensive rewrites every two years.

⚡

Zero Runtime Overhead with sqlc

Traditional ORMs bundle massive reflection, breaking changes, and runtime baggage. sqlc checks raw SQL against your schema at compile time and writes standard Go code importing only database/sql. It bundles zero runtime dependencies and is committed to git.

📦

Declarative Shadow DOM (DSD)

Server-rendered web components with native style encapsulation. Using <template shadowrootmode="open">, the Go server outputs encapsulated component trees directly in HTML. Browsers paint instantly with zero layout shift and zero JavaScript required for initial render.

🤖

AI-Accelerated Simplicity

Historically, developers adopted complex frameworks and custom DSLs (like templ or JSX) because hand-writing boilerplate HTML felt tedious. Today, AI writes standard Go templates, HTML, and SQL effortlessly. AI eliminates the excuse for fragile abstractions.

🔒

Immunity from Supply Chain Attacks

No package.json, no npm, and no node_modules. Web components are loaded via pinned CDN URLs or vendored directly in the Go binary with content-hashed checksums. Zero unvetted third-party scripts execute in your production environment.

Clean Separation, Zero Bloat

The Go server owns the document and data boundaries. Web components own local interactivity. Nothing owns both.

🌐 1. Client (Web Platform)
Multi-Page Architecture Native browser navigation, bookmarks, and back/forward buttons work without any client router.
Web Components & Islands Native Custom Elements that progressively enhance server HTML. Loaded on-demand with zero bundlers.
Modern Baseline CSS Native CSS nesting, container queries, custom properties, and :has(). Zero PostCSS or build chains.
⚙️ 2. Server (Go Standard Library)
net/http Routing Standard Go enhanced router in a single clean routes.go file. No third-party router needed.
html/template Rendering Context-aware auto-escaping protecting against XSS vulnerabilities natively on the server.
//go:embed Static Assets Stylesheets and vendored libraries are embedded into the Go binary with content-hashed URLs.
🗄️ 3. Database (sqlc + PostgreSQL)
Plain SQL Queries Write standard SQL with :one, :many, or :exec annotations. No proprietary ORM query languages.
Type-Safe Go Generation sqlc generates strongly-typed Go functions validated against your actual database migrations.
Zero Runtime Overhead Generated code uses only standard library database/sql. Zero external runtime dependencies.

Get Started in Seconds

Install the CLI, initialize your project, and start building with standard Go and Web Components.

1. Install the CLI

Go 1.24+

Download and compile the gofs CLI binary to your Go bin path.

go install github.com/gofs-cli/gofs@latest

2. Initialize your project

Standard Layout

Generate an evergreen project structure with Go standard library and web components.

gofs init github.com/myorg/myapp

3. Run with Make

Zero npm

Start the development server with live reload and automatic sqlc validation.

cd myapp && make