AI-powered wealth simulator that replaces chat walls with interactive financial widgets.
Problem β’ Solution β’ Features β’ Architecture β’ Design β’ Get Started
Traditional AI financial assistants share a critical UX flaw: cognitive overload through walls of text.
When a user asks "How should I save for a house?", existing chatbots return 500+ words of dense financial advice β paragraphs about compound interest, risk diversification, and budgeting rules. The user reads the first two sentences, glazes over, and closes the app.
78% of users abandon AI chat interfaces within the first 3 interactions due to information density and lack of actionability.
The problem isn't the AI's intelligence β it's the interface.
Plain text is the wrong medium for financial planning. Numbers need charts. Choices need buttons. Goals need cards. Projections need visualizations.
OnyxFi doesn't just talk about your finances β it renders them.
We built the first Generative UI (GenUI) personal finance assistant. Instead of returning paragraphs of text, our AI agent dynamically generates interactive Flutter widgets β goal selection cards, input fields, projection charts, and alert badges β directly inside the conversation flow.
The AI doesn't just tell you to save βΊ2,000/month. It shows you a live projection chart of your wealth growth over 10 years, lets you adjust the savings slider, and reacts with updated strategic advice in real-time.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Traditional Chatbot OnyxFi (GenUI) β
β βββββββββββββββββ ββββββββββββββββ β
β β
β "You should save βββββββββββββββββββββββ β
β βΊ2,000 per month β π π π ποΈ β β
β for 10 years to β Pick your goals β β
β reach your goal β [Interactive Cards] β β
β of buying a house. βββββββββββββββββββββββ β
β Consider investing β
β in index funds with βββββββββββββββββββββββ β
β a 7% annual return. β π Wealth Growth β β
β Also, you should β ββββββββββ 83% β β
β create an emergency β [Live Chart] β β
β fund first..." βββββββββββββββββββββββ β
β β
β π΄ User left. π― User engaged. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- User speaks naturally β "I want to buy a car"
- Gemini AI understands intent β Determines the best UI widget to render
- A2UI protocol streams JSON β Two-step
createSurface+updateComponents - Flutter renders the widget β Interactive
GoalSelectionCardappears in chat - User interacts β Selection feeds back to AI for the next step
- Loop continues β AI adapts, deepens, and builds the financial plan visually
No forms. No sign-up walls. The AI greets you warmly (in Turkish), validates your goals with strategic insights, and dynamically generates selection cards for financial objectives β Home, Car, Retirement, Education, Travel, Emergency Fund.
When enough data is collected, the AI renders FinancialProjectionChart widgets powered by fl_chart β showing compound growth projections, savings timelines, and investment scenarios. The data points are computed and structured by the AI itself.
OnyxFi doesn't just answer questions β it orchestrates the entire financial planning journey:
- Celebrates your goal selection with strategic context
- Asks follow-up questions via multi-choice
GoalSelectionCardwidgets (e.g., "Car preference: Economy vs. Luxury vs. Electric?") - Gradually collects financial data through contextual
DynamicInputFieldwidgets - Surfaces warnings and opportunities via
AlertActionBadgecomponents
Every interaction feels premium. The "Ambient Transparent Glass" design system uses backdrop blur, frost borders, and Solar Orange accents over a deep Midnight Ink background β creating a spatial, depth-rich experience.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β OnyxFi Architecture β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β FLUTTER FRONTEND β β
β β β β
β β βββββββββββββββ ββββββββββββββββ ββββββββββββββββββ β β
β β β Onboarding β β Dashboard β β Settings β β β
β β β View β β View β β View β β β
β β ββββββββ¬βββββββ ββββββββ¬ββββββββ ββββββββββββββββββ β β
β β β β β β
β β ββββββββ΄βββββββββββββββββ΄ββββββββ β β
β β β GenUI Surface Engine β β β
β β β βββββββββββββββββββββββββββ β β β
β β β β SurfaceController β β β β
β β β β ββ GoalSelectionCard β β β β
β β β β ββ DynamicInputField β β β β
β β β β ββ ProjectionChart β β β β
β β β β ββ AlertActionBadge β β β β
β β β βββββββββββββββββββββββββββ β β β
β β ββββββββββββββββ¬βββββββββββββββββ β β
β β β β β
β β ββββββββββββββββ΄βββββββββββββββββ β β
β β β A2uiTransportAdapter β β β
β β β ββ A2uiParserTransformer β β β
β β ββββββββββββββββ¬βββββββββββββββββ β β
β βββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ β
β β Streaming Chunks β
β βββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββ β
β β GOOGLE GEMINI API β β
β β gemini-3-flash-preview β β
β β System Instruction: A2UI v0.9 Protocol β β
β β + Empathetic Wealth Manager Persona β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PYTHON BACKEND β β
β β FastAPI + Supabase (PostgreSQL) β β
β β User profiles, financial data persistence β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Component | Technology | Purpose |
|---|---|---|
| Framework | Flutter 3.11+ | Cross-platform (Web, Android, iOS) |
| GenUI Engine | genui: ^0.8.0 (by Very Good Ventures) |
A2UI protocol parsing, surface lifecycle management |
| State Management | Provider | App-wide state (onboarding progress, navigation) |
| Charts | fl_chart |
Financial projection visualizations |
| Networking | google_generative_ai |
Direct Gemini API streaming |
| Config | flutter_dotenv |
Secure API key management |
The AI operates under a strict system instruction that enforces:
- A2UI v0.9 Protocol: Every widget render requires a two-step JSON sequence β
createSurface(registers the surface with a unique ID and catalog reference) followed byupdateComponents(populates with flat component definitions). - Empathetic Persona: The model acts as a premium Wealth Manager, never asking for raw financial numbers immediately. It validates choices with rich encouragement, discusses strategic implications, and gradually deepens the conversation.
- Structured Output Discipline: All natural language text is completed BEFORE any A2UI JSON blocks are emitted β preventing chaotic interleaving that would break the parser.
| Component | Technology | Purpose |
|---|---|---|
| API Framework | FastAPI | RESTful endpoints for user data |
| Database | Supabase (PostgreSQL) | User profiles, financial goals, session persistence |
| Auth | Supabase Auth | Secure user authentication |
OnyxFi's visual identity is built on a custom design system inspired by spatial computing interfaces and premium fintech aesthetics.
| Token | Value | Usage |
|---|---|---|
| Midnight Ink | #0A0A0F β #141420 |
Primary background gradient |
| Solar Orange | #FF6B35 |
Accent color, CTAs, active states |
| Frost Border | rgba(255,255,255, 0.20) |
Glass panel edge definition |
| Snow White | #F5F5F7 |
Heading text |
| Silver Mist | #B0B0B8 |
Body text |
| Stone Grey | #6B6B78 |
Captions, secondary text |
Every UI panel follows a strict layering protocol:
ClipRRect (border-radius: 20px)
ββ BackdropFilter (blur: 20px)
ββ Container
ββ gradient: white 7% β white 5% (top-left to bottom-right)
ββ border: 1px solid rgba(255,255,255, 0.20) β "Frost Border"
ββ box-shadow: 0 8px 32px rgba(0,0,0, 0.30)
| Scale | Size | Weight | Tracking |
|---|---|---|---|
| Heading | 32px | 700 (Bold) | -0.025 |
| Subheading | 20px | 600 (Semi) | -0.022 |
| Body | 16px | 400 (Regular) | -0.020 |
| Body SM | 14px | 400 (Regular) | -0.013 |
| Caption | 12px | 400 (Regular) | -0.007 |
Font: Inter (Google Fonts) β Optimized for financial data legibility.
- Flutter 3.11+ (Install Guide)
- Python 3.10+ (for the backend)
- Google Gemini API Key (Get one here)
git clone https://github.com/ErenBalkis/SyncDev.git
cd SyncDevCreate a .env file in the project root:
# Flutter β Gemini AI Engine
GEMINI_API_KEY=your_gemini_api_key_here
# Python Backend β Supabase
SUPABASE_URL=your_supabase_url_here
SUPABASE_KEY=your_supabase_key_hereflutter pub get# Web (recommended for demo)
flutter run -d chrome
# Android
flutter run -d android
# iOS
flutter run -d iospip install -r requirements.txt
uvicorn main:app --reload --port 8000onyxfi_frontend/
βββ lib/
β βββ main.dart # App entry point & Provider setup
β βββ core/
β β βββ constants/colors.dart # Midnight Ledger color tokens
β β βββ theme/app_theme.dart # Full ThemeData implementation
β β βββ network/gemini_client.dart # Gemini API + A2UI system instruction
β βββ catalog/
β β βββ component_registry.dart # OnyxCatalog β widget registry
β β βββ goal_selection_card.dart # Interactive goal picker widget
β β βββ dynamic_input_field.dart # Contextual data input widget
β β βββ financial_projection_chart.dart # fl_chart visualization widget
β β βββ alert_action_badge.dart # Warning/opportunity badge widget
β βββ views/
β β βββ onboarding_view.dart # Conversational onboarding flow
β β βββ dashboard_view.dart # Main chat + analytics + settings
β βββ widgets/
β β βββ glass_container.dart # Reusable glassmorphic panel
β β βββ chat_bubble.dart # Styled message bubble
β βββ models/
β βββ onboarding_state.dart # Onboarding progress state
β βββ chat_message.model.dart # Chat message data model
βββ main.py # FastAPI backend entry point
βββ database.py # Supabase client configuration
βββ .env # API keys (gitignored)
βββ pubspec.yaml # Flutter dependencies
|
Team SyncDev |
Category Agentic AI + FinTech |
AI Model Gemini 3 Flash Preview |
Key Innovation Generative UI (A2UI v0.9) |
Built with πΆ by Team SyncDev
Where artificial intelligence meets intentional design.





