Weft

Local-first publishing engine

Capture the raw stream.
Weave it into a story.

Weft turns every note, photo, voice memo and clip into one timestamped atom on a single fluid timeline. Group them however the story wants — an article today, a book chapter next month. No server. No database. No bill. Nothing to learn.

Made to be usable at any age — no account, no ads, nothing tracked.

  • SvelteKit · Svelte 5
  • Ships as static files
  • Encrypted on device
  • MIT licensed

One timeline. Many shapes.

  • article
  • chapter
  • vlog
  • visual poem
  • field notes

What are you making?

Pick one — it tailors the walkthrough. You can change your mind any time.

Or just watch the walkthrough →

The whole path, in five steps

The app walks you through exactly this — with a checklist that ticks itself.

  1. Step 1 · ~30 sec

    Capture an atom

    A line of text, a snap, a voice memo. One sentence is a whole post — no title, no folder.

    Open the app →
  2. Step 2 · ongoing

    Let a few pile up

    There is no schedule and nothing to keep up with. Bits land on the Flow in order.

    See the Flow →
  3. Step 3 · ~2 min

    Compile a log

    Pick a run of atoms that belong together and choose a shape — article, chapter, vlog or poem.

    Try compiling →
  4. Step 4 · ~1 min

    Seal what is private

    One passphrase encrypts private atoms on your device before they ever touch disk.

    Open the Vault →
  5. Step 5 · —

    Share the rest

    Your public atoms become a real web page with a link you can send anyone — free to keep online.

    How sharing works →
See how it works, with diagrams →

Built for a chaotic stream of daily notes

Spatial Swivel

Sections are faces of one 3-D stage. Moving between them rotates the stage — hardware-accelerated, never a page-snap.

Contextual Aura

A client-side parser reads the tone of your words and the colour of your media, then eases a harmonised palette into CSS variables as you scroll.

Chrono-Flow

Every note, photo, voice memo, clip and table is one timestamped atom. Group a run of them and a story compiles itself.

Local encryption

Mark an atom private and it is AES-GCM sealed before it touches disk. The key comes from your passphrase or a hardware passkey and never leaves memory.

Tiny footprint

Every atom, public or private, is compressed before it touches disk — Settings shows your real usage. A whole habit of daily notes is typically a few MB, one passphrase away wherever you bring it.

Discovery seeding

Sub-millisecond keyword extraction indexes each post for high-relevance hashtags the moment you publish — no model download, no network.

Tables & quick analysis

Drop in a spreadsheet atom with Σ / average / min / max / count footers, design presets, coloured columns, and one-tap CSV or Markdown export.

Zero-cost by design

The whole app compiles to hashed HTML, CSS and JS that Cloudflare Pages serves from its edge cache for free. Storage is your browser's IndexedDB — compressed as it lands, so it stays small. Privacy is the Web Crypto API. There is no backend to run, breach or pay for, and nothing to worry about running out of.