Thank you for your interest in contributing! CineStack is a portfolio project that aims to showcase collaborative development. All contributions are welcome!
Please read our CODE_OF_CONDUCT.md before contributing.
Check existing issues or create a new one describing what you want to work on.
git checkout -b feat/your-feature-name- Follow TypeScript strict mode — no
anytypes - Use Server Components first, Client Components only when needed
- Keep components focused and reusable
- Add tests for new functionality
git commit -m "feat: add your feature description"
git commit -m "fix: resolve issue with X"git push origin feat/your-feature-nameThen open a Pull Request to the main branch.
| Area | Guideline |
|---|---|
| TypeScript | Strict mode, no any, no @ts-ignore |
| Components | Server first, extract logic to lib/ |
| State | React Query for server state, Zustand for UI |
| Database | Parameterized queries via Supabase SDK |
| Security | Environment variables for all sensitive data |
| Testing | Write tests for new features |
All PRs must pass:
- ESLint (0 errors)
- TypeScript type check (0 errors)
- Next.js build (0 errors)
- Vitest tests (all passing)
Open a Discussion or email contact@cinestack.web.id.