MattFor

I write things that people use. C, C++ and Rust are my preferred languages. However, JavaScript and Python are the ones I use most and know best. Currently studying computer science in university. Everything I built, I maintain my free time - I enjoy the process :3.

(BTW: the website is just a fancy rendition of my github README, real one will come soon)

The best projects I've made!

Relaxy! Ecosystem

Everything relaxy.xyz related: the bot, the dashboard, the website and the supplementary services. A single Raspberry Pi hosts everything isolated under Podman and bubblewrap.

210,000+ users ~250k lines of code relaxy.xyz dashboard uptime cdn
Relaxy! Discord Bot

A multipurpose Discord bot running as a sharded fleet with one supervising manager process and N cluster processes. Backend uses MongoDB.

Uses: Node.js v24+, discord.js v14, MongoDB (Mongoose), discord-hybrid-sharding, discord-player (custom fork), node-canvas, ffmpeg, tesseract-ocr.

  • 210,000+ users
  • 188 commands, 58 event handlers
  • Diff-based document storage, multi-process DB workers, local caching
  • OCR-backed and perceptual-hash scam detection on posted images
  • Cross-server role sync, ban appeals and synced moderation over a credential-less handshake
  • One shared implementation behind every moderation action, for the usual moderation, dashboard as well as linked servers
  • Hot reload, rolling restarts and class patching
  • Shard, network and file watchdogs
Relaxy! Dashboard

Web dashboard for the bot. Discord OAuth login, three access tiers computed from the OAuth guilds permission bitfield. Has per-user profile customization as well.

Uses: Fastify, the native MongoDB driver, JavaScript, esbuild.

  • Discord OAuth-based access control with three permission tiers, per-request authorization checks, per-session CSRF protection and a strict list of modifiable fields
Relaxy! Website

The bot's showcase site, plus the public uptime page. I've designed it from the ground up to be as fast as possible.

Uses: HTML, CSS, JavaScript.

  • 12 pages, ~5,400 lines of JS, ~5,650 lines of CSS
  • Changelog, devlog, technical writeup, CDN, Matrix and Minecraft pages
  • The uptime page is driven by the health feeds published below
Relaxy! Additions

The scripts and services that ensure maximum possible uptime. Written for runit on Void.

Uses: Node.js, POSIX shell scripts, nftables, runit.

  • Probes 24 services on a ten-second loop and publishes three JSON feeds (one full, one public, one status)
  • Hardware watchdog that pets /dev/watchdog; makes the Pi reboot automatically on a deadlock
  • An uptime ledger with day buckets, incident detection and cause inference, mirrored into a Discord outages channel
  • incident CLI tool for declaring and annotating outages
  • Scripts to keep sshd at the top of the CPU, IO and OOM priority lists, with a self-contained nftables table putting SSH in band 0 at DSCP CS6 to ensure the Pi stays reachable while it is dying
  • Error pages generated from the dashboard's own CSS, so I don't have to write new ones by hand every time I change something

emoji-mixer

Node library that generates Google Emoji Kitchen combination image URLs from two emojis.

Uses: JavaScript, webpack (CJS and ESM builds), TypeScript, Python3.

LogEye

Runtime introspection logger for Python. Reports variable assignments, mutations and function calls as they happen, with no debugger and no instrumentation of the target code beyond a decorator.

Uses: Python 3.10+, sys.settrace introspection.

simple-project-tracker

CLI project tracker with Git repo discovery, search/filtering, bulk editing, configurable output, and a background update daemon.

Uses: Python 3.11+.

My other projects

Personal - random configs and themes that I use
  • g-mang-hud-mattfor-editionTF2 HUD
    My modification of a 16+ year old TF2 HUD written in ReScript.
  • .bashrcShell
    My .bashrc. System, packaging, media and programming utilities, each documented with what it needs installed.
  • gtk-configCSS
    My GTK 3 and 4 theme for Void.
  • xfce4-notes-pluginVala
    Mirror with the .git folder detection removed, along with the folder name in the title.
Archive - university work and older projects

University

  • neural-networkC++26
    Feedforward multithreaded neural network written from scratch, with a test suite. Also submitted as the final project for algorithms & data structures.
  • visual-sorter-v2C++20, OpenGL, SDL3, ImGui
    Twelve sorting algorithms drawn one comparison at a time. Performance metrics, graphs and more.
  • emergency-departmentC++20, POSIX IPC
    A hospital emergency department where every role is a separate process, coordinating purely through message queues, shared memory, semaphores and signals. Final project for operating systems class.
  • numerical-methods-lab-programsC++
    Numerical methods lab programs.
  • dotnet-universityC#
    Every exercise from the .NET class.

Older projects

Stuff from communities I manage

I'm a community manager for Fancy Games, overseeing Escape the Backrooms. Join our Discord server! I also own and run the Escape the Backrooms Community organization GitHub | Codeberg.

Organisation repositories
  • autosplitterASL
    The LiveSplit autosplitter for the game, covering versions 5.0+. Auto start, splits on level transitions and cutscenes, load removal, and a paused timer in cutscenes, the main menu and on crashes. Based on uhara by ru-mii.
  • UE4SSC++
    Our fork of RE-UE4SS.
  • community-wiki
    The community wiki: confirmed features, suggestion guidelines, templates for level, item and entity suggestions, and a guide to running the game on Linux.
  • etb-speedrun-bot-v2Python
    The speedrunning bot behind the leaderboards and run verification, "The Watcher", originally by @Reokin. Members link their speedrun.com profile and the bot keeps their roles up to date.

Get in contact

The fastest way to reach me is Discord or email. I read everything, and I'm happy to talk about collaborations, bug reports and contributions.

Email mattfor@relaxy.xyz GitHub MattFor Codeberg MattFor