Kurniadi Ahmad Wijaya

AI and Software Engineer

Built production-grade AI and software for banking, fintech and enterprise.

Technical Consultant, Software & AI · Metrodata (PT Mitra Integrasi Informatika)

Classic site
Skip to content

How This Site Was Built

ShinyQ HQ was built in the open, one pull request at a time, by AI coding agents working from written specs and plans while Kurniadi reviewed and merged the work. This page follows the build from the blueprint to the gates that keep it honest.

Snapshot of Oct 17, 2026, commit b24b3ac

Source code on GitHub (opens in a new tab)

The Blueprint

The whole system on one map: who writes the code, where it ships, and what runs when a visitor opens the site.

How it runs

  1. 1

    Every page is pre-rendered as static HTML, so the Classic site works without WebGL or a server.

  2. 2

    The 3D tower mounts on the client on top of those pages and never replaces their content.

  3. 3

    Pages Functions serve the Ask the HQ assistant and the small performance and visit beacons.

  4. 4

    A Cron Worker aggregates public visit stats into KV on a schedule, so the site never exposes raw logs.

  5. 5

    Production deploys only from a manual workflow that reuses a complete green CI run.

The Build Timeline

Rounds of merged pull requests, from the first foundation to this page. The counts and dates come from the repository history.

Pull request numbers open on GitHub in a new tab.

  1. Round 1Oct 9, 2026 to Oct 10, 2026

    Foundation and the Five Floors

    The content dataset, missions, launch infrastructure, the tower shell, the rover and the first five floors took shape.

    15 merged pull requests

  2. Round 2Oct 10, 2026 to Oct 11, 2026

    Game-First Load, Classic Site and Ask the HQ

    The Classic site was revamped, the 3D boot cover and CI fast pipeline arrived, client work moved to sector labels and the Ask the HQ assistant launched, with the first walkable floors, the CV viewer and a performance pass.

    30 merged pull requests

    Before

    Design mockup of the Classic site home page, drawn before it was built

    After

    The Classic site home page as built
    The Classic site home page, from the design mockup to the built page.
  3. Round 3Oct 12, 2026

    Title Case, Call Pads and the Writing Floor

    Titles moved to Title Case with one project order, elevator call pads and a new landing hero arrived, and the Writing floor and roof deck were built.

    6 merged pull requests

    Before

    Design mockup of the landing hero with the tower directory, drawn before it was built

    After

    The landing hero as built, with the Ask AI shortcut
    The landing hero, from the design mockup to the built page.
  4. Round 4Oct 12, 2026

    Point-and-Go, Onboarding and the Highlights Hall

    Perspectives, live links and ticketing projects joined the content, point-and-go movement, paper PDFs, the Rover dialog, onboarding and the Highlights Hall were added.

    7 merged pull requests

  5. Round 5Oct 12, 2026 to Oct 13, 2026

    Performance, Camera and Spectacle

    Share cards and SEO landed, the elevator and camera became smoother and freer, a GPU, CPU and memory pass set the performance gates, and the Motion setting and floating signs arrived.

    20 merged pull requests

  6. Round 6Oct 13, 2026 to Oct 15, 2026

    Visit Stats, Ops Room, Data and ML, Security

    Public visit stats, the Tech Reactor, the Ops Control Room, the Data and ML pods and the Topic Constellation were built, followed by a security audit, Ask answers about how the site was built and a README redesign.

    43 merged pull requests

  7. Round 7Oct 15, 2026 to Oct 16, 2026

    Uptime, CSP and Floor Chunks

    Hourly uptime alerts and per-page CSP hashes arrived, packages were upgraded, floors loaded as separate chunks and the Labs floor was split into three separate project boards.

    22 merged pull requests

    Before

    The Labs floor before the three separate boards: one directory board splits Product Engineering and AI Engineering

    After

    The Labs floor after the three separate boards: Product Engineering, Data and ML, and AI Engineering
    The Labs floor before and after the three separate boards.
  8. Round 8Oct 16, 2026 to Oct 17, 2026

    Diagrams, Music, Day and Night

    Architecture diagrams, ambient music, shareable Classic links and smart CI were added, with a day and night sky, a Corners HUD with a minimap and L3-style arrivals on every floor.

    11 merged pull requests

  9. Round 9Oct 17, 2026In progress

    Camera Polish and the Engine Room

    Camera fixes and an intro fly-in came first, then this build story and the secret B1 Engine Room floor that will tell it.

    4 merged pull requests

Working with AI Agents

Agents write the code; the human owns the decisions. Every change followed the same loop, with the plan and spec committed to the repository.

Every change, step by step

  1. 1

    Spec

    A brainstorm with the agent ends in a written design spec that states what to build and why, with the owner's content decisions as the final word.

  2. 2

    Plan

    The spec becomes a step-by-step plan in the repository: small tasks, exact files, tests written first and the commands that prove each step.

  3. 3

    Agent Tasks

    The superpowers workflow runs the plan as subagent-driven tasks: one fresh agent per task, each returning a report with test evidence.

  4. 4

    Review

    Each task is reviewed before the next begins. Changes to the look of a floor also pass a local look-preserving visual gate (scripts/visual-gate.ts) that compares screenshots across devices and camera poses.

  5. 5

    CI

    The pull request must pass the required checks: tests, the build, end-to-end shards, Lighthouse and the 3D performance gates.

  6. 6

    Deploy

    The owner merges the pull request. A push to main never deploys: production goes out only through the deploy workflow, by hand or after the weekly live-facts update, and it reuses a complete green CI run.

Agents used

  • GitHub Copilot
  • Claude Code
From a real planRead the full plan on GitHub (opens in a new tab)
### Task 5: Bundle gate with per-floor chunk caps

**Files:**
- Modify: `e2e/budgets.ts` (`BYTES_3D_BUDGET.floors`)
- Modify: `e2e/perf/bytes-3d.spec.ts`
- Modify: `scripts/perf-report.ts` (`bytes3d` entry `floors?`, summary line)
- Test: `tests/unit/perf-report.test.ts`

**Interfaces:**
- Consumes: `window.__hq.floorChunks.load(id)` and `?prefetch=off` (Tasks 1 and 4).
- Produces: `BYTES_3D_BUDGET.floors: { L3: 20 * 1024, L4: 16 * 1024, RF: 8 * 1024 }`; perf entry `{ kind: "bytes3d"; tier; js; other; floors?: Partial<Record<"L3" | "L4" | "RF", number>> }`.

The Gates

Automated checks that decide whether a change may merge. Each one states what it checks and the number it enforces.

The Gates
GateWhat it checks and its budget
Types, Lint and Unit TestsBlocks mergeStrict TypeScript, the linter and the Vitest suite, including the content and public-safety tests.Budget Zero type errors, lint errors and failing tests
Secret ScanBlocks mergeScans the repository history for committed credentials, because the repository is public.Budget Zero secrets found
Public-Safety ScanBlocks mergeScans every text file of the built export against the private blocklist.Budget Zero blocklisted terms in the export
Per-Page CSP HashesBlocks mergeHashes every inline script of every page and fails the build when one is missing its hash.Budget No inline script without a hash
End-to-End ShardsBlocks mergePlaywright drives the built site in duration-balanced shards, waiting on state and never on time.Budget Every spec passes in every shard
3D Download SizeBlocks mergeMeasures the gzip JavaScript the 3D experience downloads before its first frame, for the lite and full tiers.Budget Under 450 KB gzip on the first-frame path
3D Render and MemoryBlocks mergeCounts draw calls and triangles on every floor, then rides the elevator round trips and checks that nothing leaks.Budget Under 150 scene draw calls and 30k triangles; zero GPU object growth and under 2 MB heap growth
Classic Site SpeedBlocks mergeLighthouse CI loads the Classic pages and fails the check on slow paint, layout shift, blocking time or heavy scripts.Budget LCP 2 s, CLS 0.01, TBT 200 ms and JS 240 KB on Classic pages
Smart CI PlanBlocks mergeReads a pull request's changed paths and runs only the heavy jobs they need. Any planner failure runs everything.Budget Pushes to main always run every job

The Dashboard

Numbers measured from the repository when the site is built: commits, merged pull requests, tests, specs, plans and budgets.

  • 158

    Merged pull requests

  • 172

    Commits since Oct 9, 2026

  • 320

    Unit test files

  • 591

    End-to-end tests

  • 13

    Spec documents

  • 73

    Written plans

  • 5

    Floors in the 3D tower

  • 450 KB

    3D JavaScript ceiling before the first frame (gzip)

  • 150

    Draw call ceiling per frame

  • 30,000

    Triangle ceiling per frame

  • Hourly

    Uptime check on the live site

Coming Soon

More of the build story is on its way.

  • Coming soon

    Rover's Brain

    How Ask the HQ finds, grounds and checks its answers.

  • Coming soon

    Rejected Designs

    Ideas that were tried and dropped, and why.