- Collections
- Easier and faster search
- UI more compact than official client
- Add songs to song playlists
- Sharing
- Integrate my other client to check the new album releases
Beardify is a Spotify web client that fixes one of the biggest issues for me: the possibility to create album playlists (called "Collections" in Beardify) in addition to song playlists.
Beardify also adds other features that I feel are missing, like artist related links, and a more readable view of their discography than the current official client.
In the official client, the search returns information that doesn't interest me, so I made sure to keep only the essential, in a compact view
The trick is to base it on the user's playlists, and check if the keyword "#Collection" exists in the name, and if it does, it becomes a collection. The advantage is that we can transform on the fly existing playlists of songs into a collection and vice versa, and that I do not break the current organization of users, since they are only "classic" playlists.
Spotify's web API doesn't expose folder management, so I can't manage them on my end, so the playlist is flat.
Spotify web API does not allow non-premium users
bun install # install dependencies
bun run dev # web dev server (port 3000)
bun run tauri:dev # desktop app with hot-reload
bun run lint # TypeScript + ESLint + Stylelint
bun run fix # auto-fix lint issues
bun run build # production web build (runs lint first)
bun run tauri:build # production desktop buildReleases are automated via GitHub Actions. The workflow triggers on version tags and produces a signed Windows installer + latest.json for the in-app updater.
Two secrets must be set in the GitHub repository settings:
| Secret | Description |
|---|---|
TAURI_SIGNING_PRIVATE_KEY |
Minisign private key used to sign update artifacts |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD |
Password for the private key (leave empty if none) |
To generate a keypair: bun run tauri signer generate -- -w tauri.key
bun run scripts/release.ts patch # 0.1.2 → 0.1.3
bun run scripts/release.ts minor # 0.1.2 → 0.2.0
bun run scripts/release.ts major # 0.1.2 → 1.0.0
bun run scripts/release.ts 1.2.3 # explicit versionThe script bumps the version in package.json and src-tauri/tauri.conf.json, commits, tags, and pushes — which triggers the GitHub Actions release workflow. The workflow builds the app, signs the artifacts, and publishes a GitHub Release with a latest.json manifest.
On startup (5-second delay), the desktop app checks:
https://github.com/BeardedBear/beardify/releases/latest/download/latest.json
If a newer version is available, a toast appears in the bottom-right corner. The update is cryptographically verified before installation. The updater only runs inside the Tauri desktop app, not in the browser.


