Virgiawan Listanto
WhatsApp me

Portal Klien

A portal where a design studio's clients follow their project, approve drafts and pay invoices from their phone.

Client
Invisual Studio
Field
Visual design studio
My role
Design, development, database, release
Year
2026
Lines
Serve, Run
Site
portal.invisual.studio

The situation

Invisual Studio handles visual identity, illustration and packaging for many clients at once. Without one shared place, drafts, revisions, contracts and invoices get scattered across WhatsApp, email and Drive, and clients struggle to tell where their project stands or what they need to do next.

My work on the portal began with a security audit. Data in 11 tables had no limits on who could see it, and 66 of 92 access tests failed. After the fixes, every test passed. From there the portal grew through dozens of feature batches into the studio's full workflow.

Two sides, one project

Client home

Clients see the project status and the one next step they need to take. There's a countdown for the 48-hour feedback window, the revisions left, a stage timeline, contract signing and a PDF report.

Client portal home on a phone: project status and a project card with its target date
Five project stages, the 48-hour feedback window, revisions left and the contract signing menu, on a phone

Drafts and revisions

Clients approve a draft or ask for a major or minor revision, pin notes right on the artwork, and compare two versions with a slider. Long revision notes are summarised automatically into six points at most, and final files download as one ZIP.

Invoices and chat

Invoices are paid by QRIS, virtual account or e-wallet, or by uploading proof of transfer, and print as PDFs. Chat with the studio has automatic Indonesian-English translation, so clients and the team can each write in their own language.

The studio's workspace

The studio team moves projects across a Kanban board: briefing and MoU, design, review and revision, then done. The overview shows receivables, monthly revenue, overdue invoices and today's focus, with a button to send the client a reminder.

How a project runs

  1. The studio opens the project and the client signs the contract in the portal
  2. The studio uploads a draft and the client is notified in the app, by email and on their phone
  3. The client approves or asks for revisions within 48 hours
  4. The studio revises, and both sides can see how many revisions are left
  5. The client pays the invoice and downloads the final files

Decisions that protect the business

  • The studio side is for studio emails only

    Access to the studio side is checked by the same rule in the app and in the database. An email address that merely imitates the studio's domain is rejected, so outsiders can't reach every client's data.

  • Approval links can be revoked

    People on the client's side without an account, such as a manager who has to sign off, can open the draft through a private link. The link expires after 14 days and the studio can revoke it at any time.

  • Paid only when the payment gateway confirms

    An invoice only turns paid after the payment gateway confirms the payment. Confirmations without the studio's secret code are rejected, so nobody can fake a paid status.

  • Every bug gets its own test

    Every bug ever found gets a named test so it can't come back, and 145 access scenarios are tested directly against the database.

By the numbers

145
access scenarios tested
3
ways to pay online: QRIS, VA, e-wallet
14
days an approval link stays valid
4
stages on the studio's Kanban board

Built with Next.js, React, TypeScript, Supabase (PostgreSQL), Xendit, Resend, PWA.

Next roomAliya Syifaa
Chat on WhatsApp