This is a submission for the DEV Weekend Challenge: Community
The Community
DEV feels like home: learning, lively discussions, and new connections. It’s a place where people genuinely want to help each other, but fast-moving feeds make it hard to see where a reply would matter most. This tool is meant for members who want to help and just need direction.
That support matters because someone is always willing to help. The harder part is knowing where help is actually needed. When posts are easy to miss, willingness doesn’t always translate into action.
Where This Started
I’ve been a DEV member for less than a year, but I’m more active here than anywhere else online. I’m willing to volunteer where I can, but knowing how and where to help is difficult without direction. I built a system to provide a consistent, openly scored view of where input may be needed most. The goal is fewer “how can I help?” moments and more meaningful responses.
A few weeks ago I noticed a post in #mentalhealth where someone had reached out and nobody had answered. I care deeply about this topic, and the post had been written days earlier. I responded immediately, but I wish I had seen it sooner. Sometimes simply being heard makes a real difference. Some posts deserve a timely human reply but can be buried by feed dynamics.
What really bothered me is that if I saw this once, there are likely many others like it. The primary feed favors recent and high-performing posts, which means others can slip through the cracks. So I built a visibility dashboard for anyone who wants to help posts get attention when they need it. It uses a simple scoring structure with one goal: show humans where their input may matter right now.
What I Built
Rather than sorting only by recency or popularity, DEV Community Dashboard prioritizes conversations showing meaningful signal but limited engagement—helping community members decide where their contribution can have the greatest impact.
Behind the scenes, AI augments lightweight heuristics with bounded semantic analysis. Instead of matching tags or phrases alone, the system evaluates conversational context to estimate where attention may be useful. All classifications rely solely on publicly available DEV data. It uses only published posts and never touches private content. Nothing about the original content is changed; each item links back to the canonical article so the conversation stays on DEV.
Demo
Typical feeds prioritize recency or engagement. That works for discovery, but useful posts can still be missed. New members may be asking their first question, or someone may have a time-sensitive problem. When those go unanswered, the community never gets the chance to respond.
I built a public dashboard to surface posts that need attention so others can receive the same support I experienced when I started blogging here. The site is online at https://dev-signal.checkmarkdevtools.dev and free to use. Every post follows the same calculations to keep behavior predictable, while humans remain the deciding factor.
Workflow:
- Open the page
- Pick a surfaced post
- Reply on DEV
It reprioritizes the public feed using signal quality and engagement metrics, highlighting posts with strong signal but low interaction. Updates run hourly for posts published between 2 hours and 5 days ago. This window balances visibility (not too new) with relevance (not stale). Each item links directly back to the canonical DEV article in a new window.
If the embed doesn’t load, use the direct link above.
What This Is
The dashboard highlights situations such as first-time posters without replies or requests for help that have not received responses. Community members open the page, select a post, and respond directly on DEV.
Its role is simple: route attention.
There are four primary triage categories:
| Category | Definition |
|---|---|
| Needs Support | Language suggests burnout, emotional strain, or direct help-seeking; may benefit from a thoughtful reply |
| Awaiting Collaboration | No meaningful replies yet; a person should engage directly |
| Silent Signal | Minimal engagement activity despite visibility |
| Trending Signal | Valuable content with limited reach; worth amplifying |
Secondary states (such as rapid activity spikes or anomalous metrics) act as informational flags rather than routing drivers.
Design Principles
I spent time ensuring this did not become a moderation or quality ranking system. The goal is visibility at the right moment with transparent categorization.
Every post exposes the metrics used to classify it. Hidden scoring breaks trust, so values appear numerically and visually with hover descriptions explaining each metric in plain language.
I included a feedback loop to the GitHub repository where discussions and improvements can happen. The tool belongs to the DEV community as much as it belongs to me.
Code
The project focuses on one task: surface posts that likely need a human reply. The repository shows how public DEV posts are collected, how engagement signals are calculated, and how the list is updated on a schedule.
The repo includes docs, diagrams, tests, and security scans to keep behavior predictable.
ChecKMarKDevTools
/
dev-community-dashboard
Community behavior analytics dashboard for DEV.to. Observes activity patterns, engagement dynamics, and moderation signals without judging individual users.
DEV Community Dashboard
A signal-surfacing tool for Forem communities (dev.to and self-hosted instances). It ingests the latest posts via the public Forem API, classifies each one into attention categories (Awaiting Collaboration, Anomalous Signal, Trending Signal, Rapid Discussion, Steady Signal), and persists the results in Supabase so community helpers can see where conversations need a human eye.
This is not a moderation tool or a scorecard. It is designed to help helpers know where to look.
Production: https://dev-signal.checkmarkdevtools.dev (Cloud Run — deployed post-initial-release)
v1.0.0 was created for the DEV Weekend Challenge.
Architecture
System Overview
graph TB
subgraph External
FOREM["Forem API\n(dev.to)"]
GHA["GitHub Actions\ncron.yml"]
end
subgraph CloudRun["Cloud Run"]
APP["Next.js App\ndev-signal.checkmarkdevtools.dev"]
end
subgraph Supabase
DB[("PostgreSQL\narticles · users · commenters")]
end
Browser((Browser)) -->|"GET /api/posts\nGET /api/posts/:id"| APP
GHA -->|"POST /api/cron\n(Bearer token)"| APP
APP -->|"getLatestArticles · getUserByUsername · getComments · getArticle\n(exponential-backoff retry on 429)"| FOREM
APP -->|"upsert /…How I Built It
The app collects public DEV posts through the API, calculates engagement signals, stores results, and renders a prioritized list. The comment-scoring step returns schema-validated JSON (with typed fields and bounded ranges); invalid outputs fall back to deterministic heuristics, and the scoring pipeline is covered by automated tests to keep classification behavior stable as the system evolves. Updates run hourly and each item links back to the original article.
The prioritization model favors lack of interaction over popularity. Posts decay over time so those with the highest potential impact surface first.
Measuring Interaction Signal
Traditional dashboards often rely on keyword sentiment counts, which struggle to distinguish between surface praise and substantive discussion.
This system uses a composite interaction signal focused primarily on relevance and depth, with limited weight given to tone. Each comment contributes to a post-level score estimating where a constructive reply could meaningfully shape the conversation.
The comment scoring model is guided by a structured system prompt that defines how relevance, depth, and constructiveness are evaluated before contributing to the overall interaction signal.
TASK: Interaction signal analysis of blog post comments.
INPUT: A blog post body followed by numbered comments.
RULES:
- Extract 1-3 topic keywords from the post body as topic_tags.
- For each comment, assign interaction scores.
- Set needs_support to true if the post body contains signals of emotional distress, mental health struggle, burnout, isolation, or explicit help-seeking.
- Never infer beyond available text. Score only what is present.
The full prompt and a detailed explanation of calculations exist in the GitHub repo along with system diagrams. Each one maps to a graph that's displayed on the post details page.
Limitations
This is a signal-based prioritization model, not a full understanding of intent.
- Nuanced tone, sarcasm, or highly domain-specific language may affect classification accuracy.
- Posts can move between categories quickly as new replies or reactions change the underlying signals.
- The system reflects public engagement patterns only.
- Thresholds are calibrated for general community patterns and may not perfectly fit every tag or topic area.
The dashboard surfaces likelihood, not certainty. Human interpretation completes the picture.
Broader Impact
The goal is simple: help DEV members see where their attention can matter most. The dashboard surfaces where engagement is thin, where conversations are drifting, and where a thoughtful reply could shift the tone. Participation remains voluntary; the system only highlights opportunity.
If it works, fewer posts sit unanswered, engagement becomes more intentional, and contributors have clearer context before jumping in.
If you have ideas or feedback, share them below. You can also star the checkmarkdevtools/dev-community-dashboard repository to follow its progress.
🛡️ The Editor Who Doesn’t Commit Code
This piece was written by me, with ChatGPT acting as a second set of eyes. It helped tighten wording and keep explanations clear, but every decision, tradeoff, and line of code came from a human brain and a late-night idea that refused to go away.




Top comments (5)
This is a very thoughtful approach to engement, especially for new people! It can definitely be disheartening if a question is left unanswered for a very long period. And I can see how it could be useful in the future for sort of re-steering a conversation. Excellent management idea for sure. ✨️
I had this same thought. I'd be curious to see how well AI could do with suggestions to drive deeper conversation, too. Like adding a "things you could ask about" section that would be likely to spark more back and forth. Thanks!
I think this is brilliant!
This is brilliant! Great job @anchildress1 !!
This is so true! I often want to help but don't know where it's needed most. Great idea!