Live
Black Hat USADark ReadingBlack Hat AsiaAI BusinessFrance’s Mistral AI seeks Samsung memory for AI expansion - The Korea HeraldGoogle News - Mistral AI FranceMistral AI pursues Samsung memory partnership during South Korea visit - CHOSUNBIZ - ChosunbizGoogle News - Mistral AI FranceFuture Women Diplomats Gather for AI Event in Dushanbe - miragenews.comGoogle News - AI TajikistanAnthropic leaks source code for its AI coding agent Claude - Lynnwood TimesGoogle News: ClaudeWeekend vote: What are your feelings about 'Artificial Intelligence' (AI)? - violinist.comGoogle News: AIA Beginner's Guide to Affiliate MarketingDev.to AIThe End of “Hard Work” in Coding, And Why That’s a ProblemDev.to AIActive Job and Background Processing for AI Features in RailsDev.to AIBig Tech firms are accelerating AI investments and integration, while regulators and companies focus on safety and responsible adoption.Dev.to AIUK courts Anthropic to expand in London after US defence clash - Financial TimesGNews AI USAI'm 산들, Leader 41 of Lawmadi OS — Your AI Family & Divorce Expert for Korean LawDev.to AIAccelerating the next phase of AIDev.to AIBlack Hat USADark ReadingBlack Hat AsiaAI BusinessFrance’s Mistral AI seeks Samsung memory for AI expansion - The Korea HeraldGoogle News - Mistral AI FranceMistral AI pursues Samsung memory partnership during South Korea visit - CHOSUNBIZ - ChosunbizGoogle News - Mistral AI FranceFuture Women Diplomats Gather for AI Event in Dushanbe - miragenews.comGoogle News - AI TajikistanAnthropic leaks source code for its AI coding agent Claude - Lynnwood TimesGoogle News: ClaudeWeekend vote: What are your feelings about 'Artificial Intelligence' (AI)? - violinist.comGoogle News: AIA Beginner's Guide to Affiliate MarketingDev.to AIThe End of “Hard Work” in Coding, And Why That’s a ProblemDev.to AIActive Job and Background Processing for AI Features in RailsDev.to AIBig Tech firms are accelerating AI investments and integration, while regulators and companies focus on safety and responsible adoption.Dev.to AIUK courts Anthropic to expand in London after US defence clash - Financial TimesGNews AI USAI'm 산들, Leader 41 of Lawmadi OS — Your AI Family & Divorce Expert for Korean LawDev.to AIAccelerating the next phase of AIDev.to AI
AI NEWS HUBbyEIGENVECTOREigenvector

Building an Engineering & Security News Aggregator (10 Sources, No APIs)

DEV Communityby El Housseine JaafariApril 1, 20264 min read1 views
Source Quiz

<p>We built a curated engineering and security news aggregator that pulls from 10 high-signal sources, deduplicates content, and updates every 6 hours.</p> <p>No paid APIs. No scraping. No login. Just clean, structured news for developers.</p> <p>This post breaks down exactly how it works.</p> <h2> What This Is </h2> <p>A lightweight news wire combining:</p> <ul> <li>Hacker News </li> <li>Lobsters </li> <li>InfoQ </li> <li>Cloudflare Blog </li> <li>Krebs on Security </li> <li>The Hacker News (Security) </li> <li>NIST NVD (vulnerabilities) </li> <li>GitHub Blog </li> <li>OpenAI Blog </li> <li>Anthropic Research </li> </ul> <p>The goal: <strong>high-quality signal, zero noise, zero cost</strong>.</p> <h2> Why Build This? </h2> <p>Most engineering/news aggregators fail in one of these ways:</

We built a curated engineering and security news aggregator that pulls from 10 high-signal sources, deduplicates content, and updates every 6 hours.

No paid APIs. No scraping. No login. Just clean, structured news for developers.

This post breaks down exactly how it works.

What This Is

A lightweight news wire combining:

  • Hacker News

  • Lobsters

  • InfoQ

  • Cloudflare Blog

  • Krebs on Security

  • The Hacker News (Security)

  • NIST NVD (vulnerabilities)

  • GitHub Blog

  • OpenAI Blog

  • Anthropic Research

The goal: high-quality signal, zero noise, zero cost.

Why Build This?

Most engineering/news aggregators fail in one of these ways:

  • Too noisy (no curation)

  • Too expensive (paid APIs)

  • Too slow (manual updates)

  • Too fragmented (you check 10 sites anyway)

We wanted:

  • A single feed

  • Fresh updates (but not real-time obsession)

  • No operational cost

  • No lock-in (no accounts, no tracking)

Stack

  • Hono (API layer)

  • Drizzle ORM

  • Postgres

  • Next.js (frontend)

  • RSS feeds + Hacker News Firebase API

High-Level Architecture

┌───────────────┐  │ RSS Feeds │  │ (9 sources) │  └──────┬────────┘  │  ▼  ┌───────────────┐  │ Fetch Workers │  │ (every 6 hrs) │  └──────┬────────┘  │  ▼  ┌──────────────────────┐  │ Normalize Articles │  │ title, url, date │  └─────────┬────────────┘  │  ▼  ┌──────────────────────┐  │ SHA-256 Deduplication│  │ (based on URL) │  └─────────┬────────────┘  │  ▼  ┌───────────────┐  │ Postgres │  └──────┬────────┘  │  ▼  ┌───────────────┐  │ Hono API │  └──────┬────────┘  │  ▼  ┌───────────────┐  │ Next.js UI │  └───────────────┘

Enter fullscreen mode

Exit fullscreen mode

Data Sources

We deliberately chose sources with:

  • High editorial quality

  • Low duplication between each other

  • Stable RSS feeds or APIs

Breakdown

Source Type Why It Matters

Hacker News API Real-time dev signal

Lobsters RSS More technical discussions

InfoQ RSS Deep engineering content

Cloudflare Blog RSS Infra + performance insights

Krebs on Security RSS Trusted security reporting

The Hacker News RSS Security news (broader)

NIST NVD RSS/API Verified vulnerabilities

GitHub Blog RSS Platform + ecosystem updates

OpenAI Blog RSS AI developments

Anthropic Research RSS AI + safety research

Fetching Strategy

We run a simple scheduled job:

// every 6 hours cron.schedule("0 */6 * * *", async () => {  await fetchAllSources(); });

Enter fullscreen mode

Exit fullscreen mode

Why every 6 hours?

  • Keeps content fresh

  • Avoids unnecessary load

  • Works well with RSS update frequencies

Deduplication (Key Part)

Different sources often post the same story.

We solve this using SHA-256 hashing of URLs.

import { createHash } from "crypto";

function hashUrl(url: string) { return createHash("sha256").update(url).digest("hex"); }`

Enter fullscreen mode

Exit fullscreen mode

Why URL hashing?

  • Fast

  • Deterministic

  • No fuzzy matching complexity

  • Works across sources

Tradeoff

  • Won’t catch rewritten articles with different URLs

  • But avoids false positives (important for trust)

Normalization

Each source has its own format. We normalize into a single shape:

type Article = {  title: string;  url: string;  source: string;  publishedAt: Date; };

Enter fullscreen mode

Exit fullscreen mode

This keeps the frontend simple and predictable.

API Layer (Hono)

Example endpoint:

app.get("/articles", async (c) => {  const articles = await db.query.articles.findMany({  orderBy: (a, { desc }) => [desc(a.publishedAt)],  limit: 100,  });

return c.json(articles); });`

Enter fullscreen mode

Exit fullscreen mode

Minimal, fast, no overengineering.

Frontend (Next.js)

  • Server-rendered list

  • No login required

  • No personalization

  • Just chronological, deduplicated news

Limitations

  • Not real-time (by design)

  • No personalization

  • Deduplication is URL-based only

  • Dependent on RSS availability

What We’d Improve

  • Smarter clustering (same story, different URLs)

  • Tagging (infra, AI, security, etc.)

  • Optional filters (without accounts)

Try It

The news wire is open to everyone:

👉 https://clawship.app/blog/engineering-security-news-wire

Connect with Us

Was this article helpful?

Sign in to highlight and annotate this article

AI
Ask AI about this article
Powered by Eigenvector · full article context loaded
Ready

Conversation starters

Ask anything about this article…

Daily AI Digest

Get the top 5 AI stories delivered to your inbox every morning.

More about

updateplatformreport

Knowledge Map

Knowledge Map
TopicsEntitiesSource
Building an…updateplatformreportinsightsafetyresearchDEV Communi…

Connected Articles — Knowledge Graph

This article is connected to other articles through shared AI topics and tags.

Knowledge Graph100 articles · 244 connections
Scroll to zoom · drag to pan · click to open

Discussion

Sign in to join the discussion

No comments yet — be the first to share your thoughts!

More in Releases