The things I've made
Projects
Terminal apps, desktop tools, multiplayer games, and experiments from over the years. A few highlights first, followed by the rest of the archive.
Selected projects
whatsatui
WhatsApp in the terminal, with keyboard-driven panes for chats, messages and composing. It supports fuzzy chat search, local history and drafts, inline images and stickers, plus audio and video playback.
Cue
A GNOME scratchpad that turns a line like “Call Ada @tomorrow 9am” into a desktop reminder. Notes stay in a local SQLite database, and reminders can be completed or snoozed directly from their notifications.
Paradise City RPG (SA-MP)
A city-life RPG for GTA: San Andreas Multiplayer, with jobs, player-owned homes and businesses, factions and vehicle systems. The Pawn gamemode ties those systems together with persistent player and world data in MySQL.
WireGUI
A desktop control panel for WireGuard that lets you switch tunnels, browse saved configurations and see when each was last connected. Built with Electron, React and TypeScript; no longer actively maintained.
labirong3D
A browser-based multiplayer maze race, rebuilt in 3D with animated characters and in-game chat. A TypeScript and Babylon.js client synchronizes the shared world over WebSockets.
More projects
poe-idle
An idle RPG prototype in Rust and Bevy, where your character automatically moves through maps and fights enemy packs. Its progression systems explore loot, equipment, crafting and talents, with player progress saved locally.
HuaweiOLTSDK
A Go SDK for working with Huawei fiber-network equipment through its command-line interface. It handles command prompts and turns ONT discovery, optical readings and service-port output into structured Go data.
asaas
A typed Rust SDK for Asaas payments, covering customers, charges, Pix QR codes and installment payment books. It also exposes payment and refund details for reconciliation, preserving monetary response values without floating-point conversion.
FXTrainer
A historical GTA V and FiveM trainer with an in-game menu for vehicle boosts, free movement and player settings. Written in C++ as a Script Hook V ASI plugin.
language-pawn
A historical Atom package for writing SA-MP scripts, with Pawn syntax highlighting and snippets for common libraries and plugins. Adapted from Atom's C grammar, it covers tools such as Streamer, sscanf and FCNPC.
labirong
Race other players through a randomly generated maze in the browser, then tackle a new layout when someone finds the exit. The JavaScript game uses a Node.js server and Socket.IO to synchronize players and rounds.
labironGO
Escape a procedurally generated maze without leaving the terminal. This Go remake of Labirong draws the game with ANSI colors and handles keyboard input in a goroutine.
brawlio
A browser arena where players jump across platforms and trade fireballs in real time. Phaser handles the 2D world and physics, while a Node.js and Socket.IO server relays movement and attacks.
vending
Add interactive vending machines anywhere on a SA-MP server, with callbacks that let the gamemode decide prices, rewards and access. An in-game editor lets you place, customize and export machines.
radars
Build speed traps for SA-MP with configurable speed limits and detection radii. The Pawn library reports the player, radar and measured speed through a callback, so the gamemode can issue fines or trigger other events.
streamersb
A desktop soundboard for streamers: import local audio clips, assign global hotkeys and trigger sounds while another app has focus. Built with Electron and Vue, with sound lists and key bindings saved locally; the repository is archived.
houndbot
A text-based Discord game built around League of Legends champions, with turn-based challenges between players. Abilities consume mana and use cooldowns, while Sequelize stores champions, experience and player progress.
pgroups
Organize SA-MP players into named groups such as gangs, police factions or staff teams. The Pawn library supports membership checks and messages targeted to one group or an entire group type.
samp-missions
A Pawn prototype that recreates parts of GTA: San Andreas story mode inside SA-MP, with scripted cutscenes and subtitles. Its modular mission scripts include Home Invasion, alongside MySQL-backed player accounts.
uno-to-uno-rs485
Mirror digital inputs from one Arduino board to another over an RS485 link. Paired transmitter and receiver sketches encode nine pin states as serial commands and apply them to the remote board's outputs.
ragemp-boilerplate
A RAGE MP starter project with separate TypeScript modules for the GTA V multiplayer client and server. Includes MongoDB models through Mongoose, i18next localization and a React scaffold for embedded UI.
dynamicgz
Turn SA-MP gang zones into gameplay triggers, with callbacks for players entering or leaving an area. The Pawn library wraps zone creation and includes an in-game tool for setting zone boundaries, choosing colors and exporting definitions.
freeroam
A SA-MP gamemode that brings freeroam, racing, demolition derby and deathmatch together on one server. Includes dynamic race and map creation, a clothing and attachments shop, administration commands and MySQL-backed player data.