Browser tools
Publish Hand and BUM Hand work with your own Micro.blog app token. Markdown Hand can also save private working drafts to a configured GitHub repository.
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 the optional server-side routes you actually use.
Self-hosting
The browser tools are local-first. Micro.blog tokens are supplied when needed and are not persisted by Helping Hand. Writing Hand and private GitHub draft routing are separate opt-in server-side boundaries in your own deployment.
Status: published line publishes immediately.For the core browser tools: GitHub, Netlify, and a Micro.blog account if you want to publish or upload there. For Writing Hand: Resend inbound email plus a dedicated Micro.blog token. For an optional private GitHub working-draft destination: a narrowly-scoped repository token stored server-side and a separate browser write key.
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 under netlify/functions/ and netlify/edge-functions/.
Create a Netlify project from your GitHub fork/repository.
| Setting | Value |
|---|---|
| Build command | npm run build |
| Publish directory | dist |
Netlify recognises the functions and Edge Functions in the repository. The repository also contains a Netlify Database migration used by Writing Hand. If you only use the ordinary browser-to-Micro.blog tools, leave the optional server-side environment variables unset.
Paste a Micro.blog app token into Publish Hand, BUM Hand or Markdown 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, the browser tools use Micropub destinations to let you select one. Publish Hand and Markdown Hand are draft-first when creating Micro.blog posts.
Markdown Hand can be extended with a private GitHub working-draft destination so a chosen .md file can be saved unchanged before it is ready for publication. Keep that route deliberately narrow: write only to the intended repository and working-draft path, and update the same filename rather than creating accidental duplicates.
The GitHub credential must never go to the browser. Use a fine-grained token restricted to the intended private repository with only the permissions the route needs, store it server-side in your deployment, and protect browser requests with a separate long random write key.
The included implementation is intentionally project-specific. If you enable or adapt this optional route in your own fork, treat the repository name, credentials and destination path as deployment configuration rather than public site content.
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.