- TypeScript 84.9%
- JavaScript 5.4%
- CSS 4.9%
- HTML 3.5%
- Shell 1.3%
| assets | ||
| bin | ||
| client | ||
| docs | ||
| proto | ||
| server | ||
| .gitignore | ||
| bun.lock | ||
| LICENSE | ||
| package.json | ||
| PROPOSAL.md | ||
| README.md | ||
Constelación
Your notes are the stars; this is the constellation.
An open-source, local-first app that turns a folder of markdown into an interactive, editable mindmap and canvas — the bridge between two open formats:
- Content stays in plain markdown files — any app's, SilverBullet's included
- Structure lives in JSON Canvas
.canvasfiles — any canvas app's, Obsidian's included
Zero proprietary storage. Prose belongs to the corpus app; structure belongs to Constelación.
Status: P1–P4 shipped — the app is in a daily-use freeze, being used before the next phase (a local-LLM prototype). The full design, roadmap, and field-test record live in PROPOSAL.md; docs/user-manual.md is the user guide.
Quickstart
git clone https://forgejo.ijuanes.ovh/ijuanes/constelacion.git
cd constelacion
bun install
bun test # server test suite
bun dev # serve on http://localhost:8123
bun run app # or: server + a chrome-less app window
Point it at your notes with CONSTELACION_CORPUS=/path/to/your/notes (defaults to ./corpus/); set CONSTELACION_VIEW_URL_BASE so note views carry a viewUrl back to your corpus app. bun run install:desktop puts Constelación in your app menu.
Installing on a fresh machine (the tester scenario — a local rsync copy of a remote SilverBullet space, plus a plain-facts section for the AI agents of test users): docs/install-linux.md.
Using it — the headlines
The complete guide is docs/user-manual.md; the shape of it:
- Three lenses — gravity (the default: clusters as communities), flow (a pipeline), mindmap (a radial reading lens; double-click re-roots).
- The map edits structure, never sentences — drag a card and the position persists to a JSON Canvas file; draw a line between cards and a real
[[wikilink]]lands in the source note; press Del on a selected line and the link's line is removed — unless it lives inside a sentence, in which case the map refuses and says so. - Labels are authored in prose —
[[note|why this matters]]renders as the line's label; the corpus stays the single source. - Find things — search that dims to matches, orphan and folder filters, a minimap.
- Backlinks, two ways — hover a card for the arrow lens (who points at it), or read its panel: linked mentions at the prose's end.
- Live coherence — save anywhere (SilverBullet included) and the map re-arranges itself; the header says
· live.
Layout
| Path | What it is |
|---|---|
server/ |
Bun + Hono — corpus reader, graph index, JSON Canvas IO, the versioned /api/v1 contract (OpenAPI served by the app itself) |
client/ |
The view: React Flow (TS) — the map, the reading panel, the lenses. bun run build:client rebuilds client/dist/ |
proto/ |
Experiments — import-to-canvas.ts renders a corpus to .canvas today and seeds the commit pipeline |
docs/ |
The user manual, the Linux install guide, the desktop-launcher spec, the scaffold plan |
bin/ |
constelacion — app / install-desktop / uninstall-desktop |
PROPOSAL.md |
Everything else |
Non-goals (by design)
No editor engine, no plugin system, no sync/collaboration, no Tauri/Electron shell, no proprietary anything. See the proposal for the reasoning — most of it was paid for by its predecessor.
License
MIT — see LICENSE.