Verstak Core Platform + UI Shell — plugin runtime, capability registry, vault API, event bus, sync client
 
 
 
 
 
Go to file
mirivlad 581e6b27d8 docs: document public alpha setup 2026-07-13 03:57:58 +08:00
cmd/smoke-platform feat: milestone 5b — frontend bundle host + VerstakPluginAPI stub 2026-06-17 17:39:50 +08:00
docs feat: add workspace templates and tab visibility 2026-07-10 21:32:48 +08:00
frontend feat: show plugin diagnostics only in debug mode 2026-07-12 21:18:09 +08:00
internal docs: document public alpha setup 2026-07-13 03:57:58 +08:00
patches feat: intercept GDK button 8/9 for mouse back/forward navigation 2026-06-21 13:49:13 +08:00
scripts build: guard desktop release prerequisites 2026-07-12 21:38:24 +08:00
.gitignore build: guard desktop release prerequisites 2026-07-12 21:38:24 +08:00
AGENTS.md Implement milestone 6b workbench routing skeleton 2026-06-19 07:51:57 +08:00
LICENSE docs: prepare desktop alpha release 2026-07-12 21:21:45 +08:00
README.md docs: document public alpha setup 2026-07-13 03:57:58 +08:00
go.mod feat: add canonical hostname normalization 2026-07-12 17:16:53 +08:00
go.sum feat: add scripts/build.sh, test.sh, check.sh + gofmt + go mod tidy 2026-06-16 12:11:55 +08:00
main.go fix: resolve plugin lifecycle dependencies deterministically 2026-07-10 04:03:08 +08:00
wails.json feat: plugin discovery, capability/contribution/permission registries, Plugin Manager UI 2026-06-16 12:00:43 +08:00

README.md

Verstak

Verstak is a local-first workspace for files, notes, browser captures, activity and work-journal entries. This repository is the desktop application: the Go/Wails host and UI shell that loads plugins from a plugins/ directory next to its executable.

Alpha software. Use a disposable vault while evaluating it. APIs, storage formats and packaging can change before the first stable release.

Components

The public alpha is split into small repositories. Keep their main branches in the same release line when building from source.

Component Repository What it is for
Desktop mirivlad/verstak This application: vault UI, local host and plugin runtime.
Official plugins mirivlad/verstak-official-plugins Files, Notes, Browser Inbox, Activity, Journal, Sync, Todo and other first-party plugins.
Browser extension mirivlad/verstak-browser-extension Manual browser captures and opt-in domain-time activity.
Sync server mirivlad/verstak-sync-server Optional self-hosted synchronization between devices.
Plugin SDK mirivlad/verstak-sdk TypeScript API, JSON schemas and contract tests for plugin authors.
Architecture documentation mirivlad/verstak-docs Product, platform and plugin-system design documents.

No server account or browser extension is needed for a local desktop vault.

Build the desktop and official plugins

The current release scripts target Linux. Install Go 1.24+, Node.js 20+ with npm, Python 3, the Wails v2 build prerequisites, and your distribution's WebKitGTK development package.

Clone the repositories as siblings. The directory names below are intentional: the desktop helper finds the official-plugin checkout at ../verstak-official-plugins.

verstak-workspace/
├── verstak/
├── verstak-sdk/
├── verstak-official-plugins/
└── verstak-browser-extension/   # optional for browser integration
git clone https://github.com/mirivlad/verstak.git verstak
git clone https://github.com/mirivlad/verstak-sdk.git verstak-sdk
git clone https://github.com/mirivlad/verstak-official-plugins.git verstak-official-plugins
git clone https://github.com/mirivlad/verstak-browser-extension.git verstak-browser-extension

cd verstak-sdk && ./scripts/build.sh
cd ../verstak-official-plugins && ./scripts/build.sh
cd ../verstak
./scripts/install-dev-plugins.sh
./scripts/build.sh

install-dev-plugins.sh copies the packages from ../verstak-official-plugins/dist/ into this repository's plugins/ directory. build.sh then copies them to build/bin/plugins/, beside the desktop executable:

./build/bin/verstak-desktop

For a manually assembled installation, place each unpacked plugin directory directly in plugins/ beside verstak-desktop; for example, plugins/browser-inbox/plugin.json. Do not put the release archive itself in that directory. The desktop release archive already includes its matching plugins/ directory.

Start with --debug to show internal plugin-provider identifiers and write diagnostic logs:

./build/bin/verstak-desktop --debug

First local vault

  1. Launch the desktop application and choose or create a writable vault folder. Verstak stores its local metadata in that vault; do not point it at a read-only directory.
  2. Create a Дело (workspace) in the Files plugin before assigning captures or activity to it.
  3. Open Notes, Files, Activity and Journal as needed. Activity candidates are only suggestions: a Journal entry and a new Дело are always created by the user.

Browser extension

The extension is optional. Build it locally with npm ci && npm test && npm run build in verstak-browser-extension/, then load dist/chromium as an unpacked Chromium extension or dist/firefox temporarily in Firefox. A signed Firefox XPI is available from the extension's GitHub Releases.

To connect it to the desktop application:

  1. Ensure the browser-inbox plugin is installed and open its settings in Verstak.
  2. Copy the displayed Receiver URL and Pairing Token.
  3. Paste both values into the extension's settings and save.
  4. Use a manual Send Page, selection, link or file action to create a Browser Inbox capture.

Passive domain activity is disabled by default. When the user explicitly turns it on, the extension sends only bounded time totals by normalized domain. It does not send URLs, page titles, page contents, keystrokes, navigation history or inactive-tab time. The extension settings provide a domain exclusion list.

Optional sync server

The sync server is self-hosted and is not required for local use. Build and start a development instance from a sibling checkout:

git clone https://github.com/mirivlad/verstak-sync-server.git verstak-sync-server
cd verstak-sync-server
./scripts/build.sh
./build/bin/verstak-sync-server --port 47732 --data ./server-data \
  --admin-user admin --admin-pass 'choose-a-strong-password'

For a second device or a production host, follow the deployment, HTTPS and backup guidance in the sync server README. In the desktop application, open the Sync plugin, enter the server URL and user credentials, test the connection, then select Connect. Each vault is paired separately.

Release artifacts

Maintainers can produce a self-contained Linux desktop archive after the SDK and official plugins have been built:

cd verstak
./scripts/release.sh v0.1.0-alpha.1

It writes release/verstak-desktop-linux-amd64-<version>.tar.gz and a matching SHA256SUMS file. Unpack the archive and run the included executable; its matching plugins are already in the archive. The browser extension, SDK, official plugins and sync server have their own build or release instructions in their repositories.

License

Copyright © 2026 Verstak contributors. Licensed under GNU AGPLv3 or later.