⚠️ DJ Helper is no longer being worked on. I learnt a lot about the problem space whilst developing it but the all-in-one design to the app has proven quite limiting, with a lot of work required to re-implement basic browser functionality in Electron. I will be following this with a new, more streamlined approach.
This is an app for helping DJs to construct and manage lists of tracks whilst browsing online music sources such as Bandcamp and Beatport. More generalised digital music curation features may be added in the future, focussing on ownership / downloadable content over streaming.
Most music apps these days are geared around streaming, with DJs and digital record collectors being overlooked. Existing apps serving this demographic broadly fall into three categories:
- Local Music Management / Playback (iTunes, Clementine, etc.)
- Online Music Acquisition (Bandcamp, Beatport, etc.)
- DJ Software (Rekordbox, Traktor, etc.)
The problem is that the places for acquiring new digital music are online and totally separated from the places where the downloaded tracks end up. Having to cross-reference different offline and online lists with all the different music platforms and manage the state of each track (non-triaged / triaged / listened / bought / downloaded / in library) is tedious.
This problem will be made a lot easier if the gaps between local library, DJ software and online streaming / download platforms can be bridged in some way.
See the current Releases for working builds to download and install.
PNPM is the recommended package manager for use with this app, though others will likely work. The following command will initialise the repository for development:
pnpm i
To start the development server:
pnpm dev
Hot Module Replacement (HMR) is in use for rapid iteration on both renderer
and main
processes.
The following technologies are used:
- Electron (App Framework)
- TypeScript (Core language)
- Electron-Vite (Development, Build and Deployment tooling)
- React (UI)
- Zustand (State management)
- PostCSS (CSS tooling)
- TailwindCSS (Styling)
- Vitest (Unit Testing)
- Testing Library (Unit Testing)
- WebdriverIO (End to End Testing)
- Prettier (Code formatting)
- ESLint (TS & JS linting)
- StyleLint (CSS linting)