Work / Chikamichi
Chikamichi
A desktop app that lets non-technical teammates edit Markdown in GitHub repos like a document and commit without touching Git.
- Role
- Product, design and engineering
- Status
- Alpha
- Stack
- Tauri, Rust, React, TipTap

The problem
Business context lives in Google Drive or Confluence and drifts away from the codebase. Teammates who want to update a doc in GitHub either fight Markdown in the web editor or clone a repo for a one-line change.
What I did
- •A Tauri v2 app for macOS, Windows and Linux with a Rust backend for GitHub sign-in, the GitHub API and local git: clone, branch, commit, push and conflict detection.
- •A WYSIWYG Markdown editor on TipTap with tables, links and headings, plus a CodeMirror toggle for the raw source.
- •Version history with a diff view, a visual merge-conflict resolver, and an automatic fork when the user lacks write access.
- •A one-time Pro licence using Ed25519-signed keys checked offline, issued after Stripe checkout on the Next.js marketing site.
- •A release pipeline with CalVer versions, multi-platform builds, macOS signing and notarisation, and downloads served from Cloudflare R2.
How it works
A Turborepo with a Tauri desktop app (Rust backend, React 19 and Tailwind frontend) and a Next.js marketing site. The React UI calls Rust commands to list repos, read files, commit and push, show history and check the licence. Sign-in uses GitHub device flow, so no project server sits between the user and GitHub.
Decisions and trade-offs
- •Wrote OAuth PKCE by hand after problems with the oauth2 crate, then moved to GitHub device flow.
- •Chose a one-time licence with offline verification over a subscription or licence server, and kept the key generator out of the shipped app.
- •Getting cross-platform releases right meant vendoring OpenSSL for cross-compiles and reworking large uploads to R2.
Where it stands
Built in an intense week in July 2026. Signed macOS builds and the marketing site are live, with a free tier and a one-time Pro licence.
Need this on your team?
I take contract roles as a senior product engineer. Tell me about the team and the work.