Cronforge is a scheduled article delivery system that fetches articles from Dev.to and sends one to your inbox every day.
On startup, Cronforge fetches the latest TypeScript articles from Dev.to and stores them in a PostgreSQL database. A cron job runs every day at 9am, picks one unread article, and enqueues an email job. A background worker picks up the job and sends the article to your inbox via Resend.
- Startup fetches articles from Dev.to and stores them in the database
- Cron runs daily at 9am
- One unsent article is picked from the database
- Email job is enqueued with the article content
- Worker sends the email via Resend
- Article marked as sent in the database
- Bun
- TypeScript
- PostgreSQL
- Resend
- Effect-ts
- jobs - background job queue
- articles - articles fetched from Dev.to with sent tracking
- Clone the repository
- Run bun install
- Create a PostgreSQL database
- Copy .env.example to .env and fill in your values
- Run bun run index.ts
DATABASE_URL=postgresql://user:password@localhost:5432/cronforge RESEND_API_KEY=your_key_here EMAIL_FROM=you@yourdomain.com RECIPIENT_EMAIL=you@yourdomain.com