個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證The new and improved, stand alone tool for all things film production related!
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Write. Plan. Produce.
Free screenwriting and film pre-production software. A professional script editor combined with a full production planning suite — all in one web application. No paywalls, no credit card, no limits.
Developed and maintained by Northem Development · Oslo, Norway檢視完整 README ↗Write. Plan. Produce.
Free screenwriting and film pre-production software. A professional script editor combined with a full production planning suite — all in one web application. No paywalls, no credit card, no limits.
Developed and maintained by Northem Development · Oslo, Norway
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Language | TypeScript 5 |
| Styling | Tailwind CSS 3 |
| State management | Zustand 5 |
| Database & Auth | Supabase (Postgres + Auth + Storage + Realtime) |
| Resend | |
| Animation | Framer Motion |
| Desktop | Electron 33 |
| Testing | Vitest + Testing Library |
git clone https://github.com/SondreWiger/screenplay-studio.git
cd screenplay-studio
npm install
cp .env.local.example .env.local
Open .env.local and fill in at minimum:
NEXT_PUBLIC_SUPABASE_URL=https://your-project-ref.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
Get these from your Supabase project → Settings → API.
npm run dev
Open http://localhost:3000.
docker-compose up --build
The app runs on port 3000 by default. Set all environment variables in docker-compose.yml or a .env file in the root.
npm run build
npm start
Requires Node.js 20+ and the environment variables listed in .env.local.example.
| Variable | Required | Description |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | ✅ | Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | ✅ | Supabase anonymous key |
SUPABASE_SERVICE_ROLE_KEY | ✅ | Supabase service role key (server-side only) |
NEXT_PUBLIC_APP_URL | ✅ | Your deployed URL (e.g. https://yourapp.vercel.app) |
RESEND_API_KEY | Recommended | Transactional email via Resend |
NEXT_PUBLIC_VAPID_PUBLIC_KEY | Optional | Web push notifications |
VAPID_PRIVATE_KEY | Optional | Web push notifications |
VAPID_SUBJECT | Optional | mailto: address for push auth |
PUSH_API_SECRET | Optional | Secret for push delivery from DB triggers |
PAYPAL_CLIENT_ID | Optional | PayPal creator billing |
PAYPAL_CLIENT_SECRET | Optional | PayPal creator billing |
CRON_SECRET | Optional | Auth token for Vercel cron jobs |
KILLSWITCH_SECRET | Optional | Emergency open-source shutdown key |
See .env.local.example for all variables with descriptions.
src/
├── app/ # Next.js App Router pages & API routes
│ ├── page.tsx # Public landing page
│ ├── dashboard/ # User dashboard
│ ├── projects/[id]/ # Per-project tools (80+ pages)
│ │ ├── script/ # Script editor
│ │ ├── breakdown/ # Scene breakdown
│ │ ├── shots/ # Shot list
│ │ ├── schedule/ # Production schedule
│ │ ├── budget/ # Budget tracker
│ │ └── ...
│ ├── community/ # Community hub
│ ├── admin/ # Admin panel
│ ├── auth/ # Auth pages
│ ├── settings/ # User settings
│ └── api/ # API routes
├── components/ # Shared UI components
│ ├── ui/ # Base component library
│ │ ├── Button, Input, Modal, Toast …
│ │ └── CommandPalette
│ ├── sidebar/ # Project sidebar
│ ├── ThemeEditor.tsx # Live theme customiser
│ ├── FocusTimer.tsx # Pomodoro timer
│ ├── WritingGoalWidget.tsx # Daily word goal tracker
│ ├── ScriptStatsPanel.tsx # Live script statistics
│ └── …
├── hooks/ # Custom React hooks
│ ├── useAuth.ts
│ ├── useRealtime.ts
│ └── …
├── lib/ # Core utilities
│ ├── supabase/ # Supabase client helpers
│ ├── stores.ts # Zustand global state
│ ├── mailer.ts # Email (Resend)
│ ├── rate-limit.ts # API rate limiting
│ ├── security.ts # XSS / content protection
│ ├── theme.ts # Theme engine
│ └── types/ # TypeScript types
└── middleware.ts # Session refresh (public paths skipped)
Screenplay Studio ships as a cross-platform desktop app built with Electron.
# Development
npm run electron:dev
# Build for your platform
npm run electron:build:mac # macOS
npm run electron:build:win # Windows
npm run electron:build:linux # Linux
npm run electron:build:all # All platforms
Pre-built binaries are available on the releases page.
All contributions welcome — bug reports, features, translations, and documentation.
See CONTRIBUTING.md for the contribution guide, code style, and how to open a pull request.
MIT — fork it, run it, ship it, share it freely.
Built by one developer at Northem Development in Oslo, Norway.
If this is useful to you, consider supporting on Ko-fi. ♥