The library & app, in Node
The server to embed or launch, and the client your pages load — both from npm, no PHP.
The developer page for annotepage in Node. Not what you came for?
The server
Embed it in the app you already run, or launch it on its own.
-
On npm
The package: annotepage-server.
npm install annotepage-server -
Embed it
In the app you already run.
A fetch handler — Express, Fastify, Bun, Deno, Workers.
import { createServer } from 'annotepage-server'; import { SqliteStore } from 'annotepage-server/stores/sqlite'; import { nodeListener } from 'annotepage-server/adapters'; const api = createServer({ store: new SqliteStore({ file: './data/notes.sqlite' }), projects: { '<id>': { mode: 'encrypted' } }, }); app.use('/annotepage/api', nodeListener(api)); -
Run it
On its own, from a terminal.
--helpfor the options.npx annotepage-server --project <id>
The client
The annotation layer your pages load: one file, one classic <script> tag — never bundled.
-
On npm
The package: annotepage-client.
It hands you
dist/annotepage.js— the file the tag loads, byte for byte.npm install annotepage-client -
Serve it
Serve that one file from your app, and load it with a classic tag — not imported, not bundled.
The install page builds the tag, with your address, your key and the digest.
<script src="/annotepage/annotepage.js" data-server="/annotepage/api" data-key="<43 characters>"></script>