Portfolio / Websites
Acharya Life
An astrology platform whose daily content wrote, committed, and shipped itself — 137 days of readings across five and a half months, on a fifty-cent daily budget.
Built and run by Joel Wickremasinghe
paused — system intact
137
days of unattended daily generation — 4,850 sign readings committed by the cron, Feb 11 – Jul 16 2026
measured · data archive + git history
Problem
What needed to exist
A daily horoscope site is a treadmill: 36 readings a day (Western, Vedic, and Chinese systems × 12 signs), every day, forever. Miss one morning and the product is visibly broken.
The economics had to hold too — daily LLM generation only works if cost is capped in code, not in good intentions.
What we built
The system
A GitHub Actions cron fires at midnight IST and runs the generator: 36 sign readings via DeepSeek V3 on OpenRouter, under a hard $0.50/day cost ceiling coded into the script. Output is committed to git — the repo is the database — the static site rebuilds, and a Slack webhook reports success or failure. It ran this way, hands-free, for roughly five and a half months.
The site itself is Next.js 16 on Vercel, with its planetary mathematics — including the kundli and sidereal modules — running in-process on astronomy-engine. The companion astrology engine, a sibling project, carries a Swiss Ephemeris (pyswisseph) cloud function computing tropical and Lahiri-sidereal positions for eight bodies.
A social engine renders carousels from HTML templates via headless Puppeteer (1080×1350), cuts Ken Burns reels with ffmpeg, and publishes through the Instagram Graph API's container → publish flow, logging platform-issued media IDs as read-back proof. n8n posting workflows were authored but never deployed — and this page says so, because that's the point of it.
Live surface
The thing itself, running
captured 1 August 2026live website
acharyalife.com
The live site — still serving, though the content pipeline is paused
live channel
@Acharya-Life
The YouTube channel — 8 videos published
Links checked 1 August 2026. Screenshots are static captures — the live site is the source of truth.
Architecture
Acharya Life daily pipeline — as implemented
Stack
Built with
- Next.js 16 · Vercel
- GitHub Actions cron
- OpenRouter · DeepSeek V3
- astronomy-engine
- Swiss Ephemeris (pyswisseph)
- Puppeteer
- ffmpeg
- Instagram Graph API
- Ollama + ComfyUI + LTX-Video (long-form line)
- edge-tts
Outcome
Numbers, with provenance
137
dated days of generated readings on disk (Feb 11 – Jul 16 2026)
measured · archive folder count
4,850
per-sign reading files generated and committed
measured · filesystem count
134
autonomous bot commits titled 'daily horoscope generation'
measured · git log
$0.50
hard daily cost ceiling, enforced in the generator code
measured · generate-daily.ts
2
Instagram posts verified by platform-issued media IDs (plus 5 YouTube uploads with video IDs)
measured · posted_log.jsonl read-back
no analytics exports exist on disk for this pillar
Every figure above is read from the system of record it describes. Gaps are marked, not filled in.
Also in this system
Supporting detail
Swiss Ephemeris, where it actually lives
The daily readings are LLM-written; the precision layer is separate and real: a pyswisseph cloud function in the companion astrology engine computes tropical and Lahiri-sidereal positions for eight bodies, and the in-app kundli math runs on astronomy-engine. We describe each layer as what it is.
The system logged its own failure
When the Instagram token expired, the poster didn't fail silently — 27 consecutive runs recorded BLOCKED with the exact OAuth error, until posting was deliberately switched off on 2026-07-16. Honest telemetry is a feature; this paused pillar is the proof.
Paused, not abandoned
The pillar is paused while other systems earn priority. The pipeline, the data, and the site are intact — a pause with the engine still warm is a scheduling decision, not a failure, and we'd rather show it than hide it.
Want a website that feeds itself?
This platform generated and shipped 137 days of its own content on a fifty-cent daily budget. We build sites with the pipeline included — content, cost caps, and failure alarms designed in from day one.