← Portfolio
Current Era // Feb 2026

CodeFactory

Industrial-themed terminal elevator with a Rust backend and xterm.js. A patched portable-pty makes it run on Android where node-pty cannot.

JavaScript 38% Rust 33% HTML 15% 1 MB

Project Overview

A full-stack terminal application disguised as an industrial elevator. Each "floor" is a different tool: Git viewer, Beads Board, terminals, dashboards. The Rust backend uses Axum for HTTP/WebSocket and a patched portable-pty crate to spawn real PTY sessions, including on ARM64 Android via Termux -- something node-pty simply cannot do. It works as a PWA on both desktop and mobile.

6+
Elevator floors / pages
1 MB
Repository size
5
Languages used
PWA
Desktop + Android

Tech Stack

Axum (Rust) serves the web frontend and handles WebSocket connections to tmux-backed PTY sessions. The frontend uses xterm.js for terminal rendering with a custom industrial CSS theme.

JavaScript 38% Rust 33% HTML 15% CSS 12% Shell 3%
Axum (Rust) portable-pty (patched) xterm.js tmux WebSocket Ratatui PWA

Architecture

The browser communicates with Axum over WebSocket. Axum spawns PTY sessions via a patched portable-pty, connecting them to tmux for session persistence. The elevator UI is pure CSS with animated doors and industrial theming.

Browser (xterm.js + Industrial CSS)
    |
    WebSocket (bidirectional)
    |
Axum (Rust web server)
    |
portable-pty (PATCHED for ARM64 Android)
    |
PTY --- tmux sessions
    |
    +-- Elevator Floors:
        F1  Git Viewer
        F2  Git Graph
        F3  Beads Board
        F4  Terminals
        F5  Termux Dashboard
        F6  Log Viewer
F6 Log Viewer
F5 Termux Dashboard
F4 Terminals
F3 Beads Board
F2 Git Graph
F1 Git Viewer

Key Features

🏭
Elevator UI
Animated elevator doors with industrial CSS theming. Navigate between floors with smooth transitions and mechanical sound design.
🦀
Rust + Axum Backend
High-performance Rust web server using Axum for both HTTP routes and WebSocket terminal connections. Memory-safe and fast.
📱
Android PTY Support
Patched portable-pty crate enables real PTY sessions on ARM64 Android via Termux. Something node-pty cannot achieve.
🖥
Multi-Floor Pages
Git viewer, Git graph, Beads Board, terminals, Termux dashboard, and log viewer. Each floor is a self-contained tool.
📸
Mobile Optimized
Bottom bar navigation, extra keys row, chat input mode, pinch-to-zoom, and swipe panels. Full terminal experience from a phone.
🤖
Claude Integration
Session status glow effects indicate Claude activity. Visual feedback for when AI is thinking, writing, or idle.

Stats

Feb 28
Created, 2026
1 MB
Repository size
5
Languages
PWA
Installable app

Lessons Learned

01

Rust Web Development

Axum's tower-based middleware architecture is elegant. Rust's ownership model makes concurrent WebSocket handling safe by default. The compile-time guarantees are worth the learning curve.

02

Patching portable-pty for ARM64

Android's Termux environment has unique PTY requirements that node-pty cannot handle. Forking and patching portable-pty's system calls for ARM64 Linux unlocked true mobile terminal functionality.

03

Industrial UI Design

Theming a developer tool as a physical elevator creates memorable UX. Animated doors, floor indicators, and mechanical sounds transform a utilitarian terminal multiplexer into something with personality.

04

PWA on Desktop and Android

Progressive Web Apps bridge the gap between web and native. A single codebase that installs as an app on both desktop Linux and Android Termux, with offline support and native-feeling interactions.