Contributing
May 5, 2026 · View on GitHub
Thanks for considering a contribution. Open Pomelli is a small, opinionated codebase — keeping it small is part of the point.
Setup
git clone https://github.com/SamurAIGPT/Open-Pomelli.git
cd Open-Pomelli
cp .env.example .env # fill MUAPI_API_KEY (sandbox keys are free)
npm install
npx playwright install chromium
npx prisma db push
npm run dev
Conventions
- All AI calls go through
src/lib/muapi.ts. NeverfetchMuAPI from anywhere else. - No new providers. This project intentionally targets only MuAPI. If you want multi-provider switching, fork it.
- No auth, no OAuth, no queues. This is a local-first single-user tool. PRs adding NextAuth, BullMQ, Redis, OAuth publishing, or multi-tenant features will be closed.
- TypeScript strict mode is on. No
anyunless unavoidable, no@ts-ignore. - Array fields on SQLite are JSON strings. PATCH endpoints accept arrays in the body and stringify before saving — keep that pattern.
- Generation is synchronous. Don't add a queue. The client side already does parallel requests with bounded concurrency.
Pull requests
- Fork, branch from
main. - Run
npx tsc --noEmitand verify the dev server boots. - If you touch
prisma/schema.prisma, mentionnpx prisma db pushin the PR description. - Keep PRs focused — one feature or fix per PR.
Reporting bugs
Include: the URL or input that triggered the bug, the route that failed, browser console + server stderr, and your node --version / npm --version.
Areas that welcome contribution
- HTML-to-PNG/MP4 export of canvas-edited assets.
- New Photo Studio categories or styles in
src/lib/photo-styles.ts. - New platform formats in
src/lib/platforms.ts. - Better default motion prompts in
src/lib/animate.ts. - A11y fixes on the canvas editor and form controls.