data

package
v4.0.0-beta.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2026 License: MIT Imports: 1 Imported by: 0

README

Gothic Framework

A web framework made in Go. Fast, responsive, agent friendly. Minimal JavaScript, Tailwind styling, and simple deploys on AWS, GCP, or your own server.

Gothic Framework is a developer-first toolset for the GOTTH stack:
Golang, TailwindCSS, Templ, and HTMX.

The project is configured via gothic.config.go and deploys through the CLI: AWS with OpenTofu (the OpenTofu binary is downloaded automatically on first deploy), GCP (beta, shipped with the CLI), or your own server. Deploys require Go 1.23+ and a running Docker daemon; AWS additionally requires AWS credentials.

See the top-level README for configuration, lifecycle hooks, and deployment details.

Developing with an AI agent (dev MCP)

gothic hot-reload serves an MCP server (Streamable HTTP) at:

http://127.0.0.1:3000/_gothicframework/mcp

It is on by default (--no-mcp disables it) and is reachable only while the dev process runs. The managed browser opens VISIBLE at session start so you can watch the app while working; an agent can flip it to headless with browser_mode. It gives an agent the same loop a maintainer has: drive the managed browser (navigate, act, view, record_start/record_stop), read the request trace and the browser event bus (trace, logs), run the build stages with translated compiler errors (build_templ, build_css, build_wasm, build_go, sync, build_status), and load version-matched framework skills (skillsearch, skillinfo, skill, plus the gothic-skill://{name} resources).

Point your MCP client at that URL while gothic hot-reload is running:

Claude Code

claude mcp add --transport http gothic-dev http://127.0.0.1:3000/_gothicframework/mcp

OpenCode: add to opencode.json (project or ~/.config/opencode/opencode.json):

{
  "mcp": {
    "servers": {
      "gothic-dev": {
        "type": "remote",
        "url": "http://127.0.0.1:3000/_gothicframework/mcp",
        "oauth": false
      }
    }
  }
}

Codex: add to ~/.codex/config.toml:

[mcp_servers.gothic-dev]
url = "http://127.0.0.1:3000/_gothicframework/mcp"

Cursor: add to .cursor/mcp.json:

{
  "mcpServers": {
    "gothic-dev": {
      "url": "http://127.0.0.1:3000/_gothicframework/mcp"
    }
  }
}

Pi: Pi connects to MCP through its extension ecosystem:

pi install npm:pi-mcp-extension
{
  "mcpServers": {
    "gothic-dev": {
      "transport": "streamable-http",
      "url": "http://127.0.0.1:3000/_gothicframework/mcp",
      "lifecycle": "eager"
    }
  }
}

See our docs

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultCLIData = GothicCliData{
	PublicFolderAssets: map[string]embed.FS{
		"public/imageExample/blurred.png":    publicFolder,
		"public/imageExample/original.png":   publicFolder,
		"public/imageKeyboard/blurred.webp":  publicFolder,
		"public/imageKeyboard/original.webp": publicFolder,
		"public/favicon.ico":                 publicFolder,
		"public/styles.css":                  publicFolder,
	},

	TemplateFiles: map[string]embed.FS{},
	InitialFiles: map[string]embed.FS{

		"src/routes/routes_gen.go": srcFolder,

		"src/pages/index.templ":      srcFolder,
		"src/pages/revalidate.templ": srcFolder,
		"src/pages/counter.templ":    srcFolder,
		"src/pages/htmx.templ":       srcFolder,
		"src/pages/images.templ":     srcFolder,
		"src/pages/mcp.templ":        srcFolder,
		"src/pages/deploy.templ":     srcFolder,
		"src/pages/preload.templ":    srcFolder,
		"src/pages/counter_templ.go": srcFolder,

		"src/topics/counter_topic.go": srcFolder,

		"src/layouts/layout.templ": srcFolder,

		"src/css/app.css": srcFolder,

		"src/components/helloWorld.templ":   srcFolder,
		"src/components/lazyLoad.templ":     srcFolder,
		"src/components/imageDemo.templ":    srcFolder,
		"src/components/mcpSetup.templ":     srcFolder,
		"src/components/deployTarget.templ": srcFolder,

		"src/api/helloWorld.go": srcFolder,

		"makefile":           makeFile,
		"tailwind.config.js": tailwindConfig,
		"README.md":          readme,
	},
	InitialDirs: []string{

		"public",
		"src",
		"optimize",

		"public/imageExample",
		"public/imageKeyboard",

		"src/api",
		"src/components",
		"src/css",
		"src/layouts",
		"src/pages",
		"src/routes",
		"src/topics",
	},
	GitIgnore:    gitIgnore,
	Env:          env,
	Readme:       readme,
	MakeFile:     makeFile,
	SrcFolder:    srcFolder,
	PublicFolder: publicFolder,
	ServerFolder: serverFolder,
	CustomTemplateBasedPages: map[string]string{
		"src/pages/revalidate.templ": "Revalidate",
		"src/pages/index.templ":      "Index",
		"src/pages/counter.templ":    "Counter",
		"src/pages/htmx.templ":       "Htmx",
		"src/pages/images.templ":     "Images",
		"src/pages/mcp.templ":        "Mcp",
		"src/pages/deploy.templ":     "Deploy",
		"src/pages/preload.templ":    "Preload",
	},
	CustomTemplateBasedComponents: map[string]string{
		"src/components/helloWorld.templ":   "HelloWorld",
		"src/components/lazyLoad.templ":     "LazyLoad",
		"src/components/imageDemo.templ":    "ImageDemo",
		"src/components/mcpSetup.templ":     "McpSetup",
		"src/components/deployTarget.templ": "DeployTarget",
	},
	CustomTemplateBasedRoutes: map[string]string{
		"src/api/helloWorld.go": "HelloWorld",
	},
}
View Source
var GothicConfigGoTemplate []byte

Functions

This section is empty.

Types

type GothicCliData

type GothicCliData struct {
	TemplateFiles                 map[string]embed.FS
	InitialFiles                  map[string]embed.FS
	PublicFolderAssets            map[string]embed.FS
	InitialDirs                   []string
	CustomTemplateBasedPages      map[string]string
	CustomTemplateBasedComponents map[string]string
	CustomTemplateBasedRoutes     map[string]string
	GitIgnore                     string
	Env                           string
	Readme                        embed.FS
	MakeFile                      embed.FS
	SrcFolder                     embed.FS
	PublicFolder                  embed.FS
	ServerFolder                  embed.FS
	ProjectName                   string
	GoModName                     string
}

Directories

Path Synopsis
src
api
components
templ: version: v0.3.1070
templ: version: v0.3.1070
layouts
templ: version: v0.3.1070
templ: version: v0.3.1070
pages
templ: version: v0.3.1070
templ: version: v0.3.1070

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL