Browser tools
Publish Hand and BUM Hand work with your own Micro.blog app token. No inbound email configuration required.
Set up the shared deployment ↓Your tools. Your accounts. Your deployment.
Helping Hand is designed to work as a personal, self-hosted publishing kit. Fork it, deploy your own copy, connect your own Micro.blog account, and add Writing Hand only if you want the direct reMarkable email route.
Self-hosting
The browser tools are local-first. Your token is supplied when you publish and is not persisted by Helping Hand. Writing Hand is optional and adds server-side credentials only to your own deployment.
Status: published line publishes immediately.For the browser tools: GitHub, Netlify, and a Micro.blog account if you want to publish. For Writing Hand as well: Resend with inbound email enabled, a private incoming email address, a dedicated Micro.blog app token, and Netlify Database.
git clone https://github.com/davidmarsden/handwritten-publish.git
cd handwritten-publish
npm install
npm test
npm run build
For local development:
npm run dev
The suite uses Vite/React plus static product pages. Production output goes to dist/; server-side bridges live in netlify/functions/.
Create a Netlify project from your GitHub fork/repository.
| Setting | Value |
|---|---|
| Build command | npm run build |
| Publish directory | dist |
Netlify recognises the functions in netlify/functions/. The repository also contains a Netlify Database migration; Netlify provisions and applies it during deployment. If you only use the browser tools, leave all post-by-email environment variables unset.
Paste a Micro.blog app token into Publish Hand or BUM Hand when you want to publish or upload. The token is kept in browser memory and passed to the Netlify bridge only for the requested API calls; Helping Hand does not persist it in IndexedDB, portable documents or Netlify configuration.
Create Micro.blog app tokens under Account → App tokens / Edit Apps. If you have several Micro.blog-hosted blogs, Publish Hand uses Micropub destinations to let you select one. New browser-created posts start as private drafts.
The detailed configuration is on the Writing Hand page. It includes every environment variable, the Resend webhook URL, routing examples and the handwritten title/category/status syntax.
Status: always means draft.