Live news converted into degenerate emojipasta.
This repo is a small monorepo:
backend/fetches BBC RSS items and converts them into emojipasta JSON.frontend/(Vite + React + TypeScript + Tailwind) renders a feed from JSON infrontend/public/news/.
From frontend/:
- Install deps:
pnpm install - Dev server:
pnpm dev - Lint:
pnpm lint - Build:
pnpm build
Notes:
pnpm devrunspnpm news:indexfirst to regeneratepublic/news/index.json.- News JSON is served as static assets from
frontend/public/news/.
From backend/:
- Install deps:
pip install -r requirements.txt - Create
backend/.envwith:XAI_API_KEY: XAI API key for GrokARTICLE_HASH_KEY: secret salt used to hash RSS GUIDs for deduping (example:demo-secret-change-me-041f6a73)
- Run:
python main.py
What it does:
- Fetches top articles from a BBC RSS feed
- Converts to emojipasta via Grok
- Hashes the article GUID for deduplication
- Writes JSON files into
frontend/public/news/
Deduping:
- Only articles with hashes not seen in the last 7 days are published.
From frontend/:
pnpm news:index: regeneratespublic/news/index.jsonpnpm sitemap: regeneratespublic/sitemap.xml(uses../CNAMEif present)
- Deploy workflow:
.github/workflows/deploy-pages.ymlbuildsfrontend/with pnpm and publishesfrontend/distto GitHub Pages on pushes tomaster. - Vite
baseis set to the repo name automatically when running in GitHub Actions so assets load correctly under/REPO/.