Kasir Kaki Lima
An offline-first point-of-sale app for street vendors and small shops, with stock, customer credit, reports and QR table ordering.
Web Applications
Browser-based software for work that has to be reachable from any device with a link: search tools, configurators, dashboards and the APIs behind them.
A web application is the right default when your users are spread across devices you do not control and you want to ship changes without asking anyone to update. Nothing to install, one codebase to maintain, and every screen has a URL that can be shared, bookmarked and indexed.
The web work in this portfolio covers two different shapes. Job Wire is a data-heavy application: an Express API that pulls listings from several sources, de-duplicates them and ranks them against an uploaded CV, with a Vue 3 and Quasar interface on top. Workspace Designer is an interaction-heavy front end: a 3D house designer in Next.js and Three.js where every choice updates the scene and a running monthly price.
Portfolio
An offline-first point-of-sale app for street vendors and small shops, with stock, customer credit, reports and QR table ordering.

A place to write stories and get things off your chest online, anonymously if you want, with full control over who can read them.

A reporting library with a drag-and-drop designer, so clients change their own invoice, payslip or report-card layouts.
A job aggregator for the Indonesian market that ranks listings against your CV without sending the CV anywhere.

A 3D house designer in the browser for choosing a house type, furnishing each room with rented furniture and seeing the monthly cost.

A premium company profile and interactive appointment booking website for a modern urban barbershop and hair architecture brand.
A gallery website for tribal art, antiques and cultural objects, with a searchable catalogue, artwork pages, regional collections and editorial stories.

A sample one-page company profile website for a small business, from the introduction and price list to the order button.

A sample company profile website for a motorcycle workshop, from the service and price list to a WhatsApp booking button.

A sample price catalogue website for a laundry, with per-kilo prices, turnaround times and a WhatsApp order button for every service.

A classic-RPG digital wedding invitation line with a brand landing page, a World Select catalog, and four demo worlds that each have their own characters, colors, music, and mechanics.

An 8-bit RPG-themed digital wedding invitation featuring a playable mini-game, chiptune synthesizer audio, and live RSVP.

An opulent tabletop board game wedding invitation featuring a 3D dice roll mechanic, lucky spin wheel, and event cards.

A pixel-art RPG adventure-themed digital wedding invitation with quest map, character profiles, playable mini-game, and a 7-chapter interactive storyline.
01
Aggregating listings, records or feeds from several systems into a single searchable interface, with caching so the upstream APIs are not hit on every request.
Configurators and calculators that let a customer assemble an order and see the price change as they go, instead of reading a static price list.
Admin panels and operational dashboards that staff open in a browser tab, with access controlled on the server.
Pages rendered on the server or at build time so search engines receive real HTML, not an empty shell waiting for JavaScript.
02
Public pages are rendered to HTML ahead of time. Client-side JavaScript is added for interaction, not to produce the content.
Business rules live in plain modules separate from routing and UI. In Job Wire the de-duplication, expiry filtering and pagination logic is isolated from the Express handlers and covered by tests.
When an upstream source is down or an API key is missing, the interface says so. Job Wire shows a coverage notice rather than silently returning fewer results.
Describe it in a few sentences on WhatsApp. You get a direct reply about scope, platform and a sensible first version.
Request a Project