Preview
Open Original
Newsletter & Blog Digester
A small application that periodically checks websites/blogs, summarizes new posts using OpenAI, and sends digests to Slack.
Features & Benefits
- Multiple Extraction Methods: RSS feeds, CSS selector rules, or AI-powered extraction for complex HTML layouts
- Flexible AI Options: Use OpenAI API or run Ollama locally for completely offline operation
- Smart Content Processing: Automatic deduplication, summarization, and notification management
- Slack Integration: Multi-channel notifications with customizable bot name and emoji
- Single Docker Container: Everything runs in one lightweight container with auto-reload during development
- Zero Build Step Frontend: Preact + HTM loaded from CDN - edit and refresh, no compilation needed …
Newsletter & Blog Digester
A small application that periodically checks websites/blogs, summarizes new posts using OpenAI, and sends digests to Slack.
Features & Benefits
- Multiple Extraction Methods: RSS feeds, CSS selector rules, or AI-powered extraction for complex HTML layouts
- Flexible AI Options: Use OpenAI API or run Ollama locally for completely offline operation
- Smart Content Processing: Automatic deduplication, summarization, and notification management
- Slack Integration: Multi-channel notifications with customizable bot name and emoji
- Single Docker Container: Everything runs in one lightweight container with auto-reload during development
- Zero Build Step Frontend: Preact + HTM loaded from CDN - edit and refresh, no compilation needed
- Fully Offline Capable: Works without internet when using local Ollama for AI processing
- Lightweight Stack: Node.js + Fastify + SQLite - minimal dependencies, fast startup, low resource usage
- Scheduled Monitoring: Configurable cron schedules with manual “Check Now” option
- Web UI: Clean interface for managing sites, viewing posts, configuring settings, and monitoring logs
Screenshots
Here is what it looks like:
Tech Stack
- Runtime: Node.js 20
- Framework: Fastify
- Database: SQLite (better-sqlite3)
- Frontend: Preact + HTM + snarkdown
- Testing: uvu + sinon + c8
- Formatting: dprint (Rust-based formatter) / 10-100x faster than Prettier / Zero npm dependencies
- Git Hooks: Husky
- Container: Docker Compose
Quick Start
Local Development
# Start
docker compose up -d
Server will be available at: http://localhost:5566
Testing
Tests use:
- uvu: Fast, lightweight test runner
- sinon: Mocking library for external APIs
- c8: Code coverage tool
Test files: src/server/__tests__/*.test.js
License
MIT