Skip to content

Lab

Curiosity, unpolished.

Experiments and side-explorations that don't need a full case study — the places I try things first.

  • Web app · Education · 2026

    Ngoding5

    Indonesian-language practice site for programming logic and syntax, fully static with no login and no server: write code and run the test cases right in the browser (JavaScript in a Web Worker, Python through Skulpt), or read a program and guess its exact output. Each problem has tiered hints, a reference solution, an explanation, common mistakes and a "Copy to ask AI" button; progress stays in localStorage. 40 coding problems and 32 quizzes, all verified by running the JS and Python solutions against each other, with a content CLI and Claude Code skills to generate new ones. Vue 3 + Vite on Vercel.

    • Vue
    • Vite
    • TypeScript
    • Python
    • Education
  • Web app · AI · 2026

    Racik

    Canva-style design editor with AI: write an idea and Claude lays out the whole design (layout, copy, palette, fonts) while an image model makes the visuals, then everything stays editable: text, images, layers, multiple pages. Export to PPTX with editable text, PDF, PNG/JPG and SVG. Rate results with 👍/👎 and set a Brand Kit, and the next designs follow your taste. Nuxt + fabric.js on the front, plain Go net/http and PostgreSQL behind it.

    • Vue
    • Nuxt
    • fabric.js
    • Go
    • PostgreSQL
    • AI
  • Web app · PWA · SaaS · 2026

    Our Day

    Shared photo album for weddings and events, filled by the guests themselves: they scan a QR code, type their name and shoot straight from the browser, with filters picked before the shutter, Locket-style stickers (time, weather, location) and no retake button. Photos and voice messages land in a live shared gallery; hosts moderate, download everything as a ZIP and get push notifications. Vue 3 + TypeScript PWA with a Go backend.

    • Vue
    • TypeScript
    • Go
    • PWA
    • Web Push
  • macOS app · PWA · AI · 2026

    AI Todo

    Todo list and reminders you can run by chatting with an AI or by hand. One Go binary with SQLite, an installable Vue PWA with Web Push, and a Swift menu bar app with a badge, quick check-off and a chat panel (⌥⌘T). The AI only proposes actions; the server validates them, asks before deleting, and keeps everything undoable.

    • Go
    • SQLite
    • Vue
    • Swift
    • AppKit
    • AI
  • macOS app · PWA · Server · 2026

    PasteLAN

    Copy-paste text and images between a Mac and a phone through your own server: copy on the Mac and it shows up on the phone within a second; paste or pick images on the phone, tap Send, then ⌘V on the Mac. A Swift menu bar app with a clipboard history (⌘0–⌘9), a single Go binary with no dependencies that keeps clips in memory only, and an installable PWA with push notifications. No server? A local Wi-Fi mode pairs by QR code and encrypts everything with ChaCha20-Poly1305.

    • Swift
    • AppKit
    • Go
    • PWA
    • Web Push
  • macOS app · Menu bar · 2026

    LiteCalendar

    Two-month calendar in the macOS menu bar: after the 15th it shows this month and next, before that the previous month and this one, with arrows, keys and trackpad swipes to move between months. Event dots come from the calendars on the Mac (iCloud, Google, Exchange) through EventKit. Pure Swift + AppKit in a single source file.

    • Swift
    • AppKit
    • macOS
    • EventKit
  • macOS app · Menu bar · 2026

    LiteScroller

    Menu bar separator for macOS that hides icons like Hidden Bar, plus a scroller mode: hidden icons appear in a scrollable strip over the menu bar, so they stay reachable even when long app menus or the notch would cover them. Pure Swift + AppKit in a single source file.

    • Swift
    • AppKit
    • macOS
    • Accessibility
  • macOS app · Menu bar · 2026

    LiteMonitor

    Lightweight macOS menu bar indicator for CPU, RAM, SSD, network and battery. Pure Swift + AppKit in a single source file with no dependencies: normal or compact mode, pick which metrics to show, about 15–25 MB of RAM.

    • Swift
    • AppKit
    • macOS
  • CLI · Bash · 2026

    my-commits.sh

    Interactive commit reporter for many projects at once: pick a date range, the repos and the branches (wildcards like *kiki* work), and it lists your own commits per project and branch. The report shows in the terminal, can be saved to a file, or turned into a daily standup or weekly progress report with AI (Groq or Gemini), then copied to the clipboard.

    • Bash
    • Git
    • CLI
    • AI
  • CLI · Zsh · 2026

    Git feature branch toolkit (gfb)

    A set of zsh commands for a feature-branch workflow: gfb creates a branch from a base, gfbls lists branches by last use, gfbstatus is a fuller git status with push/pull state and next steps, plus commands to compare branches, find conflicts before merging, clean up merged branches, and generate commit messages and PR descriptions with AI.

    • Zsh
    • Git
    • CLI
    • AI
  • Dev tool · API · 2026

    Rajabiller dummy customer ID search

    Search and viewer for Rajabiller's dummy customer IDs (idpel_dummy) when testing PPOB / H2H API integrations, shown as table, tree and JSON.

    • Vue
    • Vite
    • API
    • PPOB
  • Dev tool · API · 2026

    University list viewer

    Search and viewer for the Hipolabs Universities API: filter by name, country, limit and offset through the API, then search, filter per column and export CSV in the browser, shown as table, tree and JSON.

    • Vue
    • Vite
    • API
  • Game · 2026

    ASCII playground

    A small browser game rendered entirely in ASCII characters.

    • ASCII
    • Game
  • Machine learning · 2023

    Melon leaf clustering

    K-Means on GLCM texture features, validated with plant experts during the IPB summer course.

    • Python
    • K-Means
    • OpenCV
  • Knowledge graph · Data viz · 2023

    Insect–virus–plant networks

    Interaction graphs and taxon embeddings explored while researching VektorPedia.

    • Knowledge Graph
    • Network Science
Chat with me