ProfessionellFortgeschritten

Apamea

Plattform zur Vermögensverfolgung für Aktien, Krypto und Immobilien, bei der jede Bewertung, Rendite und jeder Währungseffekt serverseitig berechnet und in Euro ausgewiesen wird.

— Überblick

Architecture Overview

graph TB
    subgraph Web["apps/web — React 19 + Vite"]
        A[TanStack Router] --> B[TanStack Query]
        B --> C[Recharts panels]
        A --> D[Zustand stores]
    end
    subgraph Contracts["packages/core"]
        E[Zod schemas + response types]
    end
    subgraph Server["apps/server — NestJS on Fastify"]
        F[Controller] --> G[Service]
        G --> H[Loader]
        G --> I[Calculator]
        G --> J[Presenter]
    end
    subgraph Data
        K[(PostgreSQL via Drizzle)]
        L[Market data port]
        M[(Redis cache)]
    end
    B <-->|REST| F
    E --> A
    E --> F
    H --> K
    I --> L
    L --> N[Twelve Data / EODHD]
    G --> M

Eine bei Poyesis entwickelte Anwendung zur Vermögensverfolgung. Sie führt ein einziges Portfolio über drei Anlagebereiche — börsennotierte Aktien, Krypto und Immobilien — auf einem gemeinsamen Modell: ein Portfolio hält Positionen und Assets, und jedes davon besteht aus Lots, den einzelnen Käufen, die die Anschaffungskosten tragen.

Sämtliche Geschäfts- und Darstellungsmathematik läuft auf dem Server. Durchschnittskosten, Marktwert, realisierte und unrealisierte Gewinne, geldgewichtete Rendite, Allokationsanteile und der Währungseffekt erreichen das Frontend als fertige Zahlen — der Browser stellt dar und rechnet nie neu. Der Euro ist die Berichtswährung: alles, was über mehrere Bestände summiert wird, wird zuvor aus der jeweiligen Handelswährung umgerechnet.

Die Server-Domänen sind nach Verantwortung statt nach Bequemlichkeit getrennt. Ein Service orchestriert einen Loader, einen Calculator und einen Presenter; der Loader besitzt jeden Zugriff auf seine Tabelle; der Calculator trägt seine Formel in der Zeile über der Rechnung. Frontend und Backend teilen ihre Verträge als Zod-Schemata in einem Paket, sodass jede Route einmal für beide Seiten typisiert ist.

Hauptfunktionen:

  • Ein Portfolio für Aktienpositionen, Krypto-Assets und Immobilienprojekte
  • Anschaffungskosten je Lot mit gewichtetem Durchschnittspreis, Provision, Steuer und FX-Gebühren
  • Geldgewichtete Rendite (XIRR) und Kapitalmultiplikator je Bestand
  • Wertkurven im Vergleich zu einem Referenzindex, mit isoliertem Währungseffekt
  • Kursentwicklungstabellen über konfigurierbare Vergleichszeiträume
  • Dividendenverfolgung aus manuellen Buchungen und Positionsschließungen
  • Immobilienprojekte mit Businessplänen, Deal-Pipeline und Alles-oder-nichts-CSV-Import
  • Geokodierte Objektstandorte auf einer interaktiven Karte
  • Passkey-fähige Authentifizierung und vorsignierte S3-Anhänge
  • Durchgehend französische Benutzeroberfläche

Tech-Stack:

  • Frontend: React 19, Vite 7, TanStack Router/Query/Table, Zustand, Recharts, Tailwind v4
  • Backend: NestJS 11 auf Fastify, Drizzle ORM, PostgreSQL, Redis
  • Verträge: TypeScript, Zod-4-Schemata im gesamten Monorepo geteilt
  • Integrationen: Marktdaten von Twelve Data und EODHD, Better Auth, AWS S3, Resend, Slack
  • Werkzeuge: pnpm workspaces, Turborepo, Node 24

Proprietäre Auftragsarbeit — das Repository bleibt privat.

— Stack
TypeScriptNestJSReactViteDrizzle ORMPostgreSQLRedisTurborepoTailwind CSSREST API