PT. Spero Mahakarya | IT Consultant

From the first brief to the next release.

Good software.Clear design.Built together.

We build web and mobile applications, design their interfaces, and shape the identities behind them.

Our focus

Software that does the job.

Interfaces that make sense.

An identity that fits.

Clients

Our Clients

Institutions and companies that have worked with us.

75organisations & brands

  • MPR RI
  • Kemenparekraf
  • TMII
  • Waskita
  • PDFMI
  • Kemnaker
  • Onelito Koi
  • Saranawisesa
  • MIX
  • SMK Atlantis Plus
  • Klien V
  • Klien S
  • Daihatsu
  • BNI
  • Museum Geologi
  • Motorola
  • Samsung
  • Museum Sejarah Jakarta
  • Bridgestone
  • Hypermart
  • PERURI
  • Jalinrealty
  • AXIS
  • Sinarmas
  • MarkPlus Insight
  • Kominfo
  • BAKTI Kominfo
  • PAR
  • Kapal Api
  • IDI
  • BLU
  • Japan Direct Koi Center
  • Dinas Perdagangan Kota Surakarta
  • Klien H
  • Yacko School
  • Elegan
  • Okeev
  • Telkomsel
  • Ancol
  • Revlon
  • TATA
  • Sky World
  • BPJS Ketenagakerjaan
  • Garuda Indonesia
  • BRI
  • LMAN
  • Astra
  • Unilever
  • Trans Studio
  • Bapenda Jabar
  • Kementerian Pertahanan
  • BTN
  • Nexxuz
  • PELNI
  • Uniqlo
  • Motion H2
  • SUN Balai Lelang
  • Hangout Project
  • STIKOM CKI
  • Pelajar Digital
  • Mizab
  • Toyota
  • ASUS
  • Dunhill
  • ANRI
  • Mitratel
  • BPMIGAS
  • Daikin
  • XL
  • Jakarta Aquarium Safari
  • The Glassavvy
  • Grebe
  • DBS
  • Sanofi
  • Win-Shop.ID

01 / What we do

From idea to interface.
And everything behind it.

Our services

02 / Portfolio

A closer look at the work.

Visit the portfolio

Products

Full products, from SaaS to ERP.

01 / 052026 · Full-Stack · SoloLive

Lexiband

Vocabulary Trainer with IELTS Writing Marking

A vocabulary trainer built around a 148-entry PDF that stays the source of truth: every row is transcribed verbatim — pronunciation, part of speech, three meanings, synonyms and examples with Indonesian translations — while AI enrichment lives in a separate layer and incomplete rows are flagged "Needs Review" instead of invented. On top of the library sit spaced repetition, nine games, a word-relationship graph, and an IELTS examiner that marks a full Task 1 or Task 2 response against the official band descriptors — on a chart the app generates, a sample task, or a chart you upload and have read by a vision model.

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind v4
  • Zustand
  • Supabase
148
Vocabulary
9
Games
35
Tests
Live
Status
Live demo
Dashboard
02 / 052026 · Full-Stack · SoloPrivate

Manajemen Pesantren

Whole-School ERP for an Islamic Vocational Boarding School

The system a whole school runs on, built across fourteen sprints. One student record feeds every module: enrolment and family relations, timetables and grades, RFID attendance, dormitory beds, Qur'an memorisation tracked to the individual verse, a double-entry accounting engine, laundry, procurement and asset depreciation, a read-only parent portal, a 42-KPI executive dashboard, and an event-driven notification engine. Every business rule is a pure function, so 1,876 invariants run in CI without a database — and the last sprint added the part most side projects skip: health probes, structured logging with secret redaction, verified backups, and fourteen operator pages that let an admin diagnose the system from a browser.

  • Next.js 15
  • TypeScript
  • Prisma 6
  • PostgreSQL
  • Auth.js v5
  • Tailwind v4
226
Prisma Models
15
Migrations
1,876
Tests
14
Modules
Executive Dashboard
03 / 052026 · Full-Stack · SoloLive

Skill Village Wallet

Student Prepaid-Wallet ERP + POS Integration

A ledger-first prepaid-wallet ERP for an Islamic boarding school. Finance tops up student balances offline, the Skillage Mart POS charges wallets at checkout through an idempotent API (charge-before-commit with automatic reversal on failure), and parents track every rupiah in a read-only portal. Money lives in an append-only Postgres ledger moved only by atomic row-locked RPCs, with multi-tenant RLS end-to-end — plus finance dashboards, reconciliation, reports, an audit trail and an event-driven notification centre.

  • Next.js 15
  • React 19
  • TypeScript
  • Supabase
  • PostgreSQL
  • Tailwind v4
Ledger
Money
7
Migrations
21
Tests
Live
Status
Live demo
Executive Dashboard
04 / 052026 · Full-Stack · SoloLive

KerjaanKita

Multi-Tenant Project-Management SaaS

A Linear/Jira-class work platform for any industry — organizations → workspaces → projects → tasks with a fully dynamic, per-project Kanban workflow (managers rename, reorder, recolor and weight their own columns), plus a Gantt timeline, calendar, reports and analytics. Postgres RLS enforces multi-tenant and guest isolation end-to-end, fronted by a secure read-only client portal.

  • Next.js 15
  • React 19
  • TypeScript
  • Supabase
  • PostgreSQL
  • TanStack Query
RLS
Tenancy
19
Migrations
68
Tests
Live
Status
Live demo
Executive Dashboard
05 / 052026 · Full-Stack · SoloLive

Puri Depok Mas

Real-Estate Marketing Website Revamp

A total revamp of a Depok housing estate's official website — premium navy-gold design, WhatsApp-driven lead funnels on every CTA, a live KPR mortgage simulator and a CMS-ready admin. Fully static (SSG) for speed and SEO.

  • Next.js 15
  • TypeScript
  • TailwindCSS
  • Framer Motion
  • Three.js
  • Swiper
SSG
Rendering
WhatsApp
Lead CTAs
Live
KPR Calc
Live
Status
Live demo
Landing

3D & Games

Interactive 3D experiences and browser games.

Drag or scroll sideways

01 / 24
01Game

Tower Defense

A grid tower defense built entirely from primitives — boxes, cones and cylinders, told apart by colour, silhouette and emissive glow rather than by any imported model. Six towers, each with three upgrade tiers and four targeting modes, hold a serpentine trench carved across a 16×16 board against eight enemy types that each demand a different answer: armour that blunts small hits and rewards heavy ones, splitters that break in two on death, healers that quietly undo your damage, and a 1,500-HP Colossus immune to every slow in the game. Two abilities on cooldown — a 120-damage airstrike and a board-wide deep freeze — are the counterplay when the boss walks. One central loop drives every entity, so fifty of them still hold 60fps.

  • React Three Fiber
  • TypeScript
  • Zustand
  • Postprocessing
023D & Creative

Portofolio Showroom

A drivable version of this portfolio. Every project here stands as a lit panel in a 3D hall after closing time — nine flagship builds on an inner ring facing out, twenty-two experiments on an outer ring facing in, and a light-strip lane between them. Park in front of any panel and the camera pushes in to frame it while a sheet slides in with the write-up and all of its screenshots. Nothing is hand-copied: a sync script reads the project data straight out of this site’s own deployed bundle, and the panels texture their screenshots live from this domain, so the hall updates when the portfolio does.

  • three.js
  • cannon.js
  • RaycastVehicle
  • Live portfolio sync
03Game

Diecast Rally

A toy car on a sun-baked playmat at golden hour: collect twelve coins as fast as you can, then race your own best time. The car is a real raycast vehicle with per-wheel suspension — it rolls on landings, washes wide when you carry too much speed into a corner, and drifts when the handbrake cuts rear grip. Ramps lift you onto platforms holding two coins you cannot reach from the ground, brick walls and dominoes scatter on contact, and a light touch of air control lets you aim a jump. One HTML file with no build step — three.js and cannon.js load straight from a CDN.

  • three.js
  • cannon.js
  • RaycastVehicle
  • No build step
04Game

Tembak Tembakan

A Valorant-style FPS arena in the browser — mouse-locked aim, two hitscan guns with heat-based spread and recoil, and three abilities: flashbang, dash and heal. Enemies are blocky humans whose head, torso, arms and legs are both the model and the hitbox, so headshots one-tap and limb shots bleed damage. Every round moves the fight to a different arena — sunset city, neon plaza, desert ruins, cold hangar — and every bot you drop leaves its weapon to loot when you run dry.

  • React Three Fiber
  • Zustand
  • Web Audio
  • Node-verified physics
05Game

KUBIKA

A playable 3D Rubik's cube — drag a sticker and the layer follows your finger before snapping to 90°: scramble, race the timer and chase your best across 2×2, 3×3 and 4×4 cubes. Pure integer-math move engine verified by 61 Node tests, synthesised ratchet sounds, confetti on the solve.

  • React Three Fiber
  • Zustand
  • Web Audio
06Game

Raga Sakti

Full-body motion game — the webcam scans your whole body from across the room, calibrates your proportions, then randomises one of four movement games each round: swing to smash light-cores, jump and duck under beams, match the silhouette walls, and step across energy pads.

  • MediaPipe Pose
  • React Three Fiber
  • GLSL
  • Web Audio
07Game

Arcane Temple

Hand-cast spellcasting game — your webcam hands are the controller: open palm charges mana, a fist snap hurls homing fireballs, swipes unleash ice novas and chain lightning, and joined palms detonate the ultimate over a floating temple under siege.

  • MediaPipe
  • React Three Fiber
  • GLSL
  • Web Audio
08Game

Basket Sakti

Hand-tracked 3D basketball — pinch the ball with your webcam hands, swing and release to shoot: ballistic aim assist, rim physics, a hoop that slides after every make and a 60-second challenge mode.

  • MediaPipe
  • React Three Fiber
  • Web Audio
093D & Creative

HANDFIELD

A quarter of a million GPU particles holding a shape until your hands reach into them — open palms shove the swarm aside, a pinch drags it into a swirling core, and two pinches stretch the whole field. Type anything and it reassembles into your words. No physics engine and no React: position and velocity live in float textures, so every particle is moved by a shader.

  • three.js
  • GPGPU
  • GLSL
  • MediaPipe
103D & Creative

Aether

A hollow shell of 3000 glowing particles steered with bare hands — move to carry it, roll your wrist to spin it, spread both palms to swell it, hold up one to five fingers to shift its hue. Pinch and hold to charge a ring, then release: the shell throws itself across the screen and springs back together, a partial charge giving a proportionally weaker pulse. Every particle is its own damped spring on the CPU, and a One-Euro filter keeps the tracking still when your hand is still without lagging when it moves. One HTML file, no build step.

  • Three.js
  • MediaPipe Hands
  • GLSL
  • One-Euro Filter
113D & Creative

Monolith

An infinite cinematic pilgrimage — scroll-flight over a procedural dune sea toward a ringed Black Sun: zero-g physics shards, a choir of monoliths whose glyphs ignite as you pass, and a dusk that drifts stranger every lap.

  • React Three Fiber
  • Rapier Physics
  • GLSL
  • Web Audio
123D & Creative

Tenaga Dalam

Webcam telekinesis — your hand becomes a golden energy hand in 3D: pinch to grab floating crystals, release to throw, swing an open palm to push them away.

  • MediaPipe
  • React Three Fiber
  • Web Audio
133D & Creative

Medusae

Procedural abyss aquarium — every 32-bit seed births a new jellyfish species: bell shape, tentacles, pulse, bioluminescent glow and a generated Latin name.

  • React Three Fiber
  • GLSL
  • Web Audio
143D & Creative

Kiln

A potter's wheel — drag the spinning clay to throw a vessel, fire it at 1300°C, then pick a glaze. Every pot is yours.

  • React Three Fiber
  • Lathe Geometry
  • Web Audio
153D & Creative

Orrery

A clockwork solar system driven by real JPL orbital elements — scrub three centuries and the planets go where they actually were.

  • React Three Fiber
  • Keplerian Orbits
  • Procedural Geometry
163D & Creative

Keycraft

Interactive 3D mechanical keyboard you can type on with your own keyboard — procedural keycaps, synthesised switch sounds, six colorways.

  • React Three Fiber
  • Web Audio
  • Procedural Geometry
173D & Creative

Infinite Dream World

Cinematic scroll-driven 3D dream world — floating islands, custom GLSL sky & aurora, generative Web Audio soundscape.

  • React Three Fiber
  • GLSL
  • Web Audio
183D & Creative

Puri Depok Mas 2035

Interactive 3D digital twin of a future Depok neighborhood — scroll flight through 8 scenes with live time-of-day & weather.

  • React Three Fiber
  • drei
  • TypeScript
193D & Creative

GRS — Personal 3D Journey

Personal-brand 3D site — particle globe hero, interactive roadmap of competitions, organizations and digital projects.

  • Next.js
  • Three.js
  • TailwindCSS
203D & Creative

Three.js Playground

Three.js fundamentals playground — primitives, materials, lighting and orbit controls.

  • Three.js
  • Vite
213D & Creative

Cat's Cradle

Hand-tracked neon string play — raise both hands to the camera and pluck glowing strings with your fingertips.

  • MediaPipe
  • Canvas
  • Vanilla JS
22Game

3D Runner

Endless 3D runner — dodge obstacles at increasing speed, built with vanilla Three.js in one HTML file.

  • Three.js
  • Vanilla JS
23Game

World Cup Penalty

3D penalty-shootout game — aim, power and a goalkeeper that reads your shots.

  • Three.js
  • Vanilla JS
24Game

ALLPACK Interactive Experience Hub

A six-game touch-screen booth hub built for a packaging-industry exhibition — Spin the Wheel, a Packaging Decision Lab, Memory Match, a sliding Packaging Puzzle, a 10-second precision Stopwatch and a spot-the-difference "What's Missing?" — all running off one Laravel + Inertia + React backend with live visitor capture, a QR hand-off from booth to phone, and a leaderboard shared across every game.

  • Laravel
  • Inertia.js
  • React
  • TypeScript
  • Tailwind
  • Neon Postgres

Have a project in mind?

Start with a conversation.

Tell us what you’re building, where you are, and what you need.