iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Write screenplays, plan productions, and collaborate with your team. Script editor, scene breakdowns, shot lists, scheduling, budget tracking, and more.
MediaTypeScript · PLpgSQLGitHub @SondreWigerOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The new and improved, stand alone tool for all things film production related!
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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, NorwayRead the full 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. ♥