Contribute
We are a community of software engineers building in our spare time. No deadlines—only steady progress, learning, and shared outcomes.
Why contribute
- Build a real, useful product for schools in Sudan
- Grow an open-source community and shared economy
- Learn modern stack: Next.js, TypeScript, Tailwind, Prisma, Neon, shadcn/ui
Revenue share model (transparent and fair)
- Source of income: subscriptions, services, sponsorships
- Distribution: a community treasury allocates revenue to contributors
- Tracking: contributions logged in public (issues, PRs, changelog)
- Payout cadence: periodic when meaningful revenue accumulates
We will refine the exact formula with the community. Initial principle: sustained impact and maintenance count more than one-off tasks.
Areas to contribute
- Features: attendance, grading, timetable, parent portal
- Docs: architecture, i18n, onboarding, how-tos
- UI: shadcn/ui patterns, accessibility, RTL polish
- Data: Prisma models, migrations, seeds
- DX: ESLint/Prettier rules, scripts, templates
- DevOps: CI, error tracking, observability
Workflow (no deadlines)
- Pick an issue or propose one
- Discuss scope briefly, avoid bikeshedding
- Open PR early and iterate in small steps
- Update docs or changelog when it helps others
Local setup
pnpm install
pnpm dev
Optional: configure your .env
per README.md
and set DATABASE_URL
for Neon. If you changed Prisma models or env, also run:
pnpm prisma generate
pnpm prisma migrate dev --name init
Run pnpm build
before pushing.
Code style
- Linting: see
/docs/eslint
- Formatting: see
/docs/prettier
- Components: follow shadcn/ui naming, colocate
actions.ts
,validation.ts
,content.tsx
PR checklist
- Small, focused changes; describe the why
- Screenshots for UI updates (LTR/RTL if applicable)
- Tests or manual steps described when risky
- Add a brief line to
/docs/changelog
if notable
Community etiquette
- Be kind; assume good intent
- Prefer clarity over cleverness
- Teach through code and docs
If you’re unsure where to start, comment on an issue and we’ll guide you.