# HyperChi > HyperChi is an htmx framework for Go. It bundles chi routing, context handlers, Go templates with more than 100 filters, htmx request and response helpers, SSE and WebSocket hubs, and a pure-Go SQLite data layer. Every route is a `func(c *hyperchi.Context) error` that answers with `c.View`, `c.Fragment`, `c.JSON`, or another response method, and returns errors such as `hyperchi.NotFound`. Install the library with `go get github.com/regiellis/hyperchi` and the CLI with `go install github.com/regiellis/hyperchi/cmd/hyperchi@latest`. Each link below is the Markdown source of one documentation page, in reading order. ## Docs - [Getting started](https://hyperchi.regiellis.com/docs/start.md): An idea, a Go handler, and a page in the browser. Start with the smallest useful HyperChi application. - [Build a live guestbook](https://hyperchi.regiellis.com/docs/tutorial.md): Build one small app end to end. A page, a form that validates on the server, htmx swaps, and new entries that appear in every open browser. - [Routing & responses](https://hyperchi.regiellis.com/docs/routing.md): A URL is a useful interface. Give it a Go handler, then decide whether the browser needs a whole page or a small fragment. - [Templates](https://hyperchi.regiellis.com/docs/templates.md): HTML stays HTML. Go templates add data, reusable pieces, and the composition you need as your application grows. - [Passing data](https://hyperchi.regiellis.com/docs/data.md): Make the request inputs, view model, and response format explicit. The renderer is one step in a data flow you control. - [Forms and validation](https://hyperchi.regiellis.com/docs/forms.md): Bind a request into a struct, check it with tags or a schema, and answer a failed submit with a fragment that keeps what the visitor typed. Covers CSRF, uploads, and multi-step forms. - [Errors](https://hyperchi.regiellis.com/docs/errors.md): Return an error from a handler and HyperChi answers with the right status, in the right format for whoever asked. One pipeline handles handler errors, router misses, middleware refusals, and panics. - [Sessions and cookies](https://hyperchi.regiellis.com/docs/sessions.md): Keep state between requests with KV-backed sessions, signed cookies, and flash messages, and set the secret key that signs them. - [Static files and assets](https://hyperchi.regiellis.com/docs/assets.md): Serve CSS, JavaScript, and images with content-hashed URLs and long caching, compress responses, embed everything in one binary, and run Vite beside Go in development. - [Markdown content](https://hyperchi.regiellis.com/docs/content.md): Keep posts, guides, and pages as Markdown files. HyperChi loads each folder into a collection you can check, query, and serve. - [Realtime](https://hyperchi.regiellis.com/docs/realtime.md): Send new HTML when something changes. Server-sent events and WebSocket rooms let your Go application keep browsers up to date. - [Directives](https://hyperchi.regiellis.com/docs/directives.md): Some interactions belong in the browser. HyperChi’s `hc-*` attributes handle small pieces of local state alongside server-rendered HTML. - [Configuration](https://hyperchi.regiellis.com/docs/configuration.md): Build an app from defaults, the environment, or a config struct, and learn what changes between development and production. - [Security](https://hyperchi.regiellis.com/docs/security.md): What HyperChi protects by default, what you switch on yourself, and the few places where input must never be trusted: client IPs, WebSockets, HTML, uploads, and secrets. - [Deploying](https://hyperchi.regiellis.com/docs/deploying.md): Ship a HyperChi app as one static binary in a small container, with production settings, health checks, graceful shutdown, and a reverse proxy that is declared instead of trusted by accident. - [Testing](https://hyperchi.regiellis.com/docs/testing.md): Test handlers against the real app with httptest, in the same shapes a browser, htmx, and an API client use, with temporary files and a throwaway database. - [Integrations](https://hyperchi.regiellis.com/docs/integrations.md): Bring your template engine and choose how data reaches the browser. Three complete marketing pages show the same HTTP boundary with different rendering tools. - [Integration manager](https://hyperchi.regiellis.com/docs/integration-manager.md): Register optional capabilities once. Let HyperChi manage startup, rendering, readiness checks, and shutdown while each integration keeps its own typed API. - [templ + htmx](https://hyperchi.regiellis.com/docs/templ.md): Use Go types for your page inputs and return HTML for interactions. The Form & Field studio page connects compiled templ components to HyperChi routes. - [Jet + htmx](https://hyperchi.regiellis.com/docs/jet.md): Keep templates in their own files and render them with a request-local view model. Relay demonstrates Jet pages and htmx pricing updates. - [Alpine.js + JSON](https://hyperchi.regiellis.com/docs/alpine.md): Keep the page server-rendered and give one interactive region a JSON contract. Outpost uses Alpine for an outdoor trip finder. - [Handlers & helpers](https://hyperchi.regiellis.com/docs/helpers.md): Build with HyperChi’s handler, rendering, response, and collection APIs. Keep standard HTTP access available for the parts that actually need it. - [Template filters](https://hyperchi.regiellis.com/docs/filters.md): Format text, prices, dates, and collections directly in your Go templates. Learn the calling conventions first, then use the reference below to find every registered filter. - [Example apps](https://hyperchi.regiellis.com/docs/apps.md): Four complete applications built the way HyperChi is meant to be used: a multiplayer game, a studio website, an internal mailing tool, and a homelab search engine. ## Optional - [All documentation in one file](https://hyperchi.regiellis.com/llms-full.txt): every page above, concatenated in reading order. - [Go API reference](https://pkg.go.dev/github.com/regiellis/hyperchi/hyperchi): generated reference for every exported identifier. - [Source code](https://github.com/regiellis/hyperchi): the framework, the CLI, the optional modules, and this site.