summaryrefslogtreecommitdiffstats
path: root/docs/decisions.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 /docs/decisions.md
downloadgemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.tar.gz
gemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.tar.xz
gemcms-37f156c30e2a2b01c840d39f0dd2bdbf811732d6.zip
Initial commitHEADmain
Diffstat (limited to 'docs/decisions.md')
-rw-r--r--docs/decisions.md70
1 files changed, 70 insertions, 0 deletions
diff --git a/docs/decisions.md b/docs/decisions.md
new file mode 100644
index 0000000..54a759b
--- /dev/null
+++ b/docs/decisions.md
@@ -0,0 +1,70 @@
+# Decisions
+
+## 2026-07-07 - Build A Go CLI First
+
+Decision:
+
+Implement `gemcms` first as a Go command-line tool.
+
+Rationale:
+
+- A single static binary fits the self-hosted Gemini audience.
+- The core workflows are filesystem and text processing tasks.
+- Avoiding a web admin panel keeps the first version simple and robust.
+
+Consequences:
+
+- The first user experience is terminal-first.
+- A TUI or local web editor can be added later without changing the capsule format.
+
+## 2026-07-07 - Keep Capsules File-Based
+
+Decision:
+
+Store pages, articles, menus, widgets, and config as project files. Do not use a database.
+
+Rationale:
+
+- Gemini capsules are naturally static and text-first.
+- File storage keeps content easy to edit, back up, diff, and publish.
+- A database would add operational cost before it solves a real problem.
+
+Consequences:
+
+- Build-time validation and generation are important.
+- Future features should preserve direct file editability.
+
+## 2026-07-07 - Treat Widgets As Build-Time Blocks
+
+Decision:
+
+Widgets are static Gemtext blocks expanded during `gemcms build`.
+
+Rationale:
+
+- Gemini has no browser-side runtime.
+- Static blocks keep output simple and portable.
+- Menus, recent articles, indexes, and similar blocks can be generated reliably.
+
+Consequences:
+
+- Widget behavior is deterministic at build time.
+- Interactive runtime widgets are out of scope for the core CMS.
+
+## 2026-07-07 - Import Existing Content As A First-Class Workflow
+
+Decision:
+
+Support importing one file or a directory of Markdown/Gemtext files through `gemcms add`, and support `gemcms create capsule` for creating a capsule, importing content, and optionally building output in one command.
+
+Rationale:
+
+- Many users will already have notes or articles as `.md` or `.gmi` files.
+- A CMS for Gemini should reduce setup friction rather than requiring manual folder work.
+- Keeping imports deterministic and file-based preserves direct editability.
+
+Consequences:
+
+- Import behavior must infer metadata from frontmatter, headings, and filenames.
+- Directory imports should skip unrelated files rather than fail on them.
+- Health/status commands become important for confidence after bulk imports.