Skip to content
Open Source · Community · GitHub

WANT TOCONTRIB-UTE?

Screenplay Studio is open-source. Its quality depends entirely on people who care enough to look at the code and make it better. That includes you.

ACTIVELY ACCEPTING CONTRIBUTIONS
View on GitHub
0+OPEN ISSUES
GOOD FIRST
NEXT.JS 14·TYPESCRIPT·SUPABASE·TAILWIND CSS·REACT·OPEN SOURCE·GOOD FIRST ISSUES·FILM & TV·PLAYWRIGHT·VERCEL·REALTIME·NEXT.JS 14·TYPESCRIPT·SUPABASE·TAILWIND CSS·REACT·OPEN SOURCE·GOOD FIRST ISSUES·FILM & TV·PLAYWRIGHT·VERCEL·REALTIME·
Ways To Contribute

WHAT WE
NEED.

Code

Good First

Fix bugs, ship features, refactor, improve performance. TypeScript / Next.js / React / Supabase stack.

Design

Good First

UI/UX improvements, icon sets, accessibility audits, print layout polish, mobile responsiveness.

Documentation

Good First

Write guides, how-to articles, API references, and setup documentation for new contributors.

Testing & QA

Write unit, integration, and end-to-end tests. Report bugs with clear reproduction steps.

Community

Good First

Answer questions in discussions, triage issues, help onboard new contributors, write tutorials.

Translations

Good First

Help bring Screenplay Studio to non-English speaking writers. Any language welcome.

Step By Step

HOW TO
DO IT.

01

Fork & Clone

Fork the repository on GitHub, then clone your fork locally.

TERMINAL
git clone https://github.com/YOUR_USERNAME/screenplay-studio.git
cd screenplay-studio
02

Install Dependencies

Install Node.js dependencies and set up your local environment file.

TERMINAL
npm install
cp .env.example .env.local
# Fill in your Supabase URL and anon key
03

Create a Branch

Branch off main with a descriptive name. Use the type prefix that matches your change.

TERMINAL
git checkout -b feat/mobile-editor
# or: fix/pdf-export-crash
# or: docs/keyboard-shortcuts
04

Make Your Change

Write code. TypeScript strict mode is enforced — keep it clean.

TERMINAL
npm run dev       # start dev server (localhost:3000)
npx tsc --noEmit  # must pass before you push
05

Commit with Convention

Use conventional commit messages so the changelog writes itself.

TERMINAL
git add .
git commit -m "feat: add mobile script editor with touch formatting"
06

Open a Pull Request

Push to your fork and open a PR against main. Fill in the PR template — describe what changed and why. A maintainer will review within a few days.

TERMINAL
git push origin feat/mobile-editor
# Then visit github.com and click "Compare & Pull Request"
Active Needs

WHAT WE'RE
WORKING ON.

HIGHCODE

Mobile Script Editor

Touch-optimised screenplay editing for phones and tablets.

HIGHCODE

Dark Mode PDF Export

Option to export scripts with a dark background for screen reading.

MEDDOCS

Keyboard Shortcut Map

Complete visual reference page for all editor keyboard shortcuts.

HIGHDESIGN

Accessibility Audit

Full WCAG 2.1 AA audit and fixes across all major pages.

MEDTESTING

Unit Tests for Stores

Zustand store logic needs coverage — no prior test experience needed.

MEDTRANSLATION

Norwegian Translation

UI strings for Norwegian bokmål / nynorsk.

HIGHCODE

Offline Mode (PWA)

Service worker caching so the script editor works without internet.

LOWDOCS

Component Storybook

Document and isolate all UI components in a Storybook instance.

For the full list with discussion threads, labels, and assignees, head to the GitHub Issues tab.

All GitHub Issues
Contribution Rules · Code of Conduct

THE
RULES.

This is a community of writers and technologists. Treat everyone — regardless of experience level, background, or contribution size — with respect. Criticism must be directed at code or ideas, never at people.
Keep pull requests focused. A PR that fixes one bug or adds one feature is infinitely easier to review than a sprawling change. If you want to do multiple things, open multiple PRs.
Use conventional commit format: feat:, fix:, docs:, refactor:, test:. A future contributor (or future you) should understand what changed from the commit message alone.
Run tsc --noEmit before opening a PR. If you add a new feature, add at least a basic test. If you fix a bug, add a regression test. Do not leave the build in a broken state.
If your change breaks existing functionality, it will not be merged until fixed. Run the app locally and check that all existing features still work in both the film and content-creator project types.
Before spending a week on a major refactor or a new subsystem, open a GitHub Discussion or issue to get alignment. Nothing is worse than a great piece of work that goes in a direction nobody agreed on.
Recognition · Credits

YOUR NAME
IN THE BUILD.

Every contributor is credited. Your GitHub handle appears in the automatic changelog, the CONTRIBUTORS.md file, and the in-app credits page as soon as your first PR is merged.

GitHub Credits

Every merged PR gets you listed in CONTRIBUTORS.md and the release notes. Automatically.

🏷️

In-App Credits

The /about page inside the app lists all contributors by name with links to their profiles.

🔶

Maintainer Status

Consistent contributors may be offered maintainer access — triaging issues, reviewing PRs, shaping the roadmap.

People · Credits

CURRENT
CONTRIBUTORS.

Everyone who has contributed to the platform in any form. Get your name on this list by opening a pull request or helping the community.

Loading contributors…
Tech Stack · Prerequisites

WHAT WE'RE
BUILT WITH.

Next.js 14

App Router

TypeScript

Strict mode

Supabase

Postgres + Auth + Realtime

Tailwind CSS

v3

Zustand

Global state

Vercel

Deployment

React 18

Server + Client

Sonner

Toast notifications

Ready · Start Now

OPEN A
PULL
REQUEST.

Fork on GitHubBrowse Good First IssuesALL SKILL LEVELS · ALL TIMEZONES