Deployment & Usage Guide: Discord Alternatives Wishlist
1. Prerequisites
- Python 3.6+ (script uses f-strings and
pathlib; test withpython --version) - Git (to clone the repository)
- Optional but recommended:
virtualenvorvenvfor isolated Python environment
No external Python packages are required—the script uses only the Python standard library.
2. Installation
-
Clone the repository:
git clone https://github.com/DukePantarei/discord-alternatives-wishlist.git cd discord-alternatives-wishlist -
(Optional) Create and activate a virtual environment:
python -m venv venv # On Linux/macOS: source venv/bin/activate # On Windows: venv\Scripts\activate
3. Configuration
No environment variables or configuration files are needed. The script reads data from platforms.json (included in the repository) and writes output to COMPARISON.md.
Important: Ensure platforms.json exists in the repository root. This file contains the single source of truth for all platform data and feature flags.
4. Build & Run
Generate the comparison table:
python generate_table.py
What it does:
- Reads
platforms.json - Processes feature groups defined in
FEATURE_GROUPS(Privacy, Pricing, Platform Support, etc.) - Applies emoji mapping (
yes→ ✅,no→ ❌,partial→ ⚠️, etc.) - Writes a formatted Markdown table to
COMPARISON.md
Output files:
COMPARISON.md— Main feature comparison table (auto-generated)- All other documentation files (
FEATURES.md,BACKGROUND.md, etc.) are static and already included—do not require generation.
Development workflow:
- Edit
platforms.jsonto update platform data or add new entries. - Run
python generate_table.pyto regenerateCOMPARISON.md. - Commit both
platforms.jsonand updatedCOMPARISON.mdto preserve the generated table.
5. Deployment
This project produces static documentation (Markdown files). Deployment means hosting the generated files as a static website.
Recommended deployment platforms:
-
GitHub Pages (simplest): Host directly from the repository.
- Push the repository to GitHub.
- Go to Settings → Pages.
- Set source to
mainbranch, root (/) folder. - Access site at
https://<username>.github.io/discord-alternatives-wishlist/
-
Netlify / Vercel: Drag-and-drop the repository folder or connect Git repository.
-
Any static web host: Upload all Markdown files (and optionally use a Markdown-to-HTML converter like
mkdocsorJekyllif HTML is desired).
Note: The repository is designed to be viewed on GitHub directly or via GitHub Pages. No server-side code is required.
6. Troubleshooting
| Issue | Solution |
|---|---|
python: command not found | Install Python 3.6+ from python.org or use package manager (apt, brew, etc.). |
FileNotFoundError: [Errno 2] No such file or directory: 'platforms.json' | Run the script from the repository root where platforms.json is located. |
JSONDecodeError in platforms.json | Validate JSON syntax (use python -m json.tool platforms.json). Fix any trailing commas or invalid characters. |
| Generated table looks misaligned | Ensure your terminal/editor uses monospace font. The script outputs fixed-width Markdown table. |
Permission denied writing COMPARISON.md | Check write permissions in the directory (chmod u+w . on Unix). Avoid running as root/sudo. |
| Emojis not displaying correctly | Use a Markdown viewer that supports Unicode emojis (GitHub, modern browsers). |
Updating data: Only edit platforms.json. Do not edit COMPARISON.md manually—it will be overwritten on next script run. Add platform notes in the notes field of platforms.json; they will appear in the table's tooltip column.
Contributing back: After updating platforms.json and regenerating COMPARISON.md, submit a Pull Request with both files changed.