🇷🇺 Русская версия — README.ru.md
Solo developer's portfolio cockpit. Bugs, requirements, deploy — all in markdown.
Managing 10 GitHub repos as one person hits friction GitHub itself doesn't solve: bugs scattered across per-repo Issues, no portfolio-wide overview, multi-repo features (client + server + microservice) demand mental coordination, deploy automation gets hand-rolled in every new project. And the moment you delegate a bug fix to an AI agent, "the agent said it's done, I forgot to verify" silently becomes the failure mode.
Solo Dev Hub is a single-window desktop app that organizes your portfolio, locks every bug into a verifiable AI-agent workflow, tracks tasks in commit-able Markdown, syncs requirements between repos, and bundles deploy automation — all under one roof.
Built for solo developers, indie hackers, and freelancers running 5+ active GitHub repos who don't want to:
- Pay for team-tier project-management SaaS (Linear / Jira) for one person
- Use GitHub Issues across N repos and lose any portfolio-wide view
- Hand-roll deploy YAML / Dockerfile in every new project
- Lose track of which repo has the most active bugs this week
AI-ready by design. Bugs, tasks, requirements, project metadata, and CLAUDE.md sections all live as Markdown inside your repos. Every AI assistant (Claude, ChatGPT, Copilot) reads your entire portfolio context without an API integration — git clone is the integration.
- AI-agent bug closure with a safety net — the bug status workflow (
created→in-progress→testing→confirmed/rejected) splits roles cleanly: the AI agent takes a bug, applies a fix, moves it totestingwith a comment describing what it did; you verify and click ✓ or ✗. The agent cannot editdescription,severity,category, orfix_attempts— onlystatusandcommentare AI-writable. The attempt counter auto-increments on everytestingtransition, so "how many tries did this take" is honest history, not a self-report. Net effect: no bug falls through the gap between "agent said it's fixed" and "I forgot to check". - Portfolio dashboard — period-filtered KPIs (open / closed / fix rate / attempts per period), top-3 hot projects, daily bugs/tasks flow charts, category efficiency bars. See your portfolio at a glance.
- Markdown bugs — every bug lives in
docs/bug-reports.mdof the affected repo. SQLite is the source-of-truth, the MD file is a 2-way-synced LLM-readable view. Severity, category, append-only event log per bug. - Cross-repo requirements —
REQ-NNN.mdexchange between client ↔ server ↔ microservice. Sender writes the ask, recipient writes the receipt, the app handles file movement between repos. No GitHub Issues, no email threads. - Peer channels — two repos at the same level (client ↔ client, server ↔ server, or servers in two different products) exchange through
docs/InOutBox/: an outbox you write, an inbox the app fills, and a shared folder for two-sided agreements. Requirements only work downhill, where one side owes the other an answer; between equals nobody does, sodeclinedis a normal answer and the channel carries agreements, handovers and notes instead of demands. Peers are connected deliberately — a shared role opens nothing. - Project graph — visualize a project as a 1-hop graph: server in the center, repos and connected microservices around it. Click any node to navigate. Built on Cytoscape.
- Multi-environment deploy — generate Docker + GitHub Actions deploy pipelines per environment (prod / staging / test / any custom name) with native GitHub Environments integration and per-secret role/scope flags.
- Deploy report — portfolio-wide view of every deploy environment across all repos in one screen (domains, branches, image tags, secret counts), grouped by project. Click any row to jump straight to that environment's setup.
- Secret bundles — reusable, locally-encrypted sets of secret values (the SSH / DB / npm keys you reuse across servers). Enter them once, then apply to any repo's or deploy environment's GitHub secrets instead of re-typing per repo. AES-256-GCM at rest, key in the OS keyring — no master password.
- Tasks (todo.md / done.md) — each repo has an append-only completion log auto-tagged with versions. Universal data grid: filter, sort, persist preferences per tab.
- Activity timeline — multi-source events (bugs, tasks, syncs, deploys, repo renames) across the entire portfolio. Date-range / kind / repo / search filters.
- Templates — per-language seeds for
.gitignore,.gitattributes, deploy YAML, CLAUDE.md sections. Customize once in the app, sync into every project. - PAT in OS keyring — your GitHub token goes into Windows Credential Manager (OS-level), never SQLite, never
.env, never a plaintext file. - Single .exe, ~19 MB — Tauri v2 + WebView2. No Electron bloat. No daemon. No telemetry. The only background network call is the update-checker pinging GitHub Releases once on startup; everything else is on your explicit action.
- Framework — Tauri v2 (Rust backend + WebView2 frontend, single-binary distribution)
- Frontend — SvelteKit + Svelte 5 + TypeScript
- Backend — Rust: SQLite via
rusqlite, file I/O for sync, Windows Credential Manager viakeyring - GitHub API —
@octokit/rest(called directly from the JS side, never proxied through Rust) - Graph — Cytoscape.js with concentric layout, theme-aware
- i18n — Russian (default) + English, ~850 type-safe keys, no runtime dependency
- Autoupdate —
tauri-plugin-updaterwith Ed25519 signing; production builds via GitHub Actions onv*tag push
Current builds are Windows x64 only. Tauri supports macOS and Linux architecturally; non-Windows builds may appear in the release pipeline by request.
- Download
solo-dev-hub_<version>_x64-setup.exefrom the Releases page - Run the installer.
- First launch may show a Windows SmartScreen warning ("Unrecognized publisher"). Authenticode code-signing is on the v2.0.0 roadmap. Until then: click "More info" → "Run anyway".
- Generate a GitHub Personal Access Token at github.com/settings/tokens with these scopes:
repo— full repository access (read your repos, manage Actions secrets)workflow— required for the deploy automationread:user— read your profile info
- Open Solo Dev Hub → Settings (cog icon) → paste the PAT → save. The token goes into Windows Credential Manager — never on disk in plaintext.
- Set your workspace root — Settings → Workspace. This is the directory under which the app expects your repos to be cloned (e.g.
C:\Users\You\Development\). - Click 🔄 Sync in the sidebar. The app fetches your repo list from GitHub.
- Organize: drag repos into projects in the sidebar, or click a repo to assign a role (server / client / microservice / landing / tool / etc.).
- Sidebar shows your projects → repos. Click a repo → tabs for Bugs / Tasks / Done / Changelog / Deploy / Secrets / Stats.
- Add a bug via "+ Add bug" — instantly committable in
docs/bug-reports.md(the MD is a view; SQLite is the SoT). - Dashboard (📊 in the sidebar) — portfolio-wide KPIs filtered by period and projects.
- Timeline (📅) — chronological event feed across the whole portfolio.
- Deploy — click on a deploy-capable repo → Deploy tab → set up environments + secrets → generate Dockerfile + workflow with one click.
- Node.js v18+
- Rust (via rustup)
- Microsoft C++ Build Tools (Tauri requirement)
- WebView2 Runtime (pre-installed on Windows 11)
npm install
npm run tauri dev # local dev with hot reloadcd src-tauri && cargo test --lib # ~551 Rust tests
npm test # vitest frontend (~86 tests)
npm run check # svelte-checkProduction releases are built by GitHub Actions on v* tag push — never build locally for distribution (unsigned, no latest.json):
git tag -a vX.Y.Z -m "vX.Y.Z"
git push origin master vX.Y.ZThe full release runbook (key rotation, CI troubleshooting, hotfix flow) — docs/RELEASING.md.
Start with docs/ARCHITECTURE.md — the layer map, the load-bearing design decisions and why they were made, and the cross-repo requirement flow. Database schema, ER diagram and per-table notes live in docs/schema/; per-feature deep dives in docs/flows/.
CLAUDE.md (gitignored) carries the in-project AI rules. The app's "Sync to ~/.claude/CLAUDE.md" feature installs a thin always-on core (file formats, versioning, commit conventions) into your user-level Claude Code config, plus the workflow-heavy rules (cross-repo requirements, announcements, api.md contract, phase workflow, release lifecycle) as on-demand sdh-* skills in ~/.claude/skills/ — they surface only when relevant instead of loading every session. The same skill content syncs into each repo's docs/sdh_skills/, so any AI agent (not just Claude Code) can read it. Per-project CLAUDE.md sits in each repo's root.
Shipped
- v1.16.0 (current — 2026-09-01) — the second half of the help screen: cross-repo links, deploy, and the AI agent contract; a revision of the working rules (18 role-scoped skills, a new one on debugging); the task-event leak stopped.
- v1.15.0 — channels between equals: two repositories on the same level exchange through
docs/InOutBox/, links created explicitly; number registries in every outgoing channel. - v1.14.0 — operations tasks: classes of no-code work that never block a release, and a Type column in the task lists.
- v1.13.0 — the in-app help screen: the onboarding core (quick start, project setup, bug workflow), ru/en.
- v1.12.0 — a skill for splitting development across several AI agents by role, plus release-workflow fixes.
- v1.11.x — the Codex: a publishing project type that broadcasts a svod of practices to consumers along role lanes.
- v1.10.0 — contributor documentation:
docs/ARCHITECTURE.mdand a generated SQLite schema reference (docs/schema/, tbls — ER diagram plus a page per table). - v1.9.x — the AI rule set moved from always-on instructions to 12 role-scoped on-demand skills; auto-commit now respects
.gitignore; sync moved off the UI thread; cross-repo requirement teardown hardened. - v1.8.0 — Reports section: portfolio deploy report and secret-push audit, with CSV export.
- v1.7.0 — workflow automation: auto-sync on a timer, auto-commit of synced cross-repo files, requirement auto-close via
.impl.md. - v1.6.0 — deploy secret values persist between sessions, encrypted at rest.
- v1.5.0 — UI component splits (project detail and secrets panel).
- v1.4.x — internal refactor milestone: the Rust command layer and TypeScript bindings split into per-domain modules.
- v1.3.0 — reusable encrypted secret bundles: enter SSH / DB / npm values once, apply to any repo or deploy environment.
- v1.2.0 — portfolio deploy report with drill-down;
.gitattributesmanaged template. - v1.1.0 — verdict rollback for bugs (↩ reopen on confirmed/rejected).
- v1.0.0 — public launch (2026-05-18), MIT-licensed open source.
Next
- v1.17.0 — sync errors in the interface language; a rules viewer in the app; an equality check when linking peers.
- v1.18.0 — cross-platform builds (macOS / Linux).
- v2.0.0 — Windows Authenticode code signing (removes the SmartScreen warning), read-only API viewer + client/server compatibility matrix.
Per-release detail lives in the Changelog; the day-to-day task list is kept locally and is not part of the repository.
The app is free and ad-free. If it saves you time, consider supporting development:
- Boosty — boosty.to/sgonnovdm/donate (RUB / cards / СБП)
- TON —
UQA-0I3SN2vw8F2ZzEoOTXT36-ToF0mu4Yp4_6pVmsR_dI0S
Or use the in-app About screen — one-click links and copy-to-clipboard for the TON address.
MIT © 2026 Sgonnov D.A.







