Skip to content

staticeys/Throwdown

Repository files navigation

Throwdown

Open live app here

A snappy canvas / whiteboard application for throwing down notes, links, and ideas. Built with Svelte 5 and SvelteKit. Runs client side, so your data stays private. The data is stored within your browser's local storage and can be exported to .canvas plain text files.

Features

  • Infinite canvas with pan and zoom
  • Text nodes with GitHub Flavored Markdown support
  • URL Link nodes for bookmarks with URL context extraction
  • File nodes for images, videos, audio, PDFs, and documents
  • Group nodes for organising related content
  • Edges to connect nodes with arrows and labels
  • Alignment snapping for lining up nodes
  • Inline hashtags with filtering and text search
  • Multi-canvas tabs for separate workspaces
  • Import/export in JSON Canvas format (compatible with Obsidian)
  • ZIP export/import — bundles canvas data with all attached files
  • HTML export — self-contained, interactive read-only files with pan/zoom, embeddable via iframe
  • PDF export via browser print dialog
  • Light/dark theme with toggle
  • Keyboard shortcuts for efficient navigation

File Storage

Files are stored locally in your browser using the Origin Private File System (OPFS). This is a browser-native storage API — no server or cloud service involved.

  • Add files by dragging them onto the canvas, or via the toolbar/right-click menu
  • Images and video render inline as previews; audio gets a player; other files show a download link
  • Storage limits depend on the browser (~60GB Chrome, ~10GB Firefox, ~1GB Safari)
  • Persistent Storage is requested automatically to reduce the chance of the browser clearing your data
  • Export as ZIP to back up a canvas with all its files, or share it with someone else

Security

  • Runs entirely client-side — no server, no accounts, no tracking
  • Data stored in your browser's IndexedDB and OPFS; never leaves your machine
  • Markdown rendered with DOMPurify sanitization (strict tag/attribute allowlists)
  • URI protocols restricted to https, http, mailto, tel — blocks javascript: and data: schemes
  • Links open with rel="noopener noreferrer"

License

MIT


Yes, vibe coded and quickly too. Enjoy.

About

Snappy canvas/whiteboard web app that runs client side.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •