Ga naar inhoud

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/ # Hulpscripts

Engine, 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.