Hackathon-ready fintech operations platform for cashflow visibility, AI analysis, invoice collection, and voice call automation.
Float is a full-stack AI CFO app built for small businesses that need help with:
- cashflow forecasting
- payroll risk awareness
- overdue invoice collections
- incident tracking + AI learnings
- conversational finance support
It combines a React frontend with Supabase (Auth, Postgres, Realtime, Edge Functions) and an AI + voice automation stack (Claude, Twilio, ElevenLabs).
- End-to-end product flow: auth -> onboarding -> dashboard -> AI chat -> calls -> incidents
- Real AI features running in Supabase Edge Functions (Claude-powered)
- Voice collections workflow via Twilio + ElevenLabs
- Demo fallback mode so the app still feels complete without production data
- Clean frontend structure (React + Tailwind + shadcn/Radix)
- Easy local startup (
npm install && npm run dev)
- KPI cards (balance, payroll coverage, outstanding invoices, runway)
- Cashflow projection chart
- Invoice table and invoice PDF generation
- Smart Chase (AI ranking of debtors to prioritize)
- Weekly Digest (AI-generated financial summary)
- Streaming chat UI powered by Supabase Edge Function
chat - Claude-backed responses with account context
- Pulls learnings from incidents + call history into assistant context
- Demo fallback chat content if no account/chat data exists
- Chat-initiated debt collection call runs (bulk debtor calling intent)
- Overdue invoice call queue
- Single-call and bulk call initiation
- Live/realtime call history updates
- Call outcomes, transcripts, status, and duration review
- Incident timeline and severity tracking
- AI learnings display
- Operational context around cashflow/payroll issues
- Business profile and finance settings
- Payroll and integration status controls
src/pages/-> route-level screens (Dashboard,Chat,Calls,Incidents,Settings,Auth,Onboarding)src/components/dashboard/-> dashboard widgets (KPI cards, cashflow chart, weekly digest, smart chase, invoice table)src/components/ui/-> reusable UI primitives (shadcn/Radix-based)src/hooks/-> auth/account/toast/mobile hookssrc/integrations/supabase/-> typed Supabase client + generated DB typessrc/lib/-> formatting, demo content/data helpers
supabase/functions/chat-> Claude streaming assistantsupabase/functions/_shared/claude.ts-> shared Claude client + SSE adapter + JSON parsing helperssupabase/functions/analyze-anomalies-> AI anomaly detection on transactionssupabase/functions/smart-chase-> AI debtor prioritizationsupabase/functions/weekly-digest-> AI weekly finance digestsupabase/functions/extract-invoice-> AI invoice field extraction (PDF/image)supabase/functions/make-call-> Twilio outbound call initiationsupabase/functions/twilio-media-stream-> Twilio <-> ElevenLabs audio bridgesupabase/functions/twilio-status-callback-> call status syncsupabase/functions/send-payment-link/process-card-payment-> collections payment workflowssupabase/functions/monzo-webhook-> transaction ingestion hooks
Core tables used by the app include:
accountstransactionsinvoicescallschat_messagesincidentsai_insightscashflow_projections
Realtime is actively used for parts of the UX (e.g. calls/invoices/incidents/insights).
- React 18 + TypeScript
- Vite
- React Router
- Tailwind CSS
- Radix UI / shadcn patterns
- Recharts
- React Query
- Supabase (Auth, Postgres, Realtime, Edge Functions)
- Supabase CLI
- Anthropic Claude (Edge Functions)
- Twilio (voice calls)
- ElevenLabs (voice agent + TTS)
- Stripe (payments)
src/
components/
dashboard/
ui/
hooks/
integrations/supabase/
lib/
pages/
supabase/
config.toml
migrations/
functions/
_shared/claude.ts
chat/
analyze-anomalies/
smart-chase/
weekly-digest/
extract-invoice/
generate-invoice-pdf/
make-call/
twilio-media-stream/
twilio-status-callback/
elevenlabs-conversation-token/
tts-audio/
process-card-payment/
send-payment-link/
monzo-webhook/
Hackathon Challenges intigrations/
Claude.md
Elevenlabs.md
Lovable.md
Stripe.md
Susquehanna.md
incident.md
- Node.js 18+
- npm
- Supabase CLI (optional but recommended for functions/migrations)
npm install
npm run devVite dev server runs on:
http://localhost:8080
npm run dev
npm run build
npm run preview
npm run lint
npm run testRequired:
VITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEYVITE_SUPABASE_PROJECT_ID
Optional:
VITE_ELEVENLABS_AGENT_ID(fallback exists in code)
Example:
VITE_SUPABASE_PROJECT_ID="your-project-ref"
VITE_SUPABASE_PUBLISHABLE_KEY="sb_publishable_..."
VITE_SUPABASE_URL="https://<project-ref>.supabase.co"ANTHROPIC_API_KEY(required)ANTHROPIC_MODEL(optional, defaults toclaude-sonnet-4-5)ANTHROPIC_VERSION(optional, defaults to2023-06-01)
TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_PHONE_NUMBERELEVENLABS_API_KEYELEVENLABS_AGENT_ID(optional fallback exists)
STRIPE_SECRET_KEYAPP_BASE_URLorFRONTEND_URLEMAIL_PROVIDER(resendorsendgrid)EMAIL_FROMRESEND_API_KEY(if using Resend)SENDGRID_API_KEY(if using SendGrid)
SUPABASE_URLSUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY
supabase link --project-ref <your-project-ref>This repo is currently configured in supabase/config.toml with:
cchznuyuomvcpftqtmnw
supabase db push --linked -p "<db-password>"supabase secrets set --project-ref <your-project-ref> \
ANTHROPIC_API_KEY="..." \
ANTHROPIC_MODEL="claude-sonnet-4-5" \
ELEVENLABS_API_KEY="..." \
TWILIO_ACCOUNT_SID="..." \
TWILIO_AUTH_TOKEN="..." \
TWILIO_PHONE_NUMBER="..." \
STRIPE_SECRET_KEY="..."Deploy all:
supabase functions deploy --project-ref <your-project-ref> --use-apiOr deploy core AI functions only:
supabase functions deploy chat smart-chase weekly-digest analyze-anomalies extract-invoice --project-ref <your-project-ref>chat-> Claude-powered streaming assistant with incident + call context memorysmart-chase-> Claude ranks overdue/unpaid invoices by chase priorityweekly-digest-> Claude generates executive finance summary JSONanalyze-anomalies-> Claude detects unusual transaction patterns and writes AI insightsextract-invoice-> Claude extracts invoice fields from uploaded docs (PDF/images)
- User triggers calls from
/callsor via AI chat intent make-callcreates Twilio outbound call- Twilio streams audio to
twilio-media-stream - ElevenLabs conversational agent handles live voice interaction
twilio-status-callbackupdates call outcome/duration- Call records become visible in realtime on
/calls
- Some UI areas still include hardcoded visual styles tuned for the current light-first design.
- Voice calling requires real Twilio + ElevenLabs credentials and reachable Supabase functions.
- Large production bundles are currently generated (Vite build warns about chunk size).
- Supabase function auth settings in
supabase/config.tomlintentionally disable JWT verification for several endpoints; review before production hardening.
- Do not store real API keys in git or plaintext docs.
- Use
supabase secrets setfor all server-side credentials. - If a key was ever pasted into chat/logs, rotate it before production/demo day.
Hackathon project codebase for Float AI CFO prototype. Add your final license here before public release.
