Skip to content
← Back to Projects

StarBase 118

The Star Trek community I founded in 1994, and what runs it.

StarBase 118 PBEM RPG

StarBase 118 PBEM RPG

That's a lot of letters, right? PBEM stands for "Play By Email," and RPG stands for "Role-Playing Game."

In 1994, on AOL, I co-founded a Star Trek role-playing game soon after learning about them in chat rooms. I was a Star Trek fanatic, as a kid, and I loved the utopian vision of the future mixed with the sense of cool, calm competency that everyone on the show gave off amidst the vast interplay of species in the galaxy.

That game grew into a community that I still have a hard time believing exists to this day, and which I've led for over 30 years.

Over the years I've watched people go through many phases of life, meet fellow members and get married, have kids, and even divorce. It's been the privilege of a lifetime to lead and watch all of this happen.

Beyond all that, the game provided me with a testing ground for leadership, community, and technology like perhaps nothing else could have.

Staff Operations Platform

Replacing the mess of Google Sheets, email chains, and tribal knowledge we'd been using. 15-table data model, 136 members imported, NocoDB backend, Authentik SSO, Next.js admin panel with role-based access. Then: a full 10-point security audit — IDOR fixes, CSRF validation, rate limiting, audit logging, PII filtering by role, and an error diagnostics dashboard. Open to the whole active fleet since August 2026.

Visitor Fingerprinting Plugin

WordPress plugin that fingerprints visitors (canvas, WebGL, fonts, screen data) and checks them against banned users when someone applies to join. Catches the folks who get banned and come back under a new name.

438K-Post Archive

Every collaborative story the community has ever written. Moved off Firebase in August 2026 and now served from the main site, with the final export kept in Backblaze B2 and on the NAS.

4-Pipeline Backup System

Offsite backups for everything: cPanel snapshots, custom DB dumps (had to work around a 268MB kernel memory cap), the final Firebase archive export, and VPS configs. Migrated all 4 servers from iDrive to Backblaze B2 after iDrive proved unreliable.

1.2M Email Archive

1.22 million messages across three accounts (446K personal Gmail, 775K SB118 Gmail, iCloud), indexed for full-text search using Notmuch and Xapian. Instant server-side search that would take grep minutes now takes milliseconds.

MediaWiki 10x Speedup

Got a 54,000-page wiki from 1.5s down to 0.15s page loads. Migrated to PHP 8.2 + FPM, added APCu caching, turned on OPcache JIT, and cleaned out a 1.38GB stale cache table.

WordPress 14x Speedup

WordPress Multisite homepage went from 3.4s to 0.24s. Cleaned out 87MB of orphaned tables, removed 5 themes nobody was using, and optimized 284 database tables.

SEO Program

SEO overhaul across all 5 web properties. RankMath on WordPress, GA4 everywhere, Search Console for 3 domains, 11 new content pieces, and drip email campaigns.

Constitution Rewrite

Rewrote the community's governing documents from scratch. Read through 114 forum posts of old debate, pulled together two previous rewrite attempts, and put together an annotated review presentation with a 55-row traceability matrix. After the first review round, migrated 102 web annotations into 14 discussion threads on the community forum — automated via the forum API — so the debate could happen where people actually talk.

Self-Hosted Workflow Automation

Deployed Activepieces (open-source, MIT-licensed) as an N8N alternative for the community's FOSS committee. Docker Compose on the VPS, wired into the same backup pipeline as everything else, with a public docs page explaining how to contribute workflows.

Annual Address Builder

App for putting together the community's annual address from 11 groups' submissions. Role-based auth, Claude API for AI-assisted summaries, and wiki integration.

Server Monitoring

Self-hosted Netdata with custom health alerts and a status dashboard that pulls live metrics via API every 30 seconds.

Security Plugin

WordPress must-use plugin that locks down private multisite sub-sites. The old plugin left the REST API and RSS feeds wide open. This one blocks everything. Covers 6 internal staff sites.

Email Infrastructure

Set up Sendy for 3 brands after AWS SES denied production access. Switched to SMTP2GO, designed custom HTML email templates, built a 3-email drip sequence, and redid 9 notification templates across 4 sites.