The Modern, Distraction-Free Screenwriting Tool
Cinehoria is a sleek, web-based screenplay editor designed for focus and creativity. Built to rival industry standards like Final Draft, it offers standardized screenplay formatting, real-time cloud sync, and a distraction-free "dark mode" environment.
Whether you're outlining your next blockbuster or drafting an indie short, Cinehoria keeps your formatting perfect so you can focus on the story.
| |
- 📝 Standardized Formatting: Automatically handles margins and styling for Scene Headings, Action, Characters, Dialogue, Parentheticals, and Transitions.
- ☁️ Real-Time Cloud Save: Never lose a word. Typing syncs instantly to Supabase with smart debouncing.
- 🔒 Race-Condition Proof: Advanced "One-Time Load" logic ensures your cursor never jumps and your data never gets wiped while typing.
- 📄 PDF Export: Professional industry-standard PDF generation with proper fonts (Courier Prime) and layout.
- ⌨️ Keyboard Shortcuts: Navigate and format without touching the mouse.
- 📂 Local Import/Export: Save backups as JSON (
.cinehoria) and load them back anytime.
| Action | Shortcut (Win) | Shortcut (Mac) |
|---|---|---|
| Scene Heading | Ctrl + 1 | Cmd + 1 |
| Action | Ctrl + 2 | Cmd + 2 |
| Character | Ctrl + 3 | Cmd + 3 |
| Dialogue | Ctrl + 4 | Cmd + 4 |
| Parenthetical | Ctrl + 5 | Cmd + 5 |
| Transition | Ctrl + 6 | Cmd + 6 |
| Bold | Ctrl + B | Cmd + B |
| Italic | Ctrl + I | Cmd + I |
| Underline | Ctrl + U | Cmd + U |
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Editor Engine: Slate.js
- Database & Auth: Supabase
- PDF Generation: PDFMake
- Icons: Lucide React
Follow these steps to run Cinehoria locally.
- Node.js 18+
- A Supabase account
- Clone the repo
git clone [https://github.com/yourusername/cinehoria.git](https://github.com/yourusername/cinehoria.git) cd cinehoria - Install packages
npm install
- Set up Environment Variables Create a .env.local file in the root directory:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
- Run the development server
npm run dev
- Open your browser Navigate to http://localhost:3000 to start writing.
This project uses Supabase.
- Create a new project on Supabase.
- Go to the SQL Editor in your Supabase dashboard.
- Copy the contents of the
schema.sqlfile in this repository. - Paste and run it to set up your tables and security policies.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
1. Fork the Project 2. Create your Feature Branch (git checkout -b feature/AmazingFeature) 3. Commit your Changes (git commit -m 'Add some AmazingFeature') Distributed under the MIT License. See LICENSE for more information.
4. Push to the Branch (git push origin feature/AmazingFeature) 5. Open a Pull Request 

