Inspiration
The brief described a problem that's deceptively simple: investments spread across too many platforms, no single place to see everything. But when I looked at what already exists in this space, I noticed something interesting — every portfolio tracker on the market is designed for beginners. Friendly colors, cartoon mascots, "health scores" that imply your portfolio might be sick. The tools are fine, but the identity is wrong for the person described in the brief: a serious European investor managing stocks, bonds, gold derivatives, real estate, and savings accounts across multiple platforms.
That gap became my thesis. I wasn't going to win by building more features than the competition. I was going to win by building a product that makes the target user feel like what they are — not a customer, but a principal.
Everything flowed from that decision: the noir bull icon, the dark-only interface, the matte black and gold palette, the language ("Command Center" instead of "Dashboard," "Holdings" instead of "Assets," "Optimizations available" instead of "Needs attention"). Vault isn't a tracker. It's an identity.
How I Built It
The app is built with Expo (React Native), Supabase on the backend, and RevenueCat for subscription management. I used a monorepo structure — frontend and backend in one repository — specifically to optimize for AI-assisted development with Claude Code and Codex.
My development approach was what I'd call vibe engineering: AI tools handled the rapid scaffolding of components, data layers, and screen layouts, while I manually refined every detail to match a strict design system. Monospace numbers for financial data. A single gold accent color used with restraint. Generous whitespace. Small-caps labels. Every screen was generated fast and polished by hand.
The AI Advisor feature routes through OpenRouter, assembling a portfolio snapshot client-side and streaming analysis back to the user. Price data for listed assets is auto-synced. Unlisted assets — real estate, fixed income, physical metals — are manual entry by design, because these asset classes don't have reliable public APIs and forcing automation would compromise accuracy.
One design decision I'm particularly proud of: the demo data button. I knew that hackathon judges would download the app and have about 30 seconds to evaluate it. Nobody is going to manually add 15 holdings to see if a portfolio tracker works. So the first screen of the app — and a card on the Command Center — offers one-tap demo data loading. A full, realistic portfolio populates instantly. I built the evaluation experience into the product.
Challenges
Competing on identity instead of features is a harder sell. It's easy to list integrations and data sources. It's harder to explain why your app feels different. I had to make sure the design coherence was so strong that the differentiation was self-evident the moment you opened the app — no explanation needed.
Real-time pricing for European assets is fragmented. US stocks have excellent API coverage; European brokerages and fixed-income platforms don't. I made the pragmatic decision to support auto-sync for globally listed assets (stocks, ETFs, crypto) and treat everything else as manual entry with smart notifications (maturity dates, coupon payments, rent collection). This matches how the target user actually thinks — they know the value of their apartment, they just need somewhere to put it.
Time. This is a hackathon. The design system, brand identity, and core UX are polished. Some edges are still rough. I prioritized the things that matter most for the judging criteria: audience fit, design coherence, and a monetization strategy that feels native to the product — not bolted on.
What I Learned
The biggest takeaway: brand is a product feature. In a category where every app has roughly the same capabilities (track assets, show charts, calculate allocation), the thing that actually differentiates is how the product makes you feel. I spent as much time on copy, color, and iconography as I did on code — and I think that's exactly the right ratio for this brief.
I also learned that AI-assisted development is genuinely viable for a hackathon-scale product, but only if you maintain strong opinions about quality. The AI gets you to 80% fast. The last 20% — the spacing, the animation timing, the exact shade of gold — is what makes it feel real. That's still human work.
Built With
- expo.dev
- openrouter
- reanimated
- revenuecat
- supabase
- zod
- zustand
Log in or sign up for Devpost to join the conversation.