Virgiawan Listanto
WhatsApp me

Invisual HRIS

One internal portal for a design studio's 25 people, from the morning clock-in to the payslip.

Client
Invisual Studio
Field
Visual design studio
My role
Design, development, database, release
Year
2026
Lines
Run
HR dashboard: counts of staff present, late and working from home, with a live attendance log

The situation

Invisual Studio is a visual design studio in Bandung with about 25 people, and I work there as Studio Manager. Attendance, tasks, team chat and studio files used to live in about six separate subscription apps, so I built one portal to replace them.

The rules had to match how work runs in Indonesia: a pay period from the 21st to the 20th, national holidays and collective leave set by joint ministerial decree, remote-work and late-arrival permissions, and overtime traded for time off in lieu. Every hour runs on Jakarta time.

One login for the whole studio

Attendance with a selfie and location

Staff clock in and out with a selfie, and the system checks their location against a set area. HR sees who is in, late or working from home as it happens, with a timesheet heatmap, a leave calendar and a list of anomalies.

Timesheet heatmap: each employee's daily attendance for the 21 October to 20 November period

Payroll on the 21st-to-20th cycle

Payroll runs per period through three stages: draft, final, then send. PDF payslips go to each employee's email and can be downloaded again from their profile. Announcements can go out in bulk by email or WhatsApp.

Tasks, chat and a shared canvas

The task tracker shows work as a table, Kanban board, calendar, workload view or timeline. Team chat has channels, voice and video calls and screen sharing. On the design canvas, several people can draw and comment on the same file at the same time.

Studio finance and records

The owner records transactions, income and budgets by category, then reads the reports in the same module. An alert appears when a category passes 80% of its budget. Company documents, email and the list of software subscriptions sit in one archive.

Studio finance summary: income, expenses, profit and loss, running balance, budget alerts and a six-month trend

One working period

  1. Staff clock in with a selfie
  2. HR approves remote work, leave and late requests from one queue
  3. The team works through tasks and posts daily proof of work in chat
  4. Overtime is logged and turns into time off in lieu
  5. At the end of the period, payroll is finalised and payslips go out

Decisions that protect the business

  • Salaries stay with the people who need them

    Salary data is hidden from the staff directory, so colleagues can't see each other's pay. It's one of the fixes from the October 2026 security audit.

  • Attendance selfies don't stay forever

    Selfies sit in a private folder, open only through links that expire within an hour, and are deleted automatically after seven days. Daily proof-of-work screenshots in chat delete themselves after 30 days.

  • Finalised pay periods are locked

    Once payroll is finalised, the database refuses any change to that period. The figures on a payslip that has gone out always match the system.

  • Access follows the role

    There are five roles: HR or admin, owner, tracker manager, team member and freelancer. Freelancers can only use chat, and staff can only send direct messages to HR or a manager.

By the numbers

25
people use it every day
8
modules behind one login
6
subscription apps replaced
5
user roles with different access

Built with Next.js, React, TypeScript, Supabase (PostgreSQL), LiveKit for voice and video calls, PWA, Vercel.

Next roomPortal Klien
Chat on WhatsApp