Kharansyah S

Small experiments.
Real tools.

A personal lab for software experiments. Some become products, some get open-sourced, some exist because they were fun to build.

10 projects + 2 internal tools
latest: siding · Sep 2026

Statusbuild → run

Open source

Contributions

Merged contributions to other people's projects.

Run log

How they run

Pick a project to replay its run. Each log is a short, hand-written account of how the thing works.

~/lab/sidingrun log
$ siding new add-promo backend,web
  worktree   backend → rans/add-promo
  worktree   web     → rans/add-promo
  generated  AGENTS.md (stage: prd)
$ siding submit add-promo
  ■ GATE 1   prd.md waiting for review
$ siding approve add-promo
  stage → build
$ siding pr add-promo
  backend  pushed · PR opened
  web      pushed · PR opened
✓ one task, two repos, main clones untouched

Work

Projects

EXP-011Running

fifa-rivals

Made for fun, to make FIFA games at the office more competitive. ELO leaderboard, winstreaks, head-to-head, and share-ready stat cards, all computed in the browser from one JSON file. Kept light on purpose: no framework, no backend, no build. The hard part was making the ELO feel fair.

Stack
Vanilla JS · Caddy
Type
For fun
Added
Sep 2026
EXP-009Running

Dashboard

A unified admin dashboard that monitors BukuBengkel, Open Loyalty, and MabarVIP from a single view — cross-app KPI cards, per-app analytics, real-time queue monitoring, and system health checks.

Stack
Next.js · Recharts
Type
Internal tool
Added
Jul 2026
EXP-007Released

dot-ai

A personal AI coding profile - rules, workflow, and conventions for AI-assisted development. Think of it like dotfiles, but for how an AI writes code for you.

Stack
Markdown
Type
Open source
Added
May 2026
EXP-006Running

Open Loyalty

A self-hosted, multi-tenant loyalty platform with event-based earning, flexible rewards, tier progression, and a clean REST API. Built for businesses that want loyalty their way — no vendor lock-in, no monthly fees.

Stack
Next.js · Drizzle · SQLite
Type
Product
Added
May 2026
EXP-005Running

Payment Service

A shared subscription billing microservice for the ProjectLabs ecosystem. Multi-app support, configurable plans with durations, QRIS payments via Pakasir, webhook-driven activation, grace period management, and daily subscription checks.

Stack
Next.js · Drizzle · SQLite
Type
Internal tool
Added
May 2026
EXP-004Self-hosted

local-notepad

A real-time collaborative notepad over your local network — no accounts, no cloud, no configuration. Run it once, open on any device on the same network, and start typing together instantly.

Stack
Node.js · npm
Type
Open source
Added
Apr 2026
EXP-003Running

Ciamsi

An immersive Chinese fortune-telling (Ciam Si) web app with device motion support, haptic feedback, and atmospheric audio. Built for fun to celebrate Chinese New Year 2026.

Stack
Web · DeviceMotion API
Type
For fun
Added
Feb 2026
EXP-002Self-hosted

Clipper

AI-powered tool that automatically extracts viral moments from YouTube videos and generates TikTok-ready clips with burned-in Indonesian subtitles — speaker detection, auto-crop, full HD.

Stack
FastAPI · SvelteKit
Type
Open source
Added
Jan 2026
EXP-001Running

BukuBengkel

Started for a friend who runs a motorcycle workshop and was losing track of parts coming in. It grew into stock tracking with moving-average cost, sales reports, and a loyalty rule like "5 oil changes, the 6th is free" backed by Open Loyalty. A few workshops run on it now.

Stack
Next.js · Drizzle · SQLite
Type
Product
Added
Jan 2026

Kharansyah S

About

Software engineer, 5+ years, mostly on loyalty and fintech systems. As a loyalty engineer I led a team on a real-time loyalty system handling 100K+ transactions a month. The hardest parts were the points ledger, keeping every balance correct and auditable, and keeping it fast as volume grew. Before that I ran a freelance digital agency for 4 years.

ProjectLabs is where the side projects live.

Contact

Have an idea worth building?

Got a problem to solve or want to collaborate on something? I'm always open to a good conversation.