The project
Most freelancers cobble together five different tools to run their business — and it shows. I built one thing that does all of it. The TRS Client Portal is a full-stack web app with two sides: a client-facing portal where every client has their own private space to track project status, sign contracts, pay invoices, access files, and message the studio — and a full admin panel where I manage clients, leads, quotes, projects, approvals, and settings. Built on Next.js 16 with Prisma and PostgreSQL, Stripe for payments, AWS S3 for file storage, and Resend for transactional email. Fully branded, fully self-hosted on Railway.
How I helped
- Client portal: dashboard, project status tracker, contracts, invoices, files, messages, and approvals
- Admin panel: full CRM with leads, clients, quotes, projects, contracts, invoices, and settings
- Stripe integration for direct invoice payment from within the portal
- AWS S3 file storage for secure deliverable handoff and shared assets
- NextAuth v5 with role-based access — clients only ever see their own data
- Resend for transactional emails (invites, invoice notifications, approvals)
- Fully responsive — pixel-perfect on desktop and mobile
- Deployed on Railway with PostgreSQL — zero per-seat fees, full ownership