Searchable knowledge base for Kenyan regulatory documents — Next.js, PostgreSQL, Meilisearch, Python OCR pipeline. Work in progress.
# Kenya Regulatory Knowledge Base
A searchable knowledge base for Kenyan building and regulatory content. It lets
users browse and search regulations, while editors and admins upload source PDFs,
review extracted sections, and manage the content that gets published.
The project is a work in progress: authentication and document upload are working
end to end, but PDF-to-Markdown conversion is not yet built.
## Disclaimer
This is an independent, unofficial project. It is **not** affiliated with or
endorsed by the Government of Kenya or any regulatory body.
Content in this knowledge base is provided for informational purposes only and
does **not** constitute legal advice. Always verify against the original
official publication before relying on it for compliance or legal decisions.
## Corrections / takedown requests
If you spot an error in the content, or have a rights concern about a document
that appears here, please open a GitHub issue in this repository and we will
address it.
## Tech stack
| Layer | Technology |
|------------|--------------------------------------------------------------------------|
| Frontend | Next.js 14 (App Router), React 18, Tailwind CSS |
| API | Fastify 5, TypeScript, Drizzle ORM, Zod, `@fastify/jwt`, `@fastify/multipart` |
| Database | PostgreSQL 16 |
| Search | Meilisearch v1.9 |
| Ingestion | Python 3.12 (pypdf, pytesseract, pdf2image, psycopg2, requests) |
| Migrations | node-pg-migrate |
| Infra | Docker Compose, nginx, certbot, PostgreSQL backup cron |
## Repository structure
- `web/` — public Next.js search/browse UI (port 3000)
- `admin/` — Next.js admin dashboard: sign in, upload, review (port 3002)
- `api/` — Fas …