From 37f156c30e2a2b01c840d39f0dd2bdbf811732d6 Mon Sep 17 00:00:00 2001 From: Gab Virebent Date: Tue, 7 Jul 2026 16:24:28 +0200 Subject: Initial commit --- PROJECT_CONTEXT.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 PROJECT_CONTEXT.md (limited to 'PROJECT_CONTEXT.md') diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md new file mode 100644 index 0000000..603dfa7 --- /dev/null +++ b/PROJECT_CONTEXT.md @@ -0,0 +1,35 @@ +# 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` -- cgit v1.2.3