This site is driven by two keys, like the machine it came from. Reading: j and k scroll, d and u move half a page, gg goes to the top, G to the bottom, H and L switch windows, ? opens the help. Space is the Neovim leader and handles content: Space then h home, r research, p projects, g gear, a about, / tags, or Space then a digit to jump to that window. Home is the tmux prefix and handles windows: Home then c opens a terminal, Home then & closes a window, Home then space goes to the next one. While focus is on the keyboard, h j k l move between keys and Enter opens one.

ResearchR AboutA Gear: G for gear, keyboard, terminal, editor, homelab.G
    ProjectsP Tags: / as in vim: search./
    ×
    Menu

    Projects

    Software, hardware, and everything in between.

    tmprl: A Temporal Client for the Keyboard

    project

    A modal terminal client for Temporal: workflows, histories as a timeline, payloads through a codec server, a dashboard, mutations, schedules, and gf from an event to the code behind it. Four crates, 1004 tests, at v0.2.1.

    #rust#temporal#grpc

    fate-studio: Seeing and Driving Statecharts in the Browser

    project

    A viewer and simulator for fate statecharts. Open a descriptor snapshot from disk and it redraws as the file changes; drive a live machine over Server-Sent Events, even one running inside another service. One static binary, and the page makes no external request.

    #go#statechart#sse

    fate: A Statechart Engine for Go

    project

    Harel statecharts in Go, hierarchy, parallel regions, history, guards and delayed transitions. Zero dependencies, deterministic, and snapshots that restore exactly, including inside Temporal workflows. v0.5.0 fixes how parallel regions exit and makes dropped events observable.

    #go#statechart#state-machine

    sirna: Destroy the Key, Not the Copy

    project

    The successor to otm. otm keeps a master key on the server, so the server can decrypt everything it holds: not patchable, because it is the shape of the design. sirna never lets the key reach the server at all.

    #rust#cryptography#xchacha20-poly1305

    v-pipeline: Renting a GPU per Job, Not per Hour

    project

    A personal video generation pipeline, the app and its files live in the homelab, the GPU is rented on RunPod Serverless and dies the moment a job finishes. Notes on idempotency, dry runs, and why restarting a worker can make you pay twice.

    #python#fastapi#gpu

    Tombakan: An AR Spearfishing Game That Teaches Fish

    project

    A Unity AR game where you place a water surface in your actual room and spear the fish matching a target colour. Seven weekly iterations, a tester report each time, and a scope that grew from a colour drill into a marine-life learning game.

    #unity#ar#arfoundation

    Lemme

    project

    Lemme is an AI-assisted quiz app. Users upload screenshots of quizzes, OCR extracts the question text, and multiple LLM providers generate candidate answers along with their reasoning...

    #go#fiber#solidjs

    gostudentubl

    project

    Automated attendance runner for Moodle-based courses with scheduled execution.

    #go#automation#moodle

    A Plane-Geometry Android App (CLI-friendly)

    project

    A simple Android app built for educational purposes. Calculates the area and perimeter of basic 2D shapes like squares, rectangles, and triangles.

    #android#mobile#java

    Workspacebook: A Campus Mobile Client in Flutter + Supabase

    project

    A Flutter app for campus use with Supabase for auth and backend, including the OAuth flow that has to be reconfigured every time the environment moves.

    #flutter#dart#supabase

    wa-bot-notif

    project

    WhatsApp notification service, Go + whatsmeow.

    #go#whatsapp#whatsmeow

    otm: One-Time Messages

    project

    Paste a message, get one link, and the link dies once it's opened. Go + chi + SQLite, with layered encryption: a random key per message, and that key itself encrypted with a master key.

    #go#chi#sqlite

    busgo: A Bus Ticket Booking Flow in Flutter

    project

    A UI prototype for booking bus tickets, search, pick a bus, pick a seat, enter passenger details, pay, ticket. Flutter with Riverpod and go_router, no backend.

    #flutter#dart#riverpod

    Attendance App

    project

    This app was built by the Mobile Programming group using Flutter.

    #attendance#mobile

    A Course Management System in PHP and MySQL

    project

    A simple web app for managing course data using PHP and MySQL. Supports **CRUD (Create, Read, Update, Delete)** operations with a si...

    #php#mysql#crud

    Marcom Services: The Bun + Elysia API Behind the Marcom Dashboard

    project

    The Marcom dashboard's backend, Elysia on the Bun runtime, MySQL, JWT, Socket.IO on a separate port, and an expiry cron triggered over HTTP.

    #bun#elysia#typescript

    Marcom: A Marketing Communications Material Dashboard

    project

    An internal dashboard for tracking marketing communications material by brand, cluster, feature, and type, with expiry reminders and realtime updates. Next.js 15 + React 19 on the front, Bun + Elysia behind it.

    #nextjs#react#typescript

    beepresent: A CLI and API for the Campus Course Portal

    project

    A course-portal scraper wrapped as an API and a CLI, course lists, assignments, quizzes, and attendance submission, with a one-week cache because the data barely moves.

    #typescript#bun#cheerio

    ALGO3 - Graph (Adjacency Matrix, C)

    project

    This repository is prepared for the ALGO3 teaching pattern based on:

    #algorithms#graph#c-programming

    Cisco Packet Tracer Learning Course

    project

    This folder is organized as a hands-on course for learning computer networking with Cisco Packet Tracer.

    #networking#cisco#packet-tracer

    test_presence: GPS-Validated Employee Attendance

    project

    An attendance app with geolocation-validated check-in and a leave-request flow. Go + SQLite backend, React front end with a map preview of the office radius.

    #go#react#sqlite

    Running

    Things in actual use whose code is not public. These are pictures, not links: except the ones that are mine.

    • Indigo's user picker showing four sample names and their roles.

      Indigo

      A warehouse stock log for a small business: pick your name, and every item in or out is recorded under it. Built because a notebook and a WhatsApp group always lose to a shift change.

    • The homepage of a bathroom-fixtures company site, with product and store-locator navigation.

      AQUABROSS

      A bathroom-fixtures company site: product catalogue, store locator and careers pages. Built and taken all the way to production.

    More on GitHub

    This list is picked by hand, not filtered by date: a batch of repos was bulk re-pushed once, so their timestamps cannot be trusted.

    • Gostars: 4

      A Harel statechart engine for Go, hierarchical states, parallel regions, deep and shallow history. No dependencies beyond the standard library; the Temporal integration lives in a separate module.

    • TypeScript

      A self-hosted studio for fate statecharts: open a machine to see its diagram, then step through it in the browser over Server-Sent Events. It can open descriptor snapshots from disk, redraw them as the file changes, and proxy their simulator to a machine running inside another service. Kept separate so the engine stays dependency-free.

    • Ruststars: 19

      A keyboard-driven terminal client for Temporal, aiming at parity with its web UI. Workflows, histories you can follow like `tail -f`, payloads through `jq` and a codec server, mutations that show the equivalent `temporal` CLI command, schedules, batches over a visual selection, and a dashboard over the namespace. A production profile can be locked read-only.

    • Rust

      Encrypted messages and files whose KEY can be destroyed on demand, and once it is gone every copy of the ciphertext dies with it, including the copies you do not control. The envelope travels over any channel; the key goes separately as 24 words or a QR code. Rust, XChaCha20-Poly1305, and the server links the header parser only, so it cannot decrypt anything it holds.

    • Gostars: 1

      One Time Message, share a secret through a link that works exactly once. Go + chi + SQLite; the body is AES-GCM encrypted and the row is deleted from the database the moment it is read. Rate-limited, with PWA support.

    • HTMLstars: 1

      A handwired wireless split keyboard: Scylla/Charybdis geometry, 24 finger keys + 5 thumb keys per hand (58 keys), two nRF52840s running ZMK, printed on an Elegoo Neptune 4 Pro with an articulated tenting stand.

    • Shellstars: 2

      The whole macOS workstation config in one repo, Ghostty, nvim, tmux, yazi, aerospace, sketchybar. GNU Stow symlinks the repo into `~/.config`, Homebrew Bundle installs the packages, and `install.sh` runs both in one go.

    • Python

      Pothole detection with a LeNet-5 CNN whose core is written by hand in NumPy, convolution, pooling, ReLU, softmax and backpropagation all derived and coded from scratch, with no deep-learning framework. Ships with a paper and a web demo.

    • Shell

      Clones a macOS `.app` into a second, independent copy with its own bundle identifier: so two Braves or two Slacks can run side by side. Editing `Info.plist` breaks the code signature, so the clone is re-signed ad-hoc.

    • C#

      An augmented-reality fishing game in Unity: place a virtual water surface in the real room through AR, then throw a spear at the fish matching the target colour. URP + ARFoundation, built for Android and iOS.

    • C

      The board before ArkButton: a handwired Dactyl Manuform split, QMK firmware, wiring and flashing all done by hand. Its layout is the one later replicated into ArkButton’s ZMK keymap.

    • Dart

      An Arabic vocabulary guessing-card game for Indonesian players, built with Flutter. Google sign-in, card modes, a global scoreboard, and challenge cards you can send to another player.

    All repositories →

    id en
    rss gh in