Lapis Notes monorepo for the application shell, reusable framework packages, an app-owned plugin profile, Deno desktop host, web host, spec-first governance, and Storybook acceptance.
The reusable framework packages are independently versioned and released from this monorepo through normal npm semver ranges. Changesets and the release workflow prepare, publish, verify, and document subsequent releases.
Lapis Notes is an application assembled from the framework packages and an app-owned static plugin profile. Its default profile is exactly Source Editor, Markdown, File Explorer, and Search. These plugins are enabled by default and can be disabled by the user; the other first-party plugins are optional rather than silently bundled into every Lapis-based application.
File Explorer remains in this repository as a reusable framework plugin. The
other independently versioned first-party plugins are released from
lapismd/lapis-plugins. Application
authors consume their npm packages through semver ranges, while end users can
install signed .lapis-plugin archives from the
Lapis plugin registry or through the in-app plugin
manager.
Install dependencies from the repository root:
pnpm installRequires Node 22+, pnpm 10, and mdBook
for pnpm spec:build. Desktop work also requires Deno 2.9.5. Published
@lapismd/* and @lapis-notes/* dependencies resolve from npm semver ranges.
Keep adjacent source checkouts only when actively fixing those packages; after
release, update this repository to the published registry version.
| Command | Purpose |
|---|---|
pnpm dev / pnpm storybook |
Storybook on port 7010 (one supervisor per checkout/port) |
pnpm storybook:stop |
Stop this checkout's Storybook supervisor and listeners |
pnpm storybook:restart |
Replace the owner and start a fresh Storybook |
pnpm restart:web |
Free Vite port 4174, then start dev:web |
pnpm build |
Turbo build packages |
pnpm check |
Turbo package checks |
pnpm test |
Turbo tests |
pnpm spec:first |
Spec-first gate |
pnpm spec:check |
Validate specification, build book, and run gate |
pnpm spec:search -- "<query or LN-ID>" |
Refresh and search the canonical specification |
pnpm spec:search -- --semantic "<concept>" |
Refresh embeddings and run semantic specification search |
pnpm spec:index [-- --semantic] |
Prewarm the local specification index |
pnpm packages:check |
Validate public package boundaries and release configuration |
pnpm packages:pack |
Build and pack reviewed npm release tarballs |
pnpm release:plan |
Compare package versions with the npm registry |
- Agent workflow:
AGENTS.md - Release process:
RELEASING.md - Migration tracker:
MIGRATION.md - Canonical requirements:
spec/src/ - Supporting records:
spec/records/ - Completed plans:
spec/archive/