06 / 10 · Support and licence portal
CorpusTicketSys
Web portal where Corpus customers get support and manage their licences and apps.

- Commits
- 216
- Modules
- 27
- Languages
- hr · en
- Stack
- Next.js 15 · Supabase
CorpusTicketSys is the web portal shared by Corpus customers, distributors and the support team. Customers open tickets, talk to support, request access to the quick apps and see their licences. The team handles tickets, users, licences, render packages and usage analytics in one place.
I built it alone in Next.js and Supabase and have kept extending it since April 2025.
Context
- Corpus sells several desktop and web apps, and every customer needs support, licences and access to the right apps. The portal brings that into one place for customers, distributors and the support team.
What I built
- Customer login with a Corpus key or e-mail and phone verification, plus separate logins for operators and distributors.
- Tickets with discussion, attachments, notifications, labels, statuses and priorities.
- Admin modules for users, and roles with permissions per module and per action.
- Licence and device management for the quick apps, including licence rollout, quickRender render packages and billing.
- Usage analytics with charts per app and device, and an API distributors use to create requests.
How it works
- Next.js App Router with Supabase for auth, data and storage. Uploads go straight from the browser to Supabase through signed URLs.
- TanStack Query and TanStack Table for data, with Radix UI and Tailwind CSS for the interface.
- Licence and usage data come from the Corpus licence backend through server routes.
Screens
Screens show demo data.
The support team's ticket queue with the selected ticket's details open beside it. The admin dashboard shows open tickets, team workload and new requests per month. A customer follows a licence activation request and talks with support. The customer's home page with shortcuts, their requests and recent activity. The customer dashboard on a phone. Each role's permissions are switched on or off per module and action. Usage analytics show how customers use each app, day by day.
Outcome
- In production, used by Corpus customers, distributors and the support team.
- Interface in Croatian and English.