Repository navigation
Open
Labels
help wantedExtra attention is neededExtra attention is needed
Description
Null Motion has 1,000+ stars and we'd love help building it out. It's small, has zero dependencies, and runs with npm start, so your first PR can land today.
Good first issues (small, files listed)
- Accessibility pass on the preview page #6 Accessibility pass on the preview page
- Catch errors in the request handler so one bad request can't crash the server #23 Catch errors in the request handler so one bad request can't crash the server
- Show a clear message when the port is busy or PORT is invalid #24 Show a clear message when the port is busy or PORT is invalid
- build-showcase.mjs deletes showcase/ before checking that its inputs exist #25 build-showcase.mjs deletes showcase/ before checking that its inputs exist
- Give the media scripts a clear error when FFmpeg or the library is missing #27 Give the media scripts a clear error when FFmpeg or the library is missing
- Make npm run check syntax-check scripts/ and test/ #28 Make npm run check syntax-check scripts/ and test/
- Add tests for media streaming routes (Range, 416, HEAD, audio) #29 Add tests for media streaming routes (Range, 416, HEAD, audio)
- Move the export crop math into a module and test it directly #30 Move the export crop math into a module and test it directly
- build-waveforms drops the last audio window and overflows on long videos #31 build-waveforms drops the last audio window and overflows on long videos
- Templates page shows no templates when localStorage is blocked #36 Templates page shows no templates when localStorage is blocked
- Script and Pipeline pages stall when localStorage writes fail #37 Script and Pipeline pages stall when localStorage writes fail
- Pressing Enter to confirm IME input submits the prompt composer #38 Pressing Enter to confirm IME input submits the prompt composer
- Give the template prompt modal dialog semantics and keyboard focus #39 Give the template prompt modal dialog semantics and keyboard focus
- Label script beat controls and make "off" beats non-editable by keyboard #40 Label script beat controls and make "off" beats non-editable by keyboard
- Make the "Add video" and script import buttons reachable by keyboard #41 Make the "Add video" and script import buttons reachable by keyboard
- Add an on-screen exit to the editor's Present mode #42 Add an on-screen exit to the editor's Present mode
- Script page run list calls an undefined safeHttpUrl() #43 Script page run list calls an undefined safeHttpUrl()
Bigger pieces (help wanted)
- New draft beat kinds: code, map, timeline #8 New draft beat kinds: code, map, timeline
- Export settings: size, frame rate, quality #9 Export settings: size, frame rate, quality
- Export in Firefox and Safari #10 Export in Firefox and Safari
- Test and document macOS and Linux setup #11 Test and document macOS and Linux setup
- Export a single section or a time range #12 Export a single section or a time range
- Make import and section scripts skip a bad reference instead of aborting #26 Make import and section scripts skip a bad reference instead of aborting
- Check encoder support before export instead of failing after the render #32 Check encoder support before export instead of failing after the render
- Stop the export from hanging forever when the hidden film stalls #33 Stop the export from hanging forever when the hidden film stalls
- Stream exported MP4s to disk instead of holding the whole file in memory #34 Stream exported MP4s to disk instead of holding the whole file in memory
- Add Last-Modified/ETag and 304 responses for static files and media #35 Add Last-Modified/ETag and 304 responses for static files and media
- Keep every site-shell nav link visible on phones #44 Keep every site-shell nav link visible on phones
- Contain and restore focus in the Templates page overlays #45 Contain and restore focus in the Templates page overlays
- Pause template previews that are off-screen or in a hidden tab #46 Pause template previews that are off-screen or in a hidden tab
- Stop the Renders page from rebuilding and re-announcing itself every 12s #47 Stop the Renders page from rebuilding and re-announcing itself every 12s
- Fix keyboard behavior of the AI tools dock tabs and Escape #48 Fix keyboard behavior of the AI tools dock tabs and Escape
How it works
- Comment on an issue to claim it.
- Fork,
npm run dev, make the change, runnpm test && npm run check. - Open a PR with a screenshot or GIF for anything visual. We review within a couple of days.
Every contributor gets credited in the release notes. Ideas → Discussions, chat → Discord.
Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is needed
Activity
sadan-dev commentedon Nov 4, 2026
Hi, I’d like to work on this. Is it still available?