Tools Decisions
Last modified by Robert Schaub on 2026/02/08 08:12
Tools Decisions
Purpose
This page documents the deliberate tool choices for FactHarbor from POC1 to Beta. The guiding principles are:
- minimal setup and cognitive load for POC1
- no rewrites when moving to Beta
- clear, incremental upgrade paths
Phase 1 — POC1 (Local, Low Infrastructure)
Principles
- Local-first development
- No mandatory container or cloud infrastructure
- Same architectural shape as later phases
Backend
ASP.NET Core (.NET 8)
- Role: system of record (jobs, status, results, events)
- Reason: strong typing, long-term stability, C# expertise
SQLite (EF Core provider)
- Role: local persistence
- Reason: zero setup, file-based, smooth transition to PostgreSQL
Frontend & Orchestration
Next.js (TypeScript)
- Role: UI and AI orchestration
- Reason: fast iteration, strong ecosystem, good AI tooling
Vercel AI SDK
- Role: LLM abstraction
- Reason: OpenAI-first, Claude-ready, provider switching without rewrites
AI Providers
- OpenAI (default)
- Anthropic (optional, later)
Editors
- Visual Studio 2022 — primary for .NET API
- Cursor or VS Code — primary for Next.js / TypeScript
Phase 2 — Transition to Beta
Changes (No Rewrite)
- SQLite → PostgreSQL
- Local execution → hosted environments
- Add authentication, quotas, persistence hardening
Additional Tools Introduced
- Docker (optional, mainly for DB parity)
- Managed PostgreSQL
- GitHub Actions (CI)
- Hosting:
- Next.js → Vercel
- .NET API → Azure App Service or Container Apps
Explicitly Deferred
- Kubernetes
- Microservice decomposition
- Complex distributed queues
- Multi-region deployment
These are intentionally deferred to reduce early risk.
Summary
- Architecture is stable from POC1 onward
- Infrastructure is phased, not front-loaded
- Tool choices prioritize clarity and durability over novelty