OpenMD is a simple, shareable markdown workspace inspired by HackMD.
- Next.js 16 (App Router, TypeScript)
- Bun for package management and scripts
- Convex for storage + realtime comments
- Convex Auth (GitHub only, optional login)
- coss UI components (
@coss/ui+@coss/colors-neutral) react-markdown+remark-gfm+rehype-sanitize- Mermaid diagram rendering in fenced code blocks
- Theme support: light / dark / system
- Paste markdown and live preview it full width
- Generate unlisted share links
- Separate edit token links for safe editing
- Optional GitHub sign-in (anonymous usage still works)
- Anchored comment bubbles for headings and blocks
- Plain-text comment threads with resolve/reopen
bun install
bunx convex dev
bun devOpen http://localhost:3000.
Convex has already been initialized for this repo (convex/ folder exists).
If you need to reconfigure:
bunx convex dev --configure existing --project openmd --dev-deployment cloud- Create a GitHub OAuth app.
- Use your Convex HTTP Actions URL callback:
https://<your-deployment>.convex.site/api/auth/callback/github
- Set Convex environment variables:
bunx convex env set AUTH_GITHUB_ID <client-id>
bunx convex env set AUTH_GITHUB_SECRET <client-secret>
bunx convex env set SITE_URL http://localhost:3000Without these, OpenMD still works anonymously.
bun run lint
bun run lint:fix
bun run format
bun run format:check
bun run build