Skip to content
xero edited this page Nov 21, 2025 · 16 revisions

teXt0wnz Documentation

preview

This directory contains comprehensive guides for using, developing, testing, and deploying the teXt0wnz editor.

Quick Links

For Users / Artists

For Developers

For System Administrators

Core Documentation

Application Guides

  • Client Editor Manual - Visual guide to the Frontend text art editor

    • Drawing tools and features
    • Keyboard shortcuts and mouse controls
    • Color management and palettes
    • File operations and formats
    • Canvas operations
    • Client-side architecture
  • Architecture - System architecture and design

    • High-level overview and application modes
    • Client and server architecture
    • Data flow and module structure
    • Build system and code splitting
    • Storage and persistence strategies
    • Design patterns and performance optimizations
  • Collaboration Server - Backend real-time collaboration server

    • Server architecture and features
    • Installation and setup
    • Command-line options
    • WebSocket protocol
    • Session management
    • Process management (systemd, forever)
    • SSL configuration
  • Tutorials - Classic ANSI drawing tutorials

    • library of 20+ hand-collected ANSI tutorials spanning decades of the scene.
    • Each showcases unique techniques, styles, and the vision of a talented artist.
    • Tutorials are ANSI files, so they open in the editor to test the techniques in context.

Development Guides

  • Project Structure - Comprehensive file and module organization

    • Directory structure and file organization
    • Client and server module descriptions
    • Configuration files
    • Test structure
    • Build output
    • Naming conventions
    • Module import patterns
  • Building and Developing - Development workflow and build process

    • Requirements and quick start
    • Build tools (Vite, PostCSS, Tailwind CSS)
    • Bun/NPM scripts reference
    • Environment variables
    • Development workflow
    • Linting and formatting (ESLint, Prettier)
    • Project structure
  • Environment Variables - Configuration and environment setup

    • Build-time variables (Vite)
    • Runtime variables (Server)
    • CI/CD secrets (GitHub Actions)
    • Docker environment configuration
    • Security best practices
  • Testing - Comprehensive testing guide

    • Testing strategy (Vitest, Testing Library, Playwright)
    • Unit testing with Vitest
    • DOM/component testing with Testing Library
    • End-to-end testing with Playwright
    • Test coverage and metrics
    • Writing tests
    • Troubleshooting
  • CI/CD Pipeline - Continuous integration and deployment

    • Workflow architecture and orchestration
    • Core workflows (lint, build, test, deploy)
    • Docker image builds and registry
    • Documentation synchronization
    • Artifacts and reports
    • Security and permissions
    • Monitoring and debugging

Deployment Guides

  • Webserver Configuration - Webserver setup and configuration

    • Nginx configuration (recommended)
    • Apache configuration
    • Caddy configuration
    • SSL/HTTPS setup with Let's Encrypt
    • Performance optimization
    • Troubleshooting
    • Monitoring
  • Other Tools - Additional development and deployment tools

    • Development tools (pin-github-action, npm-check-updates)
    • Git tools and hooks
    • Code quality tools
    • Performance tools (Lighthouse CI, bundle analyzer)
    • Deployment tools (serve, PM2, Docker)
    • Monitoring tools (Uptime Kuma, Netdata)
    • Security tools (npm audit, Snyk, Dependabot)
    • Debugging tools

Technical Specifications

Policies

Supplemental

  • Logos - ASCII art logos for the project
  • Pre-commit Hook - Git pre-commit hook script
  • Examples - Sample artwork to view and edit
    • ANSI artwork by xero (alias: x0^67^aMi5H^iMP!)
    • XBin artwork by hellbeard (alias: xz^dS^iMPuRe!)
  • Browser Compatibility Analysis - Guide for GitHub Copilot Agents to analyze the codebase and generate browser support statistics from raw caniuse.com data sets.

Contributing

When contributing documentation:

Tip

  1. Follow the existing structure and style
  2. Use proper Markdown formatting
  3. Include code examples where appropriate
  4. Test all commands and configurations
  5. Keep documentation up to date with code changes
  6. Cross-reference related documents

Note

See: Contributing for more details

Getting Help

If after reading the docs you still need help, search our GitHub Issues or create a new one describing your problem or desired behaviour.

Clone this wiki locally