Nakafa is a source-available educational platform for structured learning, assessments, Quran study, and political analysis. The production site is nakafa.com.
This repository owns the React and Next.js applications, design system,
transactional Convex backend, renderer implementations, user state, and
product integrations. The separate
Aksara repository owns authored content
and signed publication artifacts for every content scope. packages/contents
contains only live Nakafa product, formatting, and agent contracts. It is not an
authored content source or publication path.
package.json is the toolchain source of truth:
- Node.js 24
- pnpm 11.22.0
- Turborepo
- Next.js 16 and React 19
- TypeScript 7 CLI with TypeScript 6 API compatibility
- Convex
- Vitest
- Biome through Ultracite
Do not add .npmrc, .node-version, .nvmrc, or another package-manager
contract unless the repository gains a measured need that package.json
cannot express.
git clone https://github.com/nakafaai/nakafa.com.git
cd nakafa.com
pnpm install --frozen-lockfile
pnpm devThe main web app is available at http://localhost:3000.
For production-mode local verification:
pnpm build
pnpm startapps/www: main Next.js application on port 3000apps/mcp: MCP application on port 3001apps/api: API application on port 3002apps/cas: Python CAS service on port 3003apps/email: email preview application on port 3004packages/backend: Convex schema, functions, workflows, and integrationspackages/design-system: shared React components and renderer implementationspackages/ai: Effect-native AI capabilitiespackages/contents: Nakafa product, formatting, route-context, learner, and agent contractspackages/testing: shared Vitest configurationpackages/utilities: generic cross-domain primitivesrepos/effect: read-only Effect source pinned to the installed version
Read the nearest AGENTS.md before working. Convex changes also require
packages/backend/AGENTS.md and the generated Convex guidelines. Effect work
requires reading repos/effect/.agents/AGENTS.md plus the relevant implementation,
tests, type-level tests, module structure, and API design in the vendored source.
pnpm dev
pnpm dev:all
pnpm build
pnpm start
pnpm test
pnpm test:coverage
pnpm lint
pnpm security:audit
pnpm format
pnpm boundaries
pnpm effect:source:checkThere is no root typecheck script. Run the typecheck owned by each changed workspace, for example:
pnpm --filter www typecheck
pnpm --filter @repo/backend typecheck
pnpm --filter @repo/design-system typecheckTests use Vitest config files owned by each workspace. Keep tests colocated as
name.test.ts, import the Vitest APIs they use, and preserve the workspace's
configured per-file coverage gate. Final tests only target real colocated .ts
Modules. Do not commit tests for .tsx Modules, rename React tests to hide them
as .test.ts, create __tests__ folders, or add duplicate test-only source
Modules. Verify rendered React behavior through production Browser or E2E
acceptance.
Do not add substitute content or duplicate Aksara-owned source to this
repository. Authored educational content changes belong in nakafaai/aksara.
Nakafa consumes only authenticated current Aksara contracts and signed
publication artifacts.
The shared @nakafa/aksara-contracts/locale module is the only locale source
of truth. English, Indonesian, and German are active. Next.js routing, API
validation, Convex validators, AI language handling, date formatting, checkout
localization, and sitemap generation derive from that contract. Do not add a
second app-local locale list.
Aksara's signed page family owns public legal and company documents. Nakafa
uses the same verified Page projections and artifacts for human routes, footer
navigation, sitemap entries, and Markdown or LLM delivery. Do not restore local
legal MDX, hard-coded legal route catalogs, or another publication path.
Renderer and component implementations remain in Nakafa. Aksara content refers to reviewed renderer contracts and never carries duplicate React or TSX implementations.
Read AGENTS.md and
.github/CONTRIBUTING.md. Submit a ready pull request
from a branch, keep it current with main, resolve review conversations, and
run the relevant exact-head checks before merge.
Nakafa uses a source-available license model and is not open source under the Open Source Definition.
| Area | License or policy |
|---|---|
| Software source code | Nakafa Source Available License 1.0 |
| Educational content, articles, exercises, datasets, and media | Nakafa Content License 1.0 |
| Names, logos, domains, product names, UI identity, and brand assets | Nakafa Trademark and Brand Policy |
Commercial, hosted, redistribution, modification, white-label, rebrand, and AI-training uses require prior written permission from PT. Nakafa Tekno Kreatif. See the license files for the complete terms.
Reference material:
For commercial licensing inquiries: nakafaai@gmail.com