Tools Decisions
Version 1.1 by Robert Schaub on 2025/12/25 20:31
Tools Decisions
Purpose
This page documents the deliberate tool choices for FactHarbor POC → Beta.
The goal is low friction now, no rewrites later, and clear upgrade paths.
Phase 1 — POC1 (Local, Low Infrastructure)
Core Principles
- Minimize setup and cognitive load
- Avoid infrastructure that is not strictly required
- Keep architecture identical to Beta where possible
Selected Tools
Backend
- ASP.NET Core (.NET 8)
- Role: system of record (jobs, status, results, events)
- Reason: strong typing, long-term maintainability, C# expertise
- SQLite (EF Core provider)
- Role: local persistence
- Reason: zero setup, file-based, easy Postgres transition
Frontend & Orchestration
- Next.js (TypeScript)
- Role: UI + AI orchestration
- Reason: fast iteration, strong ecosystem, good AI SDK support
- Vercel AI SDK
- Role: LLM abstraction layer
- Reason: OpenAI-first, Claude-ready, clean provider switching
AI Providers
- OpenAI (default)
- Anthropic (optional / later)
- Selection via environment variables
Editors
- Visual Studio 2022 — primary for .NET API
- Cursor or VS Code — primary for Next.js / TypeScript
Phase 2 — POC → Beta Transition
Changes (No Rewrite)
- SQLite → PostgreSQL (EF Core provider switch)
- Local run → hosted environments
- Add authentication, quotas, persistence hardening
Additional Tools Introduced
- Docker (optional, for DB parity)
- Managed Postgres
- CI (GitHub Actions)
- Hosting
- Next.js → Vercel
- .NET API → Azure App Service / Container Apps
Non-Goals (Explicitly Deferred)
- Kubernetes
- Microservices split
- Complex queue systems
- Multi-region deployment
These are intentionally deferred to reduce early risk.
Key Decision Summary
- Architecture is stable from POC1 onward
- Infrastructure is phased, not front-loaded
- Tooling choices prioritize clarity over novelty