Logo Lanfrica

buruf/HornAfrika

Domaine:

digital infrastructure

Type de record:

software
Créateur:
bur
Hôte:
Horn of Africa news site # HORNAFRIKA **The Horn of Africa, Connected.** A regional news and information platform covering Somalia, Ethiopia, Djibouti and Eritrea — built so that all four countries are first-class, and so that the stories which cross borders have somewhere to live. ## Running it ```bash npm install npm run db:reset npm run dev ``` Then open . `db:reset` recreates the SQLite database and seeds it with 4 countries, 27 regions, 10 sections, 46 articles, 12 videos, 8 authors, 5 user accounts, 37 wire sources, and roughly 49,000 synthetic read events (so the trending ranking has real data to sort). To pull live headlines into the wire: ```bash npm run wire -- --force ``` ## CMS Sign in at . | Email | Role | Can | |---|---|---| | admin@hornafrika.com | Super Admin | Everything, including users and ad slots | | editor@hornafrika.com | Editor | Publish anything, control the homepage | | journalist@hornafrika.com | Journalist | Create and edit own work, submit for review | | contributor@hornafrika.com | Contributor | Draft own work, submit for review | | moderator@hornafrika.com | Moderator | Community moderation only | Password for all seeded accounts: `hornafrika`. **Change these before deploying.** ## Stack - **Next.js 15** (App Router, React Server Components) — reader pages render on the server and ship almost no JavaScript - **TypeScript**, strict - **Tailwind CSS v4** - **Prisma** over **SQLite** — moving to Postgres is a `datasource` change; no model depends on a SQLite-specific feature - **Auth**: JWT in an httpOnly cookie (`jose`), passwords hashed with `bcryptjs` ## Structure ``` src/app/(site)/ public site — carries the header, ticker and footer src/app/admin/ the CMS — its own frame, gated by middleware src/app/api/ newsletter signup, OG image generation src/components/ shared UI src/lib/ data access, search, auth, formatting prisma/ schema and seed docs/superpowers/ the design spec this was built from ``` …