# Project Context ## Overview `gemcms` is a command-line CMS for creating and maintaining Gemini capsules with minimal ceremony. It should make common capsule work easy: creating a whole capsule in one command, importing files or directories, creating pages, articles, menus, generated blocks, static builds, and validation. The target user is comfortable with a terminal and wants file-based content that remains editable, versionable, and deployable without a database. ## Stack - Language: Go - Interface: CLI - Storage: files in the capsule project directory - Database: none - Deployment: static generated `public/` directory, publish command planned later ## Architecture - `cmd/gemcms`: executable entrypoint. - `internal/cli`: argument parsing and command dispatch. - `internal/cms`: project creation, content import, content parsing, menu/widget config, build, status, and checks. The CMS core should be callable without the CLI so tests can cover behavior directly. ## Constraints - Use a small TOML-like subset for `capsule.toml`, menus, widgets, and content frontmatter until a dependency is justified. - Do not store secrets in project files. - Generated output must be Gemini-native Gemtext. - Widgets are static build-time blocks, not runtime components. - Directory imports should accept Markdown/Gemtext files and ignore unrelated files. ## Links - Project root: `/home/gabriel1/.codex/projects/gemcms`