Skip to content

OriginSublime is a fully automated, AI-powered content curation and action generation system that runs daily to collect articles from multiple sources, score and summarize them using Claude AI, and transform them into actionable learning materials (exercises, projects, challenges).

Notifications You must be signed in to change notification settings

Origin-pod/OriginSublime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ‰ PROJECT COMPLETE: Actionable Newsletter System

๐Ÿ† ALL 5 PHASES COMPLETE!

A fully automated, AI-powered content curation and action generation system built with Node.js, TypeScript, and Claude AI.


๐Ÿ“Š System Overview

Daily at 6 AM UTC:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   SCRAPER    โ”‚ โ†’ Collects 50-100 articles from 6+ sources
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   CURATOR    โ”‚ โ†’ AI scores & summarizes (Claude 3.5 Sonnet)
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  GENERATOR   โ”‚ โ†’ Creates exercises, projects, challenges
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ INTEGRATIONS โ”‚ โ†’ Syncs to Notion & GitHub
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โœ… Phase 1: Scraper (COMPLETE)

Collects content from 6+ sources daily:

  • Hacker News (top 30 stories)
  • Reddit (/r/rust, /r/cpp)
  • GitHub Trending (Rust, C++)
  • RSS Feeds (Rust blog, C++ blog)

Features:

  • Deduplication by URL
  • Sorted by publish date
  • Type-safe with TypeScript
  • Error handling

Test: pnpm scrape:test


โœ… Phase 2: AI Curator (COMPLETE)

Claude 3.5 Sonnet-powered curation:

  • Relevance Scoring (0-100) based on user preferences
  • Smart Summarization with "builder friend" tone
  • Actionability Detection (code examples, tutorials)
  • Connection Finder (cross-domain insights)

Features:

  • Batch processing with rate limiting
  • Weighted user preferences (Rust: 80%, C++: 70%, AI: 70%)
  • Casual, enthusiastic summaries
  • Auto-generated tags

Test: pnpm curate:test


โœ… Phase 3: Action Generator (COMPLETE)

Transforms articles into hands-on learning:

1. Code Exercises

  • Auto-detects language (Rust, C++, TypeScript, Python, Go)
  • Generates starter code with TODOs
  • Includes test cases + hints
  • Difficulty levels (Easy/Medium/Hard)

2. Project Templates

  • Complete scaffolding (Rust, C++, TypeScript)
  • Build configs (Cargo.toml, CMakeLists.txt, package.json)
  • README with setup instructions
  • Success criteria

3. AI Challenges (100 Days of Building with AI)

  • Daily project ideas (60-90 min)
  • Cycles through AI tools (Cursor, Copilot, Claude, v0, Perplexity)
  • Specific deliverables
  • Progress tracking

4. Reflection Prompts

  • For philosophy/self-help content
  • Open-ended questions
  • Connects to personal experience

Test: pnpm generate:test


โœ… Phase 4: API & Scheduling (COMPLETE)

REST API (Fastify)

pnpm api:dev  # Start API server

Endpoints:

  • GET /api/articles - Get curated articles
  • POST /api/articles/refresh - Trigger scrape
  • GET /api/exercises - Get exercises
  • GET /api/challenges/today - Get today's AI challenge
  • GET /api/challenges/progress - Track 100 Days progress

Automated Scheduler (node-cron)

pnpm scheduler:dev  # Start scheduler

Cron Jobs:

  • 6 AM UTC: Daily scrape + curation + generation
  • 7 AM UTC: Daily AI challenge generation

Manual Triggers:

  • pnpm trigger:scrape - Run daily pipeline now
  • pnpm trigger:challenge - Generate today's challenge

โœ… Phase 5: Integrations (COMPLETE)

Notion Sync

  • Syncs curated articles to Daily Digest database
  • Syncs AI challenges to 100 Days database
  • Rich content blocks (summaries, checklists)
  • Auto-tagged and categorized

GitHub Automation

  • Daily commits to 100-days-of-ai repo
  • Creates challenge folders with README
  • Updates main README with progress bar
  • Tracks streak and completion percentage

Example Progress Bar:

Day 42/100 (42% Complete)
[โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]

๐Ÿš€ Quick Start

1. Install Dependencies

pnpm install

2. Configure Environment

cp .env.example .env
# Edit .env with your API keys

Required:

  • ANTHROPIC_API_KEY - Claude API key

Optional (for integrations):

  • NOTION_API_KEY - Notion integration token
  • NOTION_DAILY_DIGEST_DB - Database ID for articles
  • NOTION_AI_CHALLENGE_DB - Database ID for challenges
  • GITHUB_TOKEN - Personal access token
  • GITHUB_REPO - Repository (e.g., username/100-days-of-ai)

3. Test Individual Phases

pnpm scrape:test      # Test scraper
pnpm curate:test      # Test curator
pnpm generate:test    # Test generator

4. Run the System

# Start API server
pnpm api:dev

# Start scheduler (in another terminal)
pnpm scheduler:dev

# Or trigger manually
pnpm trigger:scrape
pnpm trigger:challenge

๐Ÿ“ฆ Project Structure

actionable-newsletter/
โ”œโ”€โ”€ packages/
โ”‚   โ”œโ”€โ”€ scraper/         โœ… Content collection
โ”‚   โ”œโ”€โ”€ curator/         โœ… AI-powered curation
โ”‚   โ”œโ”€โ”€ generator/       โœ… Action item creation
โ”‚   โ”œโ”€โ”€ database/        โœ… Prisma schema
โ”‚   โ””โ”€โ”€ integrations/    โœ… Notion & GitHub
โ”œโ”€โ”€ apps/
โ”‚   โ”œโ”€โ”€ api/             โœ… REST API (Fastify)
โ”‚   โ””โ”€โ”€ scheduler/       โœ… Cron jobs (node-cron)
โ”œโ”€โ”€ scripts/
โ”‚   โ”œโ”€โ”€ test-scrape.ts
โ”‚   โ”œโ”€โ”€ test-curator.ts
โ”‚   โ”œโ”€โ”€ test-generator.ts
โ”‚   โ”œโ”€โ”€ trigger-scrape.ts
โ”‚   โ””โ”€โ”€ trigger-challenge.ts
โ””โ”€โ”€ docs/
    โ”œโ”€โ”€ PHASE1_COMPLETE.md
    โ”œโ”€โ”€ PHASE2_COMPLETE.md
    โ””โ”€โ”€ PHASE3_COMPLETE.md

๐Ÿ› ๏ธ Tech Stack

  • Runtime: Node.js v20+
  • Package Manager: pnpm + Turborepo
  • Language: TypeScript
  • AI: Anthropic Claude 3.5 Sonnet
  • API: Fastify
  • Scheduling: node-cron
  • Scraping: Cheerio, node-fetch, rss-parser
  • Integrations: @notionhq/client, @octokit/rest
  • Database: PostgreSQL + Prisma (schema ready)

๐Ÿ“Š Performance & Costs

Daily Processing:

  • ~50-100 articles scraped
  • ~20 articles curated (score โ‰ฅ 60)
  • ~5 exercises generated
  • ~2 reflection prompts
  • 1 AI challenge

API Costs (Claude 3.5 Sonnet):

  • Scraping: Free
  • Curation: ~$0.10-0.20/day
  • Generation: ~$0.05-0.10/day
  • Total: ~$0.15-0.30/day (~$5-10/month)

Rate Limiting:

  • 3-5 articles per batch
  • 1-2 second delays between batches
  • Respects API limits

๐ŸŽฏ Use Cases

  1. Daily Newsletter: Curated tech articles in your inbox
  2. Learning Platform: Auto-generated coding exercises
  3. 100 Days Challenge: Structured AI tool exploration
  4. Knowledge Base: Notion database of quality content
  5. Portfolio: GitHub repo showcasing daily projects

๐Ÿ”ฎ Future Enhancements

  • PostgreSQL database integration (Prisma ready)
  • Email notifications (Resend/SendGrid)
  • Weekly rollup reports
  • User dashboard (React/Next.js)
  • Multi-user support
  • Custom RSS feed output
  • Slack/Discord webhooks
  • Analytics & insights

๐Ÿ“ License

MIT


๐Ÿ™ Credits

Built with love using:


๐ŸŽ‰ PROJECT STATUS: COMPLETE & PRODUCTION-READY! ๐ŸŽ‰

Last Updated: 2025-11-25

About

OriginSublime is a fully automated, AI-powered content curation and action generation system that runs daily to collect articles from multiple sources, score and summarize them using Claude AI, and transform them into actionable learning materials (exercises, projects, challenges).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published