Vibestep is a local-first beatmap studio with a rhythm-game playtest mode. Import a song, align its beat grid, record or edit lane events, then playtest the result.
Open vibestep.vercel.app in a modern desktop browser. No account or installation is required. Chrome or Edge on Windows is the currently tested setup.
To play an existing map:
- Import its shared JSON bundle from the Beatmaps card, or select a map already in your local library.
- Provide the corresponding audio. Under Config → Import audio, choose a supported MP3, M4A, WebM, Ogg, or WAV file.
- Open Play, select the song and beatmap, then start playback.
The file is copied into this browser profile's IndexedDB storage. It is not uploaded to Vibestep.
For YouTube audio, install the optional Windows companion from Config → Download companion for Windows. Run Vibestep-Companion-Setup.exe, keep its window open, paste a supported YouTube URL, then select Import. The unsigned early installer may require More info → Run anyway. Confirm that it came from github.com/Soleone/vibestep.
First companion launch downloads checksum-verified media tools and can take longer. YouTube audio remains in its private cache. Closing the companion stops it completely.
Before recording or moving notes, establish these two essentials:
- Find the song's BPM. Look it up, enter a known value, or use Start tap in the Editor to tap along and detect it.
- Set beat 1. Move the playhead to the first downbeat, then select Set beat 1 here.
These values define the beat grid. If either is wrong, snapping, quantization, bar repeats, timeline grid lines, and rhythm timing will not line up reliably. Recording purely by feel can still capture input, but later editing against the grid will fail.
Once the foundation is correct:
- Select the song and beatmap in Editor.
- Arm the lanes you want to record.
- Choose add or replace recording, then perform along with playback.
- Refine notes in the timeline and select Save.
- Open Play to test the finished map.
| Lane | Keyboard | Gamepad |
|---|---|---|
| Kick | A |
A |
| Snare | D |
B |
| Low melody | Left Arrow |
D-pad left |
| Mid melody | Down Arrow |
D-pad down |
| High melody | Right Arrow |
D-pad right |
Controls can be changed from Config.
Vibestep has no cloud account. A small catalog of redistributable built-in songs may be downloaded from Vibestep's public audio storage. Built-in audio is held in session memory for playback and is not written to IndexedDB.
| Data | Storage |
|---|---|
| Songs, timing profiles, and beatmaps | This browser's local storage |
| Built-in licensed audio | Session memory after a complete verified download |
| Files selected without the companion | This browser's IndexedDB storage |
| YouTube and companion-imported audio | The companion's private cache on your computer |
| Portable backups and shared maps | JSON files you explicitly export |
The hosted app serves only the application. It does not receive or store imported audio. Browser storage belongs to one browser profile on one device.
Open Config → Library transfer → Export library regularly. Exported backups contain source links, timing profiles, and beatmaps, but intentionally exclude audio. Keep original audio files because restoring in another browser may ask for them.
Clearing site data, resetting the browser profile, or uninstalling the browser can remove the local library. Vibestep has no cloud recovery service.
The prerequisite sharing model from task j7s is complete. Export from the Beatmaps card to create a portable JSON bundle for one map, multiple difficulties, or a multi-song mixtape. Bundles include source links, timing, and notes, but no copyrighted audio.
Recipients import the bundle and provide the original file or retrieve the corresponding YouTube source locally with the companion.
Start Vibestep Companion, leave its window open, and use Pair this browser if Vibestep does not switch to paired automatically.
Choose the original file again. Backups and shared bundles intentionally do not contain audio.
Confirm that the companion says Ready, the URL is a supported YouTube URL, and the computer is online. Close and reopen the companion if its first-run tool download was interrupted.
Download the newest installer from GitHub Releases. Installing it over the existing version keeps the companion cache.
Requirements:
- Node.js 24 or newer
- npm
- Linux x64 or Windows x64 for automatic media-tool provisioning
Install the exact locked dependencies and start Vite plus the companion:
npm ci
npm run dev:allOpen http://localhost:5173 if it does not open automatically. The first companion startup downloads pinned, checksum-verified media tools.
Useful commands:
npm test
npm run lint
npm run build
npm run dev:companionPublishing licensed built-in songs to Cloudflare R2 is documented in docs/builtin-songs.md.
The app is a static Vite deployment. Companion development and Windows releases are documented in companion/README.md and companion/RELEASE.md.