Everything named anywhere in this wiki: the languages we write in, the software we run, the libraries we depend on. Libraries are grouped under their language. Nothing comes from a lock file — this is what the wiki talks about, with a link wherever a page exists.
| Language | What it is | Where we use it | Licence |
|---|---|---|---|
| Go | Statically typed systems language; cross-compiler and WebAssembly target in the standard toolchain. | Ebitengine games, Inkwell, the Updater bot, the wiki fetcher and Countdowner | BSD-3-Clause |
| Ruby | Dynamic, object-oriented scripting language. | The Catalog API, WarpEngine and the RuBBS gem | Ruby / BSD-2-Clause |
| Python 3 | Scripting language present on practically every host. | Every store engine — standard library only, because a Batocera box has python3 and no pip |
PSF-2.0 |
| Rust | Memory-safe systems language, built around Cargo crates. | Bevy games | MIT / Apache-2.0 |
| Lua | Small embeddable scripting language. | TIC-80 cartridges and LÖVE games | MIT |
| JavaScript | The language of the browser. | Phaser games and the renderer of the WarpEngine Client | ECMA-262 standard; V8 BSD-3-Clause |
| TypeScript | JavaScript with static types, compiled before it ships. | The public site's frontend and the WarpEngine Client | Apache-2.0 |
| GDScript | Godot's own Python-flavoured scripting language. | Godot projects | MIT (Godot) |
| C# | Godot's second first-class scripting option. | Available in Godot | ECMA-334 standard; .NET MIT |
| 6502 assembly | Machine language of the C64's MOS 6510 and the Plus/4's 7501/8501. | Blessing of Ra, Rabbit Scooter — C64, the C64 Demo, the Plus/4 demo | — (instruction set) |
| Free Pascal | Compiled Pascal; small self-contained binaries. | The Discord thread scheduler | GPL-2.0+ (compiler), LGPL-2.1+ with linking exception (RTL) |
| C / C++ | Compiled systems languages: C++ for our 16-bit DOS programs, C for the fantasy console. | DOSINST and GMENU, built with Open Watcom for DOS (DOSINST also for Win32); building the TIC-80 Pro binary from source in the builder image | ISO standard; Open Watcom Sybase Open Watcom Public License 1.0, GCC GPL-3.0+, Clang Apache-2.0 |
| Java | Cross-platform, JVM-hosted language. | Running the Unique Tile Finder jar when producing TIC-80 tiles | GPL-2.0 with Classpath Exception (OpenJDK) |
| PHP | Server-side scripting language. | Grav CMS, which serves this wiki | PHP-3.01 (BSD-3-Clause from PHP 8.4) |
POSIX sh |
Lowest common denominator shell, so a curl-piped installer runs where /bin/sh is dash. |
Every store installer and uninstaller | POSIX standard; dash BSD-3-Clause, bash GPL-3.0+ |
| ERB | Ruby's embedded templating syntax. | WarpEngine's per-platform CI pipeline templates and RuBBS screen templates | Ruby / BSD-2-Clause |
| Twig | PHP templating language used by Grav. | The wiki theme and its JSON API endpoints | BSD-3-Clause |
| Technology | What it is | Notes | Licence |
|---|---|---|---|
| Ebitengine | 2D game engine for Go; desktop and WebAssembly from one code base. | Powers Rabbit Roller | Apache-2.0 |
| Bevy | Data-driven ECS engine in Rust, no visual editor — projects are Cargo crates. | First-class WASM support | MIT / Apache-2.0 |
| Godot | Open-source 2D/3D engine with a visual editor and headless export. | Exports web plus Windows, Linux and a universal macOS build | MIT |
| LÖVE (Love2D) | Lightweight Lua framework for 2D games, packaged as a .love archive. |
Web builds via love.js |
zlib |
| Phaser | HTML5 2D framework: WebGL/Canvas, physics, tweens, particles. | Needs no compilation — the simplest of our pipelines | MIT |
| TIC-80 | Fantasy console with editors for code, sprites, maps, sound and music. | The Pro version is a commercial itch.io product; our builder image compiles it from source | MIT; the Pro binary is a paid product |
| Commodore 64 | The 8-bit home computer, targeted in assembly as a .prg. |
PAL, raster-polled, no interrupts | — (hardware) |
| Commodore Plus/4 | The 264-series sibling: same 6502 core, TED instead of VIC-II and SID, .prg from $1001. |
Same ACME toolchain as the C64, xplus4 emulator |
— (hardware) |
| Inkwell | Our point-and-click framework for Go, a DSL layer over Ebitengine. | Implements the SCUMM-era skeleton | MIT |
| Project | Language | What it does | Licence |
|---|---|---|---|
| WarpEngine | Ruby | Mountable Rails engine: retro software catalog, CI pipelines, build endpoints, public JSON API. | MIT |
| RuBBS | Ruby | Synchronet-style Telnet BBS framework: negotiation, ANSI frame buffer, widgets, themes. | MIT |
| Inkwell | Go | Point-and-click framework on Ebitengine; every entity is a struct literal in a manager. | MIT |
| warpstore | Python | Shared core of the store engines: catalog, releases, host matching, state, HTTP — one dependency-free file. | MIT |
| WarpEngine Batocera Store | Python | Writes a catalog into a Batocera box's ROM folders and merges gamelist.xml. |
MIT |
| WarpEngine RetroArch Store | Python | Renders a catalog as RetroArch .lpl playlists with box art, locally or exported. |
MIT |
| WarpEngine Client | TypeScript | Desktop app showing the catalog as a grid of cards, with the store engine built in. | MIT |
| TTG Batocera Store / TTG RetroArch Store | JSON | Our own store definitions — a config.json and two wrapper scripts on top of the engines above. |
MIT |
| Teletype BBS | Ruby | The public Teletype Games BBS on teletypegames.org:2323, built on RuBBS. |
MIT |
| Updater bot | Go | Polls the wiki, Redmine and Gitea, announces new activity on Discord; a cache prevents repeats. | MIT |
| Status bot | Free Pascal | Creates a weekly Discord thread at a set time and posts the opening message. | MIT |
| Countdowner | Go | Countdown timers for deadlines and releases — see Server. | Not declared |
| wiki-fetcher | Go | Two-way git sync of the live wiki: takes pushes in on a Gitea webhook, commits the server's edits, parks conflicts on a branch. | MIT |
| backup-scripts | Make + shell | Dumps databases, mirrors repositories, prunes old dumps, rsyncs off-site. | MIT |
| DOSINST | C++ | Installs, updates and removes DOS programs from the read-only FTP store at ftp.teletypegames.org; the same source builds DOSINSTW.EXE for Windows 95 and later. |
GPL-3.0 (because of mTCP) |
| GMENU | C++ | Game menu for DOS: lists the game folders with their METADATA.INI data, searches, filters, sorts and starts them; GMEDIT.EXE edits METADATA.INI in a form. NASM assembly up to 1.1.1. |
MIT |
| BMAGIC | C++ | Boot Magic, a boot menu editor for DOS: maps and edits the boot menu of CONFIG.SYS and AUTOEXEC.BAT and the startup options of MSDOS.SYS, with a diff and a backup before every save. |
MIT |
| Software | What it is | Role here | Licence |
|---|---|---|---|
| Nginx | HTTP server and reverse proxy. | Entry point for all traffic, SSL termination — see Server | BSD-2-Clause |
| Traefik | HTTP reverse proxy and load balancer with dynamic routing. | Routes the containerised services by Host header | MIT |
| Gitea | Self-hosted Git: repositories, code review, issues. | Our forge at git.teletypegames.org; also hosts a rubygems package registry |
MIT |
| Woodpecker CI | CI/CD engine integrated with Gitea. | Runs every build; its configuration extension fetches the pipeline from WarpEngine | Apache-2.0 |
| Grav | Flat-file CMS; content is markdown on disk. | This wiki | MIT |
| Redmine | Project management and issue tracking. | Development tasks, bugs and milestones | GPL-2.0 |
| Matomo | Privacy-friendly self-hosted analytics. | Traffic across the public sites | GPL-3.0+ |
| Uptime Kuma | Self-hosted uptime monitor with alerts. | Availability of every server-side component | MIT |
| Docker & Docker Compose | Container runtime and orchestration. | Every service on the box, and every CI builder image | Apache-2.0 (Engine, Compose); Docker Desktop proprietary |
| MySQL 8 | Relational database. | The catalog database behind the Catalog API | GPL-2.0 (Community), commercial dual licence |
| MariaDB | MySQL-compatible relational database. | Redmine's database — backed up with its own dump script | GPL-2.0 |
| PostgreSQL | Relational database. | The wiki's database — backed up with pg_backup.sh |
PostgreSQL |
| phpMyAdmin | Web UI for inspecting and managing MySQL. | Database inspection in the deployment stack | GPL-2.0 |
| Apache | Web server bundled in the Grav container alongside PHP 8.1. | Serves the wiki inside its container | Apache-2.0 |
| Telnet | The 1970s remote terminal protocol, IAC negotiation and all. | How you reach the BBS | — (IETF standard, RFC 854) |
| rsync | Incremental file synchronisation over SSH. | Off-site mirroring of the backups | GPL-3.0+ |
| Discord | Chat platform with bots and webhooks. | Team communication, and the target of both bots | Proprietary service |
| Google Calendar | Shared calendar. | Team scheduling — see Communication | Proprietary service |
| YouTube Data API | Google's API for channel and video metadata. | The public site's latest-video panel | Proprietary service (Google API ToS) |
| pyftpdlib | FTP server library for Python. | The anonymous, read-only FTP server at ftp.teletypegames.org (the DOSINST store and the TTGWIKI export), in a container; DOSINST and TTGWIKI test against it |
MIT |
llama.cpp (llama-server) with Qwen3.5 0.8B and Gemma 3 270M |
Local language-model inference with an OpenAI-compatible HTTP API; small open-weights instruction models from Alibaba and Google. | The shared model service in router mode, several models behind one address; Qwen3.5 is the Lapis-ACP of SERMO in the BBS | MIT; Apache-2.0 (Qwen3.5); Gemma Terms of Use |
| Tool | What it is | Where it shows up | Licence |
|---|---|---|---|
| GNU Make | Build automation driven by a Makefile. |
The common front door of every engine's workflow, the backups and the client | GPL-3.0+ |
| Git | Distributed version control. | Everything, including the version fallback when metadata.json is absent |
GPL-2.0 |
| Docker builder images | Per-platform CI images configured server-side in WarpEngine's ci_platforms. |
godot-builder, tic80pro, bevy-builder (as bevy-ttg, with our crates preloaded), love-builder, ebitengine-builder (as ebitengine-ttg, with our Go modules preloaded), phaser-builder, c64-builder, plus4-builder, and commodore-player for the C64 / Plus/4 package step, and ci-tools for the helper steps |
MIT (Dockerfiles); base images per component |
| kaniko | Container image builder that needs no Docker daemon. | Building our own CI images into the Gitea registry, with no privileged mode and no docker socket (.woodpecker/ci-images.yaml in the teletypegames repo) |
Apache-2.0 |
| Ubuntu / Debian / Alpine | The base Linux distributions of those images. | Ubuntu 24.04 for the TIC-80 Pro build, Debian for the Rust toolchain, Alpine for the light steps | Free software, mixed per package |
| godot-ci | Headless Godot editor plus matching export templates, in a container. | The base of our godot-builder image |
MIT |
| CMake | Cross-platform build system generator. | Compiling TIC-80 Pro from source | BSD-3-Clause |
| SDL2 | Cross-platform graphics, audio and input library. | A build dependency of TIC-80; shipped next to yapeSDL in the C64 / Plus/4 native players | zlib |
| mingw-w64 | GCC cross-compiler targeting Windows. | Windows builds from the Linux CI image (Bevy's x86_64-pc-windows-gnu) |
Public domain / ZPL-2.1 (runtime, headers); GCC GPL-3.0+ |
| osxcross | Cross-compilation toolchain for macOS targets. | The planned route to mac binaries for Bevy and Ebitengine | GPL-2.0 (the Apple SDK under Apple's Xcode licence) |
| ACME | 6502 cross-assembler. | Assembling every C64 and Plus/4 project into a .prg |
GPL-2.0+ |
VICE (x64sc, xplus4) |
The Commodore 8-bit emulator family. | Running C64 and Plus/4 builds locally, the emulator behind Batocera's c64 system, and — as the vice_x64sc / vice_xplus4 libretro cores compiled to WebAssembly — the browser player of every C64 and Plus/4 release |
GPL-2.0+ |
| yapeSDL | Attila Grósz's SDL2 emulator of the Commodore 264 family, the C64 and the VIC-20; one binary, the machine type comes from its yape.conf. |
The native player: the commodore-player image wraps the upstream Linux, Windows and universal macOS binaries around every C64 and Plus/4 .prg, with a launcher that sets the machine type and autostarts the program |
GPL-2.0+ |
| EmulatorJS | Browser front-end for libretro cores compiled to WebAssembly. | The "Play in browser" page of C64 and Plus/4 releases; loader, minified runtime and the VICE core are self-hosted in the release's own /file/ folder, nothing comes from its CDN |
GPL-3.0 |
| fswatch | Filesystem change watcher. | The make watch target in every engine's Makefile |
GPL-3.0+ |
| jq | Command-line JSON processor. | Reading metadata.json in pipelines |
MIT |
| curl | HTTP client. | Downloading runtimes and HTML shells, and every upload/publish call | curl (MIT-style) |
| zip / unzip | Archive packaging. | Building the versioned release ZIPs | Info-ZIP |
| sed / awk | Stream and text processing. | Patching web players, extracting versions, splitting TIC-80 asset sections | GPL-3.0+ (GNU); BSD awk MIT-style |
mksquashfs / readelf |
SquashFS packer and ELF inspector. | Rebuilding the fused LÖVE AppImage without executing it on an Alpine builder | GPL-2.0+ / GPL-3.0+ |
| Homebrew | macOS package manager. | make deps installs acme and vice with it |
BSD-2-Clause |
| Visual Studio Code | Editor whose tasks.json we ship per engine. |
Cmd+Shift+B runs the default build task in every tools repository |
MIT (Code - OSS source); proprietary binaries |
| jsDelivr | Public CDN for npm packages. | Where the pinned phaser.min.js is fetched at build time |
Free service |
adb |
Android Debug Bridge. | Pushing an exported RetroArch tree onto a phone | Apache-2.0 |
codesign / Gatekeeper |
Apple's signing tool and its runtime policy. | Ad-hoc signing the Godot and WarpEngine Client macOS bundles | Proprietary (macOS) |
sips / ImageMagick / FFmpeg |
Image and media converters, first one found. | Re-encoding catalog box art to the PNG RetroArch insists on | Proprietary (sips) / ImageMagick / LGPL-2.1+ or GPL-2.0+ (FFmpeg) |
tea |
The Gitea command-line client. | Creating releases and replacing their attachments from a workstation | MIT |
Steamworks SDK / SteamPipe / steamcmd |
Valve's SDK, content pipeline and CLI. | The Steam publication plan | Proprietary (Steamworks SDK Access Agreement) |
| Mermaid | Text-to-diagram syntax rendered in markdown. | The architecture diagrams on Server and elsewhere | MIT |
| Open Watcom v2 | C/C++ compiler and linker for 16-bit DOS and Win32; the snapshot release has macOS and Linux binaries. | Builds DOSINST (DOS and Win32) and GMENU; their pipelines install a pinned snapshot | Sybase Open Watcom Public License 1.0 |
| DOSBox / DOSBox Staging | DOS emulators. | Running the DOS programs locally, and headless in CI: GMENU's screen tests (Debian's DOSBox 0.74) and DOSINST's end-to-end tests (DOSBox Staging, with its NE2000 network emulation) | GPL-2.0+ |
| Wine | Runs Windows programs on Linux. | The tests of DOSINSTW.EXE in the DOSINST pipeline |
LGPL-2.1+ |
| Tool | What it is | Where it shows up | Licence |
|---|---|---|---|
| LibreSprite | Open-source pixel art editor for sprites and animation; a fork of Aseprite. | Sprite work | GPL-2.0 |
| Pixelorama | Cross-platform pixel art editor: layers, frames, custom brushes. | Sprite and animation work | MIT |
| IrfanView | Windows image viewer with batch and merge functions. | Merging images before unifying TIC-80 palettes | Freeware, free for non-commercial use |
| Pic-2-Tic | Web app that re-maps an image onto a fixed console palette. | Applying the PICO-8 palette to merged backgrounds | MIT |
| Unique Tile Finder | Java tool that reduces an image to its unique tiles. | Producing TIC-80 tiles — needs OpenJDK | Name your own price on itch.io; no licence stated |
| RLE image encoder | Run-length encoder for TIC-80 images. | Compressing TIC-80 images | MIT |
| Platform | What it is | How we reach it | Licence |
|---|---|---|---|
| Batocera | Plug-and-play retro gaming Linux distro. | The Batocera store engine installs into its ROM folders | GPL-2.0+ (Buildroot-based); bundled emulators per component |
| EmulationStation | Batocera's front-end, whose library lives in gamelist.xml. |
Our metadata and box art are merged into it, never over the user's own entries | MIT |
| RetroArch | Frontend for libretro cores: desktop, Android, Steam Deck, handhelds. | The RetroArch store engine writes .lpl playlists for it |
GPL-3.0 |
| libretro cores | The emulator plugins RetroArch loads. | vice_x64_libretro boots our .prg files, tic80_libretro our .tic cartridges; the WebAssembly builds of vice_x64sc and vice_xplus4 run inside EmulatorJS on the public site |
Per core: VICE GPL-2.0+, TIC-80 MIT |
| Steam | Valve's storefront; entry via Steamworks and the Steam Direct fee. | Planned for the point-and-click title — see the publication plan | Proprietary service |
| itch.io | Indie storefront. | Where TIC-80 Pro and Pixelorama are sold | Proprietary service |
| MS-DOS (and DOS on Windows 9x) | The 16-bit PC operating system, on real machines or in DOSBox. | DOSINST installs programs from our FTP store, GMENU is the game menu on top | Proprietary (MS-DOS); FreeDOS GPL-2.0+ |
| Library | What it does | Licence |
|---|---|---|
| Ruby on Rails 8 | The framework behind the Catalog API and the host of WarpEngine. | MIT |
| warp_engine | Our mountable engine gem: catalog domain, CI pipeline server, build endpoints, public API. | MIT |
| bbs (RuBBS) | Our Telnet BBS gem: Telnet, ANSI, widgets, themes, markdown, CSV persistence. | MIT |
| ActiveAdmin | The admin panel (blaze theme) for the catalog, the image library and the file manager. | MIT |
| Devise | Authentication for the admin panel. | MIT |
| Blueprinter | Serializers shaping the JSON API responses. | MIT |
| apipie-rails | REST API documentation, browsable as Swagger UI at /api/swagger. |
Apache-2.0 |
| RSpec | The test framework for the API and the engine. | MIT |
| RuboCop | Linting, on the rubocop-rails-omakase preset. |
MIT |
| Artii | FIGlet big-banner rendering inside RuBBS. | MIT |
| Library | What it does | Licence |
|---|---|---|
Ebitengine (github.com/hajimehoshi/ebiten/v2) |
The engine itself: rendering, input, game loop. | Apache-2.0 |
Ebiten audio |
Ebitengine's audio package, backing Inkwell's WAV/OGG/MP3 player at 48 kHz. | Apache-2.0 |
Inkwell (git.teletypegames.org/engines/inkwell) |
Our point-and-click adventure framework, consumed as a plain Go module. | MIT |
go-steamworks (github.com/Philipp15b/go-steamworks) |
Steamworks SDK bindings: achievements, cloud, overlay, rich presence. | Apache-2.0 |
go:embed |
Standard-library asset embedding; Rabbit Roller's assets live in the binary. | BSD-3-Clause |
wasm_exec.js |
The Go runtime helper shipped with every WebAssembly build. | BSD-3-Clause |
| Library | What it does | Licence |
|---|---|---|
| Phaser | The framework itself, pinned per project and fetched from a CDN at build time. | MIT |
| Vue 3 | The frontend framework of the public site. | MIT |
| Vite | Build tool and dev server for that frontend. | MIT |
| vue-router | Client-side routing, one router module per page. | MIT |
| Pinia | State stores, one per domain (software, events, members, git, blog, howtos, youtube, ui). | MIT |
| vue-i18n | Internationalisation of the frontend. | MIT |
| Tailwind CSS | Utility-first styling. | MIT |
| TuiCSS | Retro terminal look on top of Tailwind. | MIT |
| ESLint 9 | Linting on a flat config, for Vue and TypeScript. | MIT |
| Electron | Desktop shell of the WarpEngine Client; contextIsolation on, nodeIntegration off. |
MIT |
| electron-builder | Packages that client as an AppImage, a deb, an NSIS installer and a portable exe. | MIT |
| Node.js / npm | Runtime and package manager for the above; Node 22+ to install the client's dependencies. | MIT (Node.js), Artistic-2.0 (npm) |
| Library | What it does | Licence |
|---|---|---|
| Bevy | The ECS engine, a plain Cargo dependency. | MIT / Apache-2.0 |
| wasm-bindgen | JS glue for web builds; crate and CLI must be the same version. | MIT / Apache-2.0 |
| Cargo / rustup | The build tool and toolchain manager, including the wasm32-unknown-unknown target. |
MIT / Apache-2.0 |
| Library | What it does | Licence |
|---|---|---|
| LÖVE | The framework, and the official artifacts our binaries are fused into. | zlib |
| love.js | Emscripten LÖVE port; turns a .love into a web build. |
MIT |
luac |
The Lua compiler, used as a syntax check before packaging. | MIT |
| luacheck | Syntax errors and unused variables; gates the TIC-80 pipeline. | MIT |
| LDoc | Generates the API documentation packaged with every TIC-80 release. | MIT |
| lua-minify-tic80 | Minifies the concatenated source to fit the cartridge. | MIT |
| Library | What it does | Licence |
|---|---|---|
| The standard library, and nothing else | A deliberate constraint of warpstore and both store engines: the hosts range from a Batocera box with no pip to a desktop, and neither may be asked to install anything. |
PSF-2.0 |
http.server |
The built-in server behind make serve in the Phaser workflow. |
PSF-2.0 |
| pyftpdlib | The FTP server of the DOSINST store and the TTGWIKI export, and the FTP server of their tests — a server-side tool, so the standard-library rule of the store engines does not apply. | MIT |
| Library | What it does | Licence |
|---|---|---|
| mTCP | Michael B. Brutman's TCP/IP stack for DOS over a packet driver; DOSINST's FTP client is built on it, vendored in its repository. | GPL-3.0 |
| Crynwr packet drivers | The DOS network card drivers mTCP talks to; NE2000.COM for DOSBox Staging's emulated card. |
GPL-1.0 (version 1 only) |
| Winsock 1.1 | The sockets of Windows 95 and later: the network of DOSINSTW.EXE. |
Proprietary (Windows) |
| The Open Watcom C/C++ runtime | The C library of DOSINST and GMENU: files, DOS directory scans, BIOS keyboard, int86 calls to the BIOS and the mouse driver. |
Sybase Open Watcom Public License 1.0 |
| Library | What it does | Licence |
|---|---|---|
| The Free Pascal RTL | All the status bot needs: schedule loop and Discord API calls in one binary. | LGPL-2.1+ with static linking exception |