Project Story
Inspiration
Flowzo was inspired by a shared interest within the team P2P lending and the inefficiencies we kept seeing in traditional credit markets. We were exploring how blockchain and DeFi were opening up new models for connecting borrowers and lenders directly. This got us thinking about a very specific underserved problem: people who are locked out of affordable short-term credit specifically because bills come at inconvenient times. It also creates an additional opportunity to earn yield.
What it does
Borrowers connect their bank account through TrueLayer and get a personalised 30-day cash flow forecast based on their past transactions. When a bill within the next 30 days is predicted to cause an overdraft, Flowzo flags it and suggests shifting it to a date after the user receives his income, for a small flat fee which is much cheaper than an overdraft charge.
This shifting is made possible by the lender side, where everyday people can deposit idle cash into a lending pool and earn a return by funding those shifts. Risk is graded and returns are priced accordingly.
How we built it
We used a Next.js monorepo, with Supabase as our backend handling authentication, which is a Postgres database with row-level security, along with six Edge Functions that form the core of our data pipeline. Open Banking data is pulled in real-time via TrueLayer's sandbox API, processed through a feature engineering pipeline to detect recurring payments and forecast 30-day cash flows, and then passed to an AI decision engine that generates bill-shift proposals. Risk is graded A/B/C using an XGBoost model trained on the Home Credit Default Risk dataset, with a scorecard that converts probability of default into a 300–850 credit score. AI agents are used to enhance both the borrower and the lender experience. On the borrower's side, the agent explains why the borrower has a specific credit score and how it can be improved, it provides an overview of the high-priority upcoming bills, it makes a simulation of how the user's calendar would improve by cancelling specific subscriptions, and it provides advice to the user on shifting payment dates. For the lender, the agent provides an overview of the risk level in his portfolio. The P2P lending pool is managed through atomic database functions ensuring idempotent settlements, and the entire trade lifecycle from proposal acceptance through to repayment is event-sourced end to end. The app is deployed on Vercel and built to Monzo's design language using Tailwind CSS and shadcn/ui.
Frontend
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS v4
- shadcn/ui
- D3.js (charts)
- Supabase JS client
- Sonner (toast notifications)
Backend
- Supabase (Postgres database, Auth, Edge Functions, Realtime)
- Supabase Edge Functions (Deno runtime)
- TrueLayer Open Banking API
- Claude Haiku (Anthropic API)
- XGBoost ML model (FastAPI, Python)
Infrastructure
- Vercel (deployment)
- pnpm + Turborepo (monorepo)
- GitHub (version control)
- Vitest (unit testing)
- Playwright (E2E testing)
Challenges we ran into
Back-end: finding right way to estimate credit risk. We initially went with LendingClub dataset but found the features were not great so swapped to Home Credit Default Risk (HDCR). Six features were selected from HDCR and were used to train a model to predict target variable default risk. Struggled with using each new transaction to update credit risk based on amount and whether user went below 0. We also redistributed data since HCDR contained low proportion of high risk borrowers. We also had difficulty connecting real bank details.
Front-end: thinking from the user's perspective to implement an impactful UI. We initially wanted to gamify the process of matching lenders to borrowers with a bubble pop layout, but we decided to forego this option for an automated allocation based ranking lenders by 3 key metrics: APR compatibility, available headroom and diversification.
Accomplishments that we're proud of
Making specialised credit market with banking integration. Creating risk scoring that updates after every transaction and cash flow optimisation to solve a unique problem.
What we learned
How to connect open banking data, machine learning for credit risk scoring, how to create front-end server, edge functions, how to use Supabase and quant analysis API deployed separately.
What's next for Flowzo
Steps to bring Flowzo fully production-ready: -- No FCA authorisation -- TrueLayer is sandbox only -- Set up error monitoring with Sentry
Built With
- claude-api
- db-row-level-security
- edge-functions
- machine-learning
- next.js
- pnpm
- postgresql
- realtime-websockets
- shadcn/ui
- supabase
- tailwind
- truelayer
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.