summaryrefslogtreecommitdiffstats
path: root/PROJECT_CONTEXT.md
diff options
context:
space:
mode:
authorGab Virebent <gabriel1@virebent.art>2026-07-07 16:24:28 +0200
committerGab Virebent <gabriel1@virebent.art>2026-07-07 16:24:28 +0200
commit37f156c30e2a2b01c840d39f0dd2bdbf811732d6 (patch)
treee2ce84dc7f88ce0eb312899448f91b7bb93ca8a3 /PROJECT_CONTEXT.md
downloadgemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.tar.gz
gemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.tar.xz
gemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.zip
Initial commitHEADmain
Diffstat (limited to 'PROJECT_CONTEXT.md')
-rw-r--r--PROJECT_CONTEXT.md35
1 files changed, 35 insertions, 0 deletions
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`