Skip to content

Tech Strategy Tool

A collaborative web application that helps engineering teams define, track, and evolve their technical strategy. Purpose-built for live, low-friction editing during meetings so that discussions are immediately captured as structured, actionable strategy — not meeting notes that nobody reads.

Technical strategy discussions happen in meetings, but the outcomes get lost in slide decks and wikis that go stale. The Tech Strategy Tool provides a shared, living document where teams capture:

  • Principles — the guiding beliefs and standards that govern daily technical decisions
  • Objectives — measurable goals that make progress visible
  • Initiatives — concrete projects that drive progress on objectives

Each team defines its own strategy within a shared organizational view, with cross-team principle sharing to maintain alignment.

  • Real-time collaborative editing — Multiple users edit the strategy simultaneously. Changes propagate instantly via Server-Sent Events, with per-field conflict detection so editors never silently overwrite each other’s work.

  • Structured strategy model — Principles govern daily work, Objectives make progress measurable, and Initiatives track concrete implementation. The hierarchy enforces clarity: every initiative ties to an objective, and every objective connects to governing principles.

  • Complete audit history with restore — Every change is recorded as an immutable event. Any user can view per-entity history with previous values, and administrators can restore the entire strategy to any point in time.

  • Cross-team principle sharing — When an objective in one team needs a principle from another team, the tool creates an independent copy automatically. This supports organizational alignment while letting teams evolve their strategy independently.

  • Multi-team, role-based access — Viewers see everything, Editors can modify any team’s strategy (with full audit trail as the safety net), and Administrators manage users, teams, and system-level operations.

The system is built on an event-sourced architecture: every state change is captured as an immutable event in an append-only log. The current state is derived by replaying events from the last checkpoint.

Event sourcing is not used here for scalability — it is used because the domain genuinely benefits from an immutable audit trail. History, restore, and conflict detection are first-class product features, not afterthoughts.

Diagram
ComponentTechnologyPurpose
Strategy SiteBlazor WebAssemblyEditing principles, objectives, and initiatives
Admin SiteBlazor WebAssemblyUser management, team setup, event log, restore
API HostASP.NET Core Minimal APIEndpoints, auth, SSE, event processing
DatabasePostgreSQL 17Event store, checkpoints, users, sessions
Event ProcessorPure C# (no dependencies)Single-writer in-memory state machine
  • .NET 10 / ASP.NET Core / Blazor WebAssembly
  • PostgreSQL 17 with EF Core for persistence
  • Event sourcing with checkpoint-based replay
  • Server-Sent Events for real-time notifications
  • DocumentFormat.OpenXml for PowerPoint export
  • Docker Compose for local development infrastructure
SectionDescription
Getting StartedSet up and run the project in minutes
ArchitectureDesign decisions and system structure
User GuideHow to use the Strategy and Admin sites
API ReferenceComplete endpoint documentation
Domain ModelEntities, events, and processing rules
ContributingConventions, testing, and development workflow
src/
TechStrat.Core/ Pure domain logic (events, model, processor)
TechStrat.Infrastructure/ PostgreSQL persistence via EF Core
TechStrat.Shared/ DTOs and API contracts
TechStrat.Api/ ASP.NET Core host and endpoints
TechStrat.UI/ Shared Razor component library
TechStrat.Web/ Blazor WASM unified app
tests/
TechStrat.Core.Tests/ Unit tests (no external deps)
TechStrat.Api.Tests/ Integration tests (WebApplicationFactory)
TechStrat.Infrastructure.Tests/ Persistence tests (Testcontainers)