Skip to content

Dev.to API Discovery Adapter (Phase 1) #2

@bradygaster

Description

@bradygaster

Overview

Implement Dev.to REST API adapter to enrich existing RSS blog coverage with engagement metrics (reactions, comments) and discover Aspire content via tag-based search. Complements RSS feeds with social proof signals.

Background

Per gap analysis:

  • Current state: Blog content at 85% completeness via RSS, but missing engagement data
  • Dev.to value: 20-40 articles/week with reaction counts, comment threads, and reading time
  • Kima's insight: Many Aspire authors publish on Dev.to first, then cross-post to personal blogs
  • Signal enhancement: Reactions = community validation, comments = discussion quality

Requirements

  • Implement DevToSourceAdapter extending SourceAdapter interface
  • Use Dev.to REST API (public, no auth): \https://dev.to/api/articles?tag={tag}\
  • Search tags: "dotnetaspire", "aspire", "dotnet" (filter by title/body keywords for Aspire relevance)
  • Extract: title, author, URL, published date, tags, reactions (public_reactions_count), comments_count, reading_time_minutes
  • Map to ContentItem type with channel="dev.to", source="dev.to"
  • Enrich existing ContentItem metadata with \�ngagementMetrics\ field: { reactions: number, comments: number, readingTime: number }\
  • Respect Dev.to rate limits: 10 requests/second (throttle if needed)
  • Handle API pagination (fetch 30 articles per tag, 3 pages max = 90 articles)

Squad SDK Integration

  • Adapter registration: Auto-discovered by SourceRegistry
  • Validation logic: DevToSourceAdapter.validate() returns true (no env vars needed)
  • Metadata enrichment: Adds engagement metrics to ContentItem without breaking existing fields

Acceptance Criteria

  • AC1: Adapter discovers 15+ Aspire-related articles per run
  • AC2: Each Dev.to article maps to ContentItem with: id, title, url, author, publishedAt, tags, engagementMetrics
  • AC3: Engagement metrics include reactions count, comments count, reading time
  • AC4: Duplicate detection works (same URL = same canonical ID, even if discovered via RSS + Dev.to)
  • AC5: If Dev.to API returns 429 (rate limit), adapter waits 1 second and retries once
  • AC6: Dev.to articles appear in reports with channel="dev.to" and visible engagement metrics

Dependencies

Depends on: Issue #1 (Architecture Refactor)

Assigned To

  • Kima (Content scout, implementation)

Estimated Effort

1 session

  • Implement DevToSourceAdapter
  • Test tag search + pagination
  • Validate engagement data accuracy

Metadata

Metadata

Assignees

No one assigned

    Labels

    go:needs-researchNeeds investigationsquadSquad triage inbox — Lead will assign to a membersquad:freamonAssigned to Freamon (Lead / Editor-in-Chief)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions