Platformarchitectuur
Deze pagina beschrijft de technische onderbouw van Whitefield: de gekozen tech stack en de monorepo-structuur waarin engine, platform en documentatie samenkomen. Elke keuze is vastgepind op versie, zodat de bouwruimte voor nieuwe functionaliteit van tevoren duidelijk is.
Zie Het Plan voor de samenvatting op hoofdlijnen.
De tech stack (24 keuzes)
Engine (Python, lokaal):
- Python 3.12 — kernprogrammeertaal
- Polars — DataFrame-bibliotheek
- NumPy/SciPy — wiskundige berekeningen
- Norgate Data — historische aandelendata (splits, delistings)
- Parquet — kolom-georiënteerd opslagformaat, zuiniger dan CSV
Backend (Laravel, cloud):
- Laravel 12 — PHP web framework
- PHP 8.4 — server-side taal
- PostgreSQL 16+ — database
- Laravel Filament — admin panel framework
Frontend:
- Vue 3 — SPA framework (zelfde codebase voor web en mobiel)
- Capacitor 8 — native mobile wrapper (iOS/Android)
- TailwindCSS — utility-first CSS
Publieke site:
- Astro 5 + Starlight — statische site-generator (docs.whitefield.com)
- Cloudflare Pages — hosting en CDN
Charts:
- Lightweight Charts (TradingView) — interactieve financiële grafieken
- ApexCharts — allocatiegrafieken (taart, staaf, heatmap)
E-mail:
- Postmark — transactionele mail (Helios Letter, meldingen)
Hosting:
- DigitalOcean App Platform — managed container hosting
- Cloudflare — DNS, CDN, Access (authenticatie)
Mobiel:
- Progressive Web App (PWA) — geen aparte native app bij lancering
Monorepo-structuur
helios/├── lib/ # Trading engine (Python)│ ├── portfolio/ # Backtestmotor, slippage, commissies│ ├── signals/ # Signaalextractie, roll-forward│ └── analysis/ # Auditscripts, statistiek├── trading/ # Live trading-sessies├── whitefield/ # Investeerdersplatform│ ├── app/ # Laravel-applicatie│ └── docs/ # Astro/Starlight documentatiesite├── knowledge-base/ # Onderzoeksdocumenten├── tests/ # Python unit tests (2390+)└── scripts/ # HulpscriptsEngine, platform en documentatie in één repository. Dat houdt alles bij elkaar: als de trading-logica verandert, blijft die wijziging zichtbaar in de context waarin ze gebruikt wordt.