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 Chikamichi website

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.