Skip to content

100monkeys-ai/nuclear-notes

Repository files navigation

Nuclear Notes

A multi-user web Zettelkasten / Atomic Notes application with semantic embedding graph, document ingestion, hybrid search, and force-directed knowledge visualization.

Status: in active development (v1).

Concept

  • Pages are long-form documents.
  • Atoms are small, discrete, reusable nuclei of knowledge.
  • The Go Nuclear button extracts highlighted text from a page into a new Atom and replaces the original text with a transclusion of that Atom.
  • Editing an Atom updates every Page that embeds it, silently.
  • An automatic embedding graph surfaces semantically related notes alongside explicit cross-links.
  • Pages and atoms can be public (anonymously readable) or private.

Stack

  • Web: TanStack Start (Node 22) + postgres.js + shadcn/ui + Tailwind v4 + TipTap
  • Database: Postgres 16 + pgvector
  • Embedder sidecar: Rust (axum + fastembed-rs, CPU)
  • Document ingestion sidecar: MinerU (Python + FastAPI, CPU)
  • Auth: Magic-link via Postmark
  • Container runtime: Podman / OCI (Kubernetes-ready)

Quick start

# 1. Configure environment
cp .env.example .env
# edit .env — at minimum set POSTMARK_TOKEN if you want real email

# 2. Bring up sidecars + run migrations
make sidecars-up

# 3. Start the dev server (app + worker)
cd apps/web && npm install && npm run dev

Or all-in-one:

make dev

For UI-only contributors who don't want the heavy embedder/MinerU images:

make lite

Architecture

See docs/architecture/ for the high-level overview and per-context deep dives, and docs/adrs/ for every significant decision recorded as an ADR.

License

AGPL-3.0 — see LICENSE.

About

A multi-user web Zettelkasten / Atomic Notes application with semantic embedding graph, document ingestion, hybrid search, and force-directed knowledge visualization.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors