[ JavaScript ] 6 of 6
t-notes
Local-first notes and kanban in the browser - no cloud, no framework, no build step.
python3 -m http.server 8000
[ 01 ] WHAT IT IS
In plain words
t-notes is a single-user notes app and a kanban board in one, with all data kept in your own browser - nothing is sent to a server, and there is no account or sync service.
A note can also be pinned to a board list, and then the same item shows up as a card in both views, so edits stay in sync. Cards carry checklists with progress, due dates, comments, labels, tags and image attachments.
It is for people who want Trello's core without the cloud: run it from static files on any OS with a browser, or on Windows as a small Go exe or a Tauri desktop app.
An optional AI assistant (bring your own key) can summarize, draft checklists and suggest ideas; the key stays local and is never exported.
[ 02 ] ARCHITECTURE
How it is put together
- web/ is the entire UI with no framework and no build step: index.html, styles.css and app.js, plus logo.svg - styles.css uses content-visibility: auto for list rendering and defines the light/dark/midnight themes.
- All state lives in browser localStorage under the key t-notes-v1 (const K at the top of web/app.js) and is written on every mutation; notes pinned to a board list render as cards, so the board and Notes view are one system.
- main.go embeds web/ with //go:embed and serves it from a local net/http server, opening the default browser; the same binary self-installs when its filename contains 'setup' (or --install) and removes itself with --uninstall.
- src-tauri/ is the Tauri v2 desktop shell: src/main.rs exposes one Rust command, match_notes (batch substring match for large-corpus search, with a JS fallback), and tauri.conf.json sets frontendDist to ../web and bundles an NSIS installer with the tauri-plugin-autostart plugin for the launch-on-login toggle.
- e2e/t-notes.spec.js is the Playwright suite, run against system Chromium with a mocked AI endpoint; build-windows.sh cross-compiles the Windows exe and setup exe from Linux with GOOS=windows go build.
- Two host paths share the same web/ frontend: the Go exe (a browser launcher, with an /api/startup fallback for the ⏻ toggle) and the Tauri app (own window, real installer).
[ 03 ] INSTALL
Set it up
cd t-notes/web
python3 -m http.server 8000 # open http://localhost:8000 (Ctrl-C to stop)
cd .. # the two optional commands below run from the repo root
sh build-windows.sh # optional: dist/t-notes.exe + dist/t-notes-setup.exe from Linux (needs Go)
npm install && npx tauri dev # optional: Tauri desktop app on Linux (needs Rust)
[ 04 ] QUICKSTART
See it work
- Run python3 -m http.server 8000 inside t-notes/web and open http://localhost:8000 - the Notes and board UI loads with no build step.
- Click + New note, type a title first, and save: the note appears in the Notes list and a toast confirms every action.
- Create a column with the New list… box, then add a card and drag it between columns to see the board update.
- Pin a note to a board list so it renders as a card too, then click it to open the detail dialog (body, checklist + progress, list picker, image attachments).
- Toggle the theme button to cycle light / dark / midnight - the choice persists across reloads.
- Use ⤓ to export all data as JSON and ⤒ to restore it, or the ? button for the in-app guide.
[ 05 ] NUMBERS
What the repo states
Windows exe size
REPO STATES9.7 MiB
Notes list render window
REPO STATES50 items
e2e tests (t-notes.spec.js)
REPO STATES15
[ 06 ] TRADEOFFS
What it does not do
- The Windows installer is unsigned: SmartScreen shows an "Unknown publisher" warning and the user must click More info → Run anyway (signing needs a paid cert, skipped for now).
- There is no auto-updater yet - new versions are manual downloads from GitHub Releases.
- The first install needs internet once for the WebView2 bootstrapper (nearly all Windows 10/11 PCs already have WebView2).
- It is single-user and local-only: data lives in browser localStorage, so there is no sync, no sharing and no multi-device story.
[ 07 ] SOURCE
Read the code
The full implementation, tests and documentation live in the repository.