chasedesk-invoices

byCrezia

Build ChaseDesk, a modern SaaS web application that helps freelancers and small businesses track unpaid invoices and get paid faster. Users can sign in using Supabase magic-link authentication, upload invoices through CSV files, view overdue invoices grouped by how late they are, and generate editable payment reminder messages in friendly, firm, and final tones. Each invoice should have Email and WhatsApp buttons that open the user's email client or WhatsApp with a prefilled message. The app must support multiple currencies, show overdue totals separately for each currency, and allow users to mark invoices as paid. Use Next.js, TypeScript, and Supabase with PostgreSQL and strict row-level security. Build a clean, responsive, professional interface suitable for international customers. Keep the first version focused on invoice tracking and reminders. Do not add automatic email sending, AI features, accounting integrations, team accounts, or unnecessary features. Important: Start by inspecting the project and proposing the implementation plan with a credit estimate. Do not start coding until I approve the plan.

LandingOverdue InvoicesLoginImport InvoicesInvoice Details
Landing

Comments (0)

No comments yet. Be the first!

Architecture

ChaseDesk Service Networkv1
Email Delivery
Supabase Platform
Next.js Web App
Client
Supabase Auth Email Sender
Supabase Auth Magic Link
Supabase PostgREST Client
PostgreSQL with RLS
Next.js App Router + TypeScript
Server Routes and Actions
Browser
User Email Client
WhatsApp Client
Landing design preview
Landing: Read product promise
Login: Enter email address
Login: Request magic link
Login: Re-request magic link
Login: Follow emailed link
Overdue Invoices: View empty state
Import Invoices: 1. Drop CSV file
Import Invoices: 2. Review preview table
Import Invoices: 3. Fix file and re-upload
Import Invoices: Confirm import
Import Invoices: Review import summary
Overdue Invoices: 1. Review per-currency totals
Overdue Invoices: Focus search with slash
Overdue Invoices: 2. Retry failed fetch
Overdue Invoices: Open invoice row
Invoice Details: Select reminder tone
Invoice Details: Edit message body
Invoice Details: Open in Email
Invoice Details: Open in WhatsApp
Invoice Details: Copy message manually
Invoice Details: Mark invoice paid
Overdue Invoices: 1. Mark invoice paid from row
Overdue Invoices: 2. Retry failed mark-as-paid
Overdue Invoices: Continue reviewing invoices
Landing design preview
Landing: Read product promise
Login: Enter email address
Login: Request magic link
Login: Re-request magic link
Login: Follow emailed link
Overdue Invoices: View empty state
Import Invoices: 1. Drop CSV file
Import Invoices: 2. Review preview table
Import Invoices: 3. Fix file and re-upload
Import Invoices: Confirm import
Import Invoices: Review import summary
Overdue Invoices: 1. Review per-currency totals
Overdue Invoices: Focus search with slash
Overdue Invoices: 2. Retry failed fetch
Overdue Invoices: Open invoice row
Invoice Details: Select reminder tone
Invoice Details: Edit message body
Invoice Details: Open in Email
Invoice Details: Open in WhatsApp
Invoice Details: Copy message manually
Invoice Details: Mark invoice paid
Overdue Invoices: 1. Mark invoice paid from row
Overdue Invoices: 2. Retry failed mark-as-paid
Overdue Invoices: Continue reviewing invoices