Ambient Banking Assistant β AI-Native Financial Copilot DemoΒΆ
TL;DR: A strategic product demo that shows what banking could feel like in 2028. Natural language replaces app navigation β the AI understands intent, reasons over financial context, applies policy guardrails, and executes safe banking actions. Designed to land with stakeholders in under 3 minutes.
Stack: React 19 β’ Vite β’ Framer Motion β’ Client-side only (no backend, no API keys)
β¨ FeaturesΒΆ
- π± Ambient Entry - iPhone home screen with Apple Intelligence rainbow border; Siri query flows directly into the banking session
- π Biometric Auth - Face ID scan animation before the banking app is revealed
- π¬ Natural Language Banking - Intent engine parses queries like "Can I afford a Β£900 holiday?" into structured actions with full reasoning traces
- π‘οΈ Policy Engine - Transfer rules enforced visually (min balance Β£1,000; confirmation required above Β£500); policy outcomes shown inline
- π§ Reasoning Drawer - Expandable AI trace panel showing intent confidence, reasoning steps, financial calculations, and policy outcome β makes it feel like a real AI system, not a UI mock
- π Structured UI Cards - Every assistant response renders rich inline cards: breakdown tables, animated bar charts, action buttons
- β‘ 2028 / Future Mode - Toggle frictionless mode: transfers execute without confirmation, reasoning shows "friction waived" language, continuous biometric session narrative
- ποΈ Presenter Controls - Play/pause autopilot, prev/next scene, scene jump, reset, dark/light theme toggle
π¬ Demo FlowΒΆ
| Scene | Name | What Happens |
|---|---|---|
| 0 | Ambient Entry | iPhone home screen + Apple Intelligence glow; user types query to Siri |
| β | Biometric Auth | Face ID animation; in 2028 mode the Siri query passes through automatically |
| 1 | Financial Awareness | "How much money can I spend this month?" β Monthly breakdown card with Safe-to-Spend figure |
| 2 | Spending Insight | "Where does my money go each month?" β Category analysis with animated bar chart |
| 3 | Affordability Reasoning | "Can I afford a Β£900 holiday?" β Budget impact, savings goal delay, AI reasoning trace |
| 4 | Safe Transfer | "Move Β£600 from savings to current" β Policy engine fires, approval confirmation required |
| 5 | Behavioural Intelligence | Proactive insight card β 3-month restaurant spend trend (Jan Β£265 β Feb Β£298 β Mar Β£420) |
| 6 | Intelligent Support | Multi-step: unknown charge β dispute β merchant block β human specialist handoff |
| 7 | Platform Overlay | Architecture stack + business value metrics for decision-makers |
π§ ArchitectureΒΆ
graph TB
Presenter[ποΈ Presenter Controls] -->|DOM events| App[App.jsx\nDemo Lifecycle]
App -->|showHomeScreen / showAuthScreen| Intro[HomeScreenIntro\nBiometricAuthScreen]
App -->|demoPhase / futureMode| Panel[ConversationPanel.jsx\nChat UI + Autopilot]
Panel -->|user message| Intent[intentEngine.js\nRegex NLU β intent + params]
Intent --> Policy[policyEngine.js\nTransfer rules validation]
Policy --> Handler[Intent Handler\nbuilds trace + UI card]
Handler --> Context[BankingContext.jsx\nGlobal state + mock operations]
Handler --> Drawer[ReasoningDrawer.jsx\nAI trace panel]
Handler --> Card[Inline React Card\nbreakdown / chart / buttons]
App -->|showPlatformOverlay| Overlay[PlatformOverlay.jsx\nArchitecture + business value]
subgraph "Data Layer (client-side only)"
Context --> MockData[mockData.js\nSingle source of truth\nbalances Β· expenses Β· income Β· goals]
end
π― What Makes This SpecialΒΆ
No Backend, Full CredibilityΒΆ
Every chart, reasoning trace, policy check, and insight card is deterministic and pre-authored in mockData.js. There are no live LLM calls, no API keys, no environment variables. The demo runs entirely in the browser β it can be deployed as a static site and presented anywhere with zero infrastructure risk.
Policy as a First-Class UI ConcernΒΆ
The transfer flow surfaces policy outcomes visually: CheckCircle / AlertTriangle icons with explicit policy reason text ("Transfer exceeds confirmation threshold", "Minimum balance maintained"). This turns a backend rule into a trust signal that stakeholders can see and understand.
Reasoning Drawer β The "AI" Feel Without the AIΒΆ
The ReasoningDrawer anchored to the left of the phone frame shows a structured trace object: intent confidence score, step-by-step reasoning, financial calculations, and policy outcome. In 2028 mode it adds futureNote fields explaining the contrast. This single component is what makes the demo feel like a real AI system rather than a click-through prototype.
Presenter-Friendly AutopilotΒΆ
The control bar at the bottom drives an async autopilot loop with realistic typing delays. Scene skipping works by throwing a 'Skip' error inside a wait() helper β the presenter can jump to any scene mid-flow without state corruption.
π Technical HighlightsΒΆ
State & Event ArchitectureΒΆ
- All banking state lives in
BankingContext.jsxβ balances, expenses, operations β consumed via React context App.jsxβConversationPanel.jsxcommunication uses a custom DOM event bus (START_AUTOPILOT_DEMO,RESET_CHAT,AUTOPILOT_CTRL,DEMO_PHASE_UPDATE) β deliberately decoupled so either side can be replaced independentlydemoCoreref ({ active, playing, skip, target }) drives the autopilot loop without triggering re-renders
Intent + Policy PipelineΒΆ
intentEngine.jsβ regex-based NLU extracts intent and parameters from free-text inputpolicyEngine.jsβ stateless rule evaluator: minimum balance Β£1,000, confirmation threshold Β£500; returns{ status, reason }used directly in UI card rendering
Styling & AnimationΒΆ
- iOS device frame (390Γ844px) in pure CSS with Dynamic Island pseudo-element
- Framer Motion throughout for all interactive transitions
- Full light/dark theme via CSS custom properties on the root element; brand colours:
--brand-blue: #00395D,--brand-cyan: #00AEEF
π Key MetricsΒΆ
- Demo length: 8 scenes completable in under 3 minutes (autopilot)
- Infrastructure: Zero β fully static, no backend, no API keys
- Single source of truth: All financial figures in one file (
mockData.js) β change once, propagates everywhere - ESLint: Flat config (ESLint 9+), no suppressions
This project demonstrates how deterministic, presenter-friendly demos can create genuine stakeholder conviction β and how thoughtful UI design (policy indicators, reasoning traces, structured cards) can make a no-backend prototype feel like production AI.