Builder's Log
The development journal behind RayRay's construction. This captures the day-by-day journey - the decisions, discoveries, and iterations that shaped the platform.
Phase 1: Research & Discovery
Day 1-2: Mental Prep (Mar 5-6)
- Read the POC three times
- Identified gaps: no weighting, no decision capture, no feedback loop
- Researched MCDA methods (AHP, TOPSIS, SAW)
- Discovered M-25-21 compliance requirements
Day 3: The Deep Dive (Mar 7)
- Started research on radar systems
- Discovered OMB M-25-21 memorandum
- Went down the MCDA rabbit hole
- Designed the extraction pipeline
Phase 2: Foundation
Architecture Decisions
- Monorepo structure with Turborepo
- Next.js 15 for frontend
- FastAPI for backend
- SQLAlchemy 2.0 async for data layer
Core Features Built
- Document ingestion pipeline
- Claim extraction system
- Comparison engine
- Scoring framework
Phase 3: Auth & Security
Authentication System
- OAuth 2.0 password flow
- JWT tokens with refresh
- MFA with TOTP
- Role-based access control
Compliance Layer
- Audit logging
- Session management
- Rate limiting
Phase 4: Polish & Ship
UI/UX Refinements
- Dark theme implementation
- Footer with system status
- Responsive layouts
- Error handling
Key Decisions
| Decision | Rationale |
|---|---|
| Turborepo | Monorepo for shared code, faster builds |
| Next.js 15 | App router, server components |
| FastAPI | Async Python, OpenAPI built-in |
| JWT + MFA | Security compliance requirement |
Lessons Learned
- Start with compliance — M-25-21 shaped many decisions
- Simple beats clever — The scoring system started complex, simplified
- Document as you go — Future you will thank present you
For the full interactive timeline with code samples, see the main Builder's Log.