This repository contains the latest production source for Intro To Rhythm (I2R). This codebase was developed to upgrade a previous version of introtorhythm.com. The goals of this upgrade are threefold:
- Update platform versions to the latest stable releases
- Modernize existing features
- Remove deprecated or unnecessary legacy features
See previously deprecated (June 11, 2026) source code archived here: github.com/seanpierce/archive-introtorhythm.com
Intro To Rhythm (I2R) is a freeform mix series and live-streaming audio station that has been running since 2017.
All episodes and content are created and owned by the contributing artists, produced exclusively for I2R.
Beyond broadcasting, I2R supports open-source projects and the spirit of collaboration and experimentation.
If you’re interested in building your own live-streaming station or podcast platform, feel free to explore the source code (MIT License).
Questions and comments: hello@introtorhythm.com
In this upgrade:
- Frameworks: Django
3.x → 6.x, Vue2.x → 3.x - Dependencies: Updated across the board
- Typescript: All
.jswill now be.ts(because Ihatelove myself) - Features: Some deprecated features removed, core features modernized
- Streaming: Live, pre-recorded, and syndicated shows
- Chat: Rebuilt with Socket.io and typescript (moving away from Firebase)
- Content API: Migrating from the existing custom solution (class-based views as API endpoints) to Django REST Framework + model serialization (easier to maintain and industry-standard)
- Automated scheduling: Existing cron + Python script system remains, with room for improvements
- Subscribers: Email subscriptions haven’t been used in years. This may return in a more thoughtful, enhanced form later.
- Episodes:
- Early on, I2R focused on pre-recorded episodes, but once live streaming became the core, episode traffic dropped off.
- Maintaining and hosting large audio files was costly and time-consuming, so the feature has been deprecated.
- That said, if I2R gains more consistent live programming, automated episode management could be revisited in the future.
- Python 3.13.7
- Node 26.7.0
- npx 11.9.0 (typescript compiler)
- Django 6.0.6
- Vue ^3.5.18
# Ensure Python v3.13.7 is installed and active in your OS
# Ensure Node v26.7.0 is installed and active in your OS
# Clone this repository
git clone https://github.com/seanpierce/ITR_upgrade
# Create BE virtual environment
cd introtorhythm_backend
python3 -m venv venv
source ./venv/bin/activate # or ./venv/Scripts/activate on Windows
# Install BE dependencies
pip install -r requirements.txt
# Create and migrate database
python3 manage.py migrate
# Create superuser (admin account)
python3 manage.py createsuperuser
# Run BE local dev server
python manage.py runserver
# Install FE dependencies
cd [project root]/introtorhythm_frontend
npm install
# Configure Vite .env variables - reference the .env.example file for reference. Create a .env.local file and add the example keys and values.
# Run FE local dev server
npm run dev
# Run chat app local dev server
cd [project root]/introtorhythm_frontend/src/chat
npx tsc --project tsconfig.server.json # compile the server code
node serrver.js # run the processSee the Wiki > here <