Go to file
mirivlad 39271fc28f steps 4-6 + doc overhaul: files, notes, GUI, plugins docs
DOCUMENTATION (shift from personal to universal product):
- README.md: rewritten with 'one product, different doors' framing,
  universal entities table, audience segments
- 01_Product_Spec.md: removed personal references (sshkeeper, Godot,
  DokuWiki, servers), added audience segments (freelancer, repairmaster,
  developer, maker, consultant), universal scenarios
- 02_Architecture.md: added 'Plugins (Extensibility)' section with
  calendar/kanban/importer/template examples
- 03_Data_Model_Storage.md: added section 6 on plugin extensibility
  (node_meta, type registry, SQL migrations per plugin)
- 09_Extensibility.md (NEW): full plugin architecture — Lua runtime,
  plugin.json, hooks, sandbox, templates, registry
- PLAN.md: added step 16 (plugins), updated status table
- 00_README.md: rewritten product index with plugin principle

CODE — STEP 4 (Files):
- migration 002: files table (id, node_id, filename, path,
  storage_mode, size, sha256, mime, ...)
- FileService: AddExternal, CopyIntoVault, Get, ListByNode,
  MarkMissing, DeleteToTrash, Open (xdg-open)
- file_test.go: 5 tests (external, copy-vault, list-node,
  delete-trash, MIME guess)

CODE — STEP 5 (Notes):
- migration 003: notes table (node_id PK, file_id, format,
  original_format, encrypted)
- NoteService: Create (node+file+link), Read, Save (with backup to
  .verstak/history/), Delete, Load
- note_test.go: 3 tests (create-read, save-backup, delete)

CODE — STEP 6 (GUI):
- cmd/verstak-gui/main.go: launches GUI server, opens browser
- internal/gui/server.go: HTTP API for nodes/notes/files/search
- internal/gui/index.html.go: full inline SPA frontend (dark theme,
  sidebar tree, cards grid, note editor, search, create modals)
- Navigation: sidebar tree → click node → detail view with
  children + files cards → tab switch (overview/notes/files)
  → create node/note via modal → edit note in fullscreen
  textarea → save (with history backup)

Acceptance: go build ./... pass, go build -tags gui ./cmd/verstak-gui pass,
  go test ./... pass (20+ tests). GUI serves on random port, opens browser.
  API returns JSON for all resource types.
2026-05-30 20:35:04 +08:00
cmd steps 4-6 + doc overhaul: files, notes, GUI, plugins docs 2026-05-30 20:35:04 +08:00
docs steps 4-6 + doc overhaul: files, notes, GUI, plugins docs 2026-05-30 20:35:04 +08:00
internal steps 4-6 + doc overhaul: files, notes, GUI, plugins docs 2026-05-30 20:35:04 +08:00
migrations steps 4-6 + doc overhaul: files, notes, GUI, plugins docs 2026-05-30 20:35:04 +08:00
.gitignore step 1: skeleton - go module, CLI stub with --version, structure 2026-05-30 18:42:19 +08:00
README.md steps 4-6 + doc overhaul: files, notes, GUI, plugins docs 2026-05-30 20:35:04 +08:00
go.mod step 2: init command + SQLite storage + migrations + config 2026-05-30 18:58:47 +08:00
go.sum step 2: init command + SQLite storage + migrations + config 2026-05-30 18:58:47 +08:00

README.md

Верстак

Верстак — локальная программа, где по каждому клиенту или проекту лежат все его файлы, заметки, документы, ссылки, действия и история работ.

Это не замечатель, не CRM, не таск-трекер. Нишевая аудитория — люди, у которых работа организована через дела, а не через задачи:

дело → файлы → заметки → документы → действия → история → вернуться через месяц

Для кого

Один продукт — разные входные двери:

Кто Как видит Верстак
Фрилансер / дизайнер клиентские проекты, файлы, правки, история работ
Мастер по ПК клиенты, устройства, серийники, фото, журнал
Разработчик локальный workspace: заметки, репы, команды, файлы
Писатель / мейкер мастерская проектов: материалы, заметки, версии, история

Универсальные сущности

Базовая модель предельно проста — плагины добавляют функционал:

  • Дело — контекст для всего остального
  • Заметка — Markdown внутри vault
  • Файл / Документ — любой файл, привязанный к делу
  • Действие — кнопка запуска: URL, файл, папка, команда
  • Журнал — записи о затраченном времени

Плагины (шаблоны дел, календарь, канбан, импортёры) расширяют эти сущности без перекомпиляции программы.

Стек

Go + SQLite + Lua (плагины) + Wails + Bubble Tea.

Документация