A single pane of glass for solo developers managing GitHub workloads across multiple repositories.
SoloDevBoard is a .NET 10 Blazor Server application that consolidates your GitHub repository management into a single, unified interface. If you maintain multiple GitHub repositories as a solo developer, SoloDevBoard eliminates the context-switching between repository tabs, project boards, settings pages, and workflow runs.
| Feature | Description | Status |
|---|---|---|
| Audit Dashboard | Consolidated view of issues, open PRs, workflow health, and label consistency across selected repositories. | Available |
| Label Manager | Create, edit, synchronise, and enforce label taxonomies across multiple repositories from a single interface. | Available |
| Repositories | View, search, refresh, and filter repositories accessible to your GitHub account (including open-source topic filters). Add, remove, bulk, and row catalogue actions remain stubs. | Partially Available |
| One-Click Migration | Migrate labels, milestones, and Projects v2 Status columns from one repository to another in a single preview-first action. | Available |
| Board Rules Visualiser | Visualise supported board states and transitions for GitHub Project v2 boards. Full GitHub automation-rule retrieval remains a later slice. | Partially Available |
| Triage UI | Keyboard-friendly interface for triaging incoming issues quickly. | Available |
| Actions Templates | Browse, customise, and apply built-in GitHub Actions workflow templates across repositories. Custom template repositories are deferred past v1.1. | Partially Available |
| Planning | Daily Focus, backlog review, iteration planning, and repository participation for your project board. | Available |
- .NET SDK 10.0 or later.
- Git (any recent version).
- A GitHub account.
- A GitHub Personal Access Token (PAT) or GitHub App for API authentication.
Ensure you have the following installed:
- .NET SDK 10.0 or later.
- Git.
- A GitHub account.
- A GitHub Personal Access Token (PAT) or GitHub App for API authentication.
- The Aspire CLI (
aspire) for local orchestration.
SoloDevBoard uses Aspire for local orchestration and production deployment to Azure Container Apps. Two authentication modes are available: PAT-only local trusted mode (default, for solo local development and trusted personal self-hosting) and hosted sign-in (GitHub App, for shared or public deployments). See Getting Started — PAT-only local trusted mode for the mode comparison.
Quick start with Aspire (recommended):
# Clone the repository
git clone https://github.com/markheydon/solo-dev-board.git
cd solo-dev-board
# Restore dependencies
dotnet restore SoloDevBoard.slnx
# Configure GitHub auth — one secret for PAT-only local trusted mode
aspire secret set Parameters:gh-pat "<your-pat>"# Start with Aspire
aspire start --apphost src/SoloDevBoard.AppHost/SoloDevBoard.AppHost.csproj
# Get the allocated endpoint
aspire describeOpen the app resource URL shown by aspire describe in your browser.
Optional legacy path (without Aspire):
dotnet user-secrets set"GitHubAuth:PersonalAccessToken""<your-pat>" --project src/App/SoloDevBoard.App
dotnet run --project src/App/SoloDevBoard.AppFor hosted sign-in mode (GitHub App), see docs/getting-started.md or src/SoloDevBoard.AppHost/README.md.
Aspire is used for both local orchestration and production deployment to Azure Container Apps. See docs/deployment.md for Azure deployment instructions, including the self-hoster PAT path for a personal instance on your own subscription.
solo-dev-board/
├── src/SoloDevBoard.AppHost/ # Aspire AppHost (local orchestration and Azure deployment)
├── src/SoloDevBoard.ServiceDefaults/ # Aspire service defaults (telemetry, health checks)
├── src/
│ ├── App/ # Blazor Server UI (presentation layer)
│ ├── Application/ # Use cases and service interfaces
│ ├── Domain/ # Domain entities and value objects
│ └── Infrastructure/ # GitHub API clients, external integrations
├── tests/
│ └── App.Tests/ # xUnit test projects
├── docs/ # Developer / operator documentation
│ ├── README.md # Index for repository-centric docs
│ ├── getting-started.md # Setup and configuration guide
│ ├── deployment.md # Azure Container Apps deployment guide
│ └── github-app.md # Hosted-sign-in GitHub App listing checklist
├── website/ # Public product site (Hugo / Hextra → GitHub Pages)
│ ├── hugo.yaml # Hugo site configuration
│ └── content/ # Landing, User Guide, and About pages
├── scripts/
│ ├── invoke-hugo-site.sh # Local Hugo build/serve via Docker/Podman (bash)
│ └── Invoke-HugoSite.ps1 # Windows PowerShell equivalent
├── CHANGELOG.md # Keep a Changelog (release notes source)
├── plan/
│ ├── SCOPE.md # Project scope and constraints
│ ├── DECISIONS.md # Active decision log (repo memory)
│ ├── IMPLEMENTATION_PLAN.md # Phased development plan
│ ├── BACKLOG.md # Roadmap index (Issues are source of truth)
│ ├── RELEASE_PLAN.md # Versioning and release process
│ ├── LABEL_STRATEGY.md # GitHub label taxonomy
│ ├── PROJECT_MANAGEMENT.md # Issues, milestones, and project board guide
│ ├── PROJECT_BOARD_DESIGN.md # Project board column and automation design
│ └── DOCS_STRATEGY.md # Documentation conventions
├── adr/
│ ├── README.md # Redirect to plan/DECISIONS.md
│ └── archive/ # Read-only legacy ADR files
├── .github/
│ ├── instructions/ # Path-scoped coding rules (canonical)
│ ├── prompts/ # Thin Copilot mirrors → .agents/workflows/
│ ├── ISSUE_TEMPLATE/ # Issue templates (feature, bug, chore)
│ ├── pull_request_template.md
│ └── workflows/
│ ├── ci.yml # .NET build, format, and test on every PR
│ ├── playwright.yml # Playwright E2E (PAT and hosted matrix)
│ ├── cd.yml # CD: Aspire deploy to Azure
│ ├── aspire-deploy-validate.yml # Validates AppHost deployment model on PR
│ ├── bash-validate.yml # ShellCheck on scripts/**/*.sh
│ ├── powershell-validate.yml # PSScriptAnalyzer on scripts/**/*.ps1
│ ├── github-actions-validate.yml # actionlint on workflow YAML
│ ├── github-scripts-validate.yml # ESLint and tests for .github/scripts
│ ├── hugo-validate.yml # Hugo end-user docs build validation on PR
│ └── hugo-deploy.yml # Hugo end-user docs deploy to GitHub Pages
├── .agents/
│ ├── contracts/ # Role boundary contracts (PM, delivery, verify, etc.)
│ ├── workflows/ # Canonical workflow entry points
│ └── skills/ # Shared implementation and workflow skills
├── .cursor/
│ ├── rules/ # Thin Cursor mirrors → .github/instructions/
│ └── commands/ # Thin Cursor mirrors → .agents/workflows/
└── AGENTS.md # Canonical AI collaborator standards
SoloDevBoard welcomes contributions from all developers. Please read CONTRIBUTING.md and the Code of Conduct.
To contribute:
- Fork the repository and create a new branch for your changes.
- Review the project structure and existing documentation to understand the architecture and conventions.
- Ensure all code comments, string literals, and documentation use UK English spelling.
- Follow the coding conventions outlined in
AGENTS.md. - Use the issue templates in
.github/ISSUE_TEMPLATE/to report bugs or request features. - When implementing a feature or fix, reference the relevant issue in your commit message.
- Add or update tests in the appropriate test project under
tests/. - Submit your changes via a pull request that follows
plan/PULL_REQUEST_POLICY.mdand.github/pull_request_template.md. - The CI workflow will build and test your changes automatically.
- The project maintainer will review your PR and provide feedback or merge when ready.
For guidance on labels, see plan/LABEL_STRATEGY.md.
For help with setup, see docs/getting-started.md.
End-user documentation is published from website/ to GitHub Pages on v* release tags.
SoloDevBoard is developed with AI agents as active collaborators. AGENTS.md is the canonical source for architecture, conventions, UK English requirements, and workflow gates. Role contracts in .agents/contracts/, workflow entry points in .agents/workflows/, skills in .agents/skills/, and the PM runbook in plan/PM_RUNBOOK.md provide structured workflows for planning, implementation, and review. For Cursor Cloud VM development, see plan/CURSOR_CLOUD.md.
Please report vulnerabilities privately as described in SECURITY.md. Do not file public issues for security problems.
SoloDevBoard is released under the MIT Licence.