OpenMarch is a free, open-source, fast and intuitive drill writing app for the marching arts. This repository is the entire OpenMarch codebase.
To be a free and easy drill writing solution for marching bands, indoor programs, and applicable performing ensembles. OpenMarch hopes to be enough for 90% of ensembles with reasonable design needs. We want to make drill writing effortless.
We are using a monorepo with Turbo, pnpm, and Node.js 22. Here are the main commands you need to know:
# Install packages
pnpm install
# Prepare electron app
pnpm desktop app:prepare
# Run electron & vite
pnpm desktop dev
# Run the website's astro dev server
pnpm site dev
# Run the design system playground
pnpm ui dev
# Fix
pnpm fix
# or individually:
pnpm format
pnpm lint
pnpm spellcheck
# can also run tasks in specific packages
pnpm desktop lintNote
If you're having issues with the desktop app's database when running the dev server or installing, try following these steps and doing a clean pnpm install.
See all commands in each project's package.json.
Join our Discord to interact with the other contributors and to get support.
- App framework - Electron
- Frontend - React
- State - Zustand
- Styling / UI - Radix & Tailwind
- Testing - Vitest & Playwright
Download the current version of the app on our website, or the GitHub releases on the sidebar here.
Check out the update videos and posts here, to stay up to date with the latest version.
Join our Discord to interact with the community and to get help!
Check out our full feature list and our beginner guide too.
If you're wanting to test the latest and unstable features, go to the releases tab on GitHub and download the latest Pre-release version displayed. Feel free to give feedback and report bugs in GitHub issues or the Discord.
Always keep in mind, OpenMarch is still in development. You probably will encounter bugs, issues, and missing features. Help support us grow by contributing or donating!
OpenMarch is written under the AGPL-3.0 license. All code written for this project will forever and always be open and accessible.

