Back to portfolio

Share Wings - Multi-Brand Aircraft Dealership Platform

Four products - a multilingual marketing site, an agentic AI sales concierge, a HubSpot-replacement CRM, and a post-sale customer portal - for a Swiss aircraft dealership, shipped as one Next.js app on one Postgres.

Problem

A Swiss multi-brand aircraft dealership needed what is normally four separate products: a premium multilingual marketing site, a way to qualify and convert high-value leads, an internal sales workspace, and a post-sale customer experience. Stitching together a CMS, a chatbot SaaS, HubSpot, and a portal vendor would mean four design languages, four data silos, four bills, and four things that break independently - for a sales motion where a single mishandled six-figure lead is expensive, and where Swiss PII rules (FADP/GDPR) are not optional. The hard part isn't any one feature; it's keeping a system this broad coherent and trustworthy - consistent UI, a single source of truth for customer data, a real audit trail, and an AI assistant that's grounded and safe rather than a liability.

Solution

One Next.js application on one Postgres database, deployed once. Breadth is kept in check by a handful of hard, enforced invariants: all SQL goes through a typed repository layer, every Anthropic call goes through a single client wrapper, Zod validates every external input, and one design system (Porsche Design System v4) is lint-enforced across all four products. The marketing site is headless-CMS-driven (Storyblok) with full SEO and a per-model configurator. The AI sales concierge is an agentic RAG pipeline - hybrid retrieval (pgvector + full-text + rerank), versioned prompts, typed tools, three layers of guardrails, structural per-call cost accounting, and a 60-case eval suite that gates CI. The CRM replaces HubSpot with an atomic deal kanban, email + reply tracking, sequences, reporting, and tested row-level security. Background intelligence (buyer synthesis, a nightly next-best-action agent, call transcription) runs as durable Inngest jobs inside the same deployment - no worker fleet. Every external vendor degrades to a no-op or local fallback when its key is unset, so the whole platform runs on just a local Supabase and one Anthropic key. Every hard-to-reverse decision is recorded as an ADR with its costs - including a mid-project rewrite of the entire UI primitive layer.

Tech Stack

Next.js 16TypeScriptPorsche Design SystemStoryblok CMSSupabaseDrizzle ORMpgvectorClaude (Opus/Sonnet/Haiku)Voyage embeddingsInngestUpstash RedisResendAssemblyAIYousignSentryPostHogVercel

Ask about Julian Walder

Grounded in his real work

Hi! I'm Julian Walder's assistant. Ask me anything about his work, projects, or background in AI.