Turn your text notes into a website
Hyperdraft helps you organize your thinking with text notes, and makes it simple to turn them into a website. Inspired by modeless and keyboard-centric Notational Velocity it lets you quickly and easily network your ideas via a simple double-bracket syntax. Use it for ideas, todo lists, brainstorming, recipes, reading notes, journaling, or anything involving writing. Read the guide for more details.
The project follows a Universal folder structure and is a large collection of mostly small modules or functions that are put together using Svelte and Rollup. With the exception of a few 'global' or 'magic' things such as the localization function OLSKLocalized, most resources used by a module should be in the same folder or referenced by path name.
Routing, rendering markdown content, and serving pages is done via a Node.js server (usually configured in the controller.js files).
(For a deeper dive, watch the tutorial).
Install Node.js and npm, then:
npm run setup
This should create an .env file if there is none. If you encounter errors referring to this file, you can find missing variables in .env-sample.
npm run watch
npm start
It should be accessible at http://localhost:3000.
See Testing logic and interfaces for a tutorial.
npm test
npm test ui
To filter interface test paths by string:
npm test ui match=write
To filter interface test paths by JavaScript regular expressions:
npm test ui match='/(detail|vitrine)/'
Help me keep creating projects that are public, accessible for free, and open-source.
The code is released under a Hippocratic License, modified to exclude its use for surveillance capitalism and also to require large for-profit entities to purchase a paid license.
Feel free to reach out on Mastodon or Bluesky.
The Ponder Source fork is served at https://hyperdraft.pondersource.com with
GitHub Pages. Use Node.js 22 and npm ci for the locked dependency tree.
npm run build fails on unresolved imports; npm run static-export checks
local asset references before publishing. Production builds exclude UI test
stubs; set OLSK_ROLLUP_SCAFFOLD_CI=1 when building for interface tests.