- README.md: Project overview, architecture, front-ends (WML/XHTML/telnet BBS), MUD RPG, games, admin tools, history from 1997 to present, quick start, technical notes - TODO.md: Prioritized improvement roadmap (high/medium/low), monthly roadmap, known issues, testing guidelines, contribution process - AGENTS.md: Agent workflow conventions, code structure, testing strategy, deployment config, debugging strategies
txt3 BBS (wap.txt3.net)
A retro multi-front-end community platform that brings back the early 2000s internet experience of txt3 (Connecting people - since 1997). One account works across three front-ends: WML mobile, XHTML web, and telnet BBS, sharing forums, private mail, profiles, games, and an RPG MUD.
Front-ends
1. PHP Web Site (wap.txt3.net)
- Markup: Auto-detects WML 1.1 (for period phones) vs XHTML (modern browsers)
- URL: https://wap.txt3.net/
- Features: Forums, private messaging, user profiles, embedded games, RPG character overview
- Tech: PHP 8+, SQLite, session IDs in URL for WAP clients without cookies
- Responsive: Designed to work on 2-inch phone screens up to desktop browsers
2. Telnet BBS (wap.txt3.net:12300)
- Protocol: Raw telnet with minimal negotiation (RFC 854 compliant)
- URL:
telnet://wap.txt3.net:12300orssh -t wap.txt3.net nc 12300 - Features: Text-based interface to the same forums, mail, games, and full MUD RPG
- Tech: Python 3, SQLite, same database as web front-end
- Control: Arrow keys for movement, single-letter commands (k=look, t=take, k=fight)
3. RPG MUD (shared)
- Integrated: The telnet BBS includes a full RPG world separate from web features
- Play: Create a character when you login; explore rooms, fight monsters, find items, level up
- Items: Weapons, armor, potions (healing), gold bank
- PvP: Attack other players in the same room
- Leaderboards: High scores across all games
How It Works
Single Database: Both front-ends read/write the same SQLite database (public_html/data/wap.sqlite). You create one account and it works everywhere:
- Login on the web → check mail → post in forums → play games
- Or start a telnet session → explore the MUD → fight monsters → collect loot
- Your character, items, and game scores are shared across all three interfaces
Password Security: PHP handles bcrypt hashing. Python BBS calls the PHP binary to verify/create passwords - no shared password library needed.
Markup Detection: Clients advertising vnd.wap.wml in the Accept header get WML 1.1 decks with softkeys. Everything else gets XHTML. You can manually force a markup with ?m=wml or ?m=html.
Quick Start
Running the Telnet BBS (development)
cd /home/jp/IdeaProjects/txt3-wap
python3 bbs/bbsd.py
Requires php binary at /usr/bin/php for password hashing.
Web Front-end
Already deployed at https://wap.txt3.net
Database
Existing seed data includes:
- 3 forums: General, Mobile, Games
- Pre-populated MUD world with rooms, monsters, and items
- Default admin user (admin/wapadmin)
Client List
Telnet clients that work well:
telnet wap.txt3.net 12300(standard)- PuTTY in raw mode
- Windows telnet
nc wap.txt3.net 12300
Mobile: Any WAP 1.1 browser can access wap.txt3.net directly (phones from early 2000s still work)
Project History
- 1997: txt3 begins "Connecting people"
- 2002-2003: First txt3 domains archived by Internet Archive
- 2004: txt3.net joins family, original WAP deck launched
- 2016: Revival with unlimited free SMS + forum + blog
- 2025: This hybrid reborn - same account across WML, XHTML, and telnet
See public_html/about.php for detailed timeline.
Technical Notes
Security
- Hardened systemd service (
txt3-bbs.service) with read-only filesystem protection - Passwords hashed with PHP's bcrypt (
password_hash/password_verify) - Tailscale-only listener for BBS (port 12300)
Architecture
- PHP:
bootstrap.php→db.php→ui.php→mud.php - Python:
bbsdb.py→mud.py→boards.py/games.py/screens.py - Shared tables: users, messages, forums, topics, posts, scores, matches, sp_games
- MUD tables: mud_rooms, mud_mobs, mud_items, mud_spawn, mud_chars, mud_events, etc.
MUD Controls
- Movement:
[n/s/e/w/u/d](North/South/East/West/Up/Down) - Actions:
[l]ook,[k]ill <monster>,[t]ake <item>,[w]ield/[d]rink [i]nventory,[sc]ore,[b]ank <amt>,[bank]interface- PvP:
[a]ttack <player>in same room [board]for leaderboards
Games
- Single-player: Guess the Number (scoring by tries), Quick Quiz (5 questions)
- Multiplayer: Noughts & Crosses (TTT) and Nim - 21 sticks (turn-based)
- Scores stored in
scorestable; leaderboards show top 5 per game
Admin Tools
- Telnet BBS:
[A]dmin tools→ user management, forums, topics, MOTD, stats - Web: Admin link visible on profile when
is_admin=1
Community
This isn't just a technical project - it's a time capsule of early internet culture. The same account works whether you're:
- On a modern browser checking messages
- On a vintage phone browsing WML
- Sitting at a terminal with
telnet
The MUD adds a gamified layer, and games bridge web and telnet play. Your character progresses whether you type commands or click links.
Future Enhancements (TODO)
See TODO.md for detailed roadmap.
License
Original txt3 concept from 1997, this revival released under original terms. No commercial redistribution without explicit permission from JP.
Questions? Comments? Bugs? Use the admin tools or contact via the website. Remember: This site works best with patience and a nostalgic spirit.
Recent Changes
- Initial commit: All three front-ends, shared database, basic MUD world
- Both front-ends synchronized on first boot
- telnet BBS service hardened with systemd unit
- Password hashing handled entirely by PHP (no shared libs)