Heretic Client Portal
Multi-tenant client portal: tickets, proposals, invoicing, time & credentials
- Client
- Personal
- Type
- NUXT / SUPABASE
- Year
- October 2026
- Views
A full-featured client portal built to run a development practice end to end — client dashboards, project and support ticket management, a proposals system with subtasks and an approval workflow, and a user-invitation flow with email notifications and domain-based auto-approval.
Collaboration features include a cross-entity tagging system for tasks, projects, and invoices, threaded comments with @mention support, and classified activity logs that separate human actions from automated events. The invoicing module handles shareable public invoices, recipient status tracking, time-entry and task linking, reference fields, detailed time reports, and print/PDF rendering via Cloudflare Puppeteer.
Since mid-2026 it has become multi-tenant. Postgres row-level security isolates each organization, people can belong to several orgs with a role in each, and orgs can be archived and restored. A shared credentials vault keeps history per credential, grants access to teams, and writes every read and change to an activity log that can't be edited.
Invoicing moved off FreshBooks. Past invoices were imported in July 2026 and billing now runs in the portal, with recurring invoices and retainer refills on scheduled Nitro tasks and approved fixed-price proposals added straight to an invoice. Time is logged from tickets. Approvals go to Slack with Approve and Reject buttons that check who clicked. An email request form creates a draft in BetterBlast, which goes to DocuVote for HTML approval. A monitoring section pulls status from DAEMONitor along with AdSense and Google Analytics numbers.
Built on Nuxt 4, Nuxt UI 4 and Supabase with Google OAuth, passkeys and one-time codes, and AWS SES for email. Deployed on Cloudflare at portal.heretic.ltd.