The problem
I launched MarketNow 2 weeks ago. I opened 90+ GitHub issues across 50+ repos to promote it. Within days, people started commenting — questions, feedback, feature requests.
But I couldn't keep up. Comments went unanswered for days. By the time I saw them, the conversation had moved on.
So I built an auto-monitor that runs every hour and:
- Checks all my dev.to articles for new comments
- Checks all my GitHub issues for new comments
- Checks npm download trends
- Checks GitHub stars
- Checks site uptime
- Sends me an email with everything
The code
import json, os, urllib.request, smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 1. Check dev.to for new comments
def check_devto(seen_comments):
articles = api_get('https://dev.to/api/articles/me/all?per_page=50',
headers={'api-key': DEVTO_API_KEY})
alerts = []
for article in articles:
if article.get('comments_count', 0) == 0:
continue
comments = api_get(f'https://dev.to/api/comments?a_id={article["id"]}',
headers={'api-key': DEVTO_API_KEY})
for c in comments:
cid = c.get('id_code', '')
if cid in seen_comments:
continue
if c['user']['username'] == MY_USERNAME:
continue
# NEW comment!
alerts.append({
'article': article['title'],
'commenter': c['user']['username'],
'comment': c['body_html'][:200],
})
seen_comments[cid] = True
return alerts
# 2. Check GitHub issues
def check_github(seen_comments):
data = api_get(f'https://api.github.com/search/issues?q=author:{USERNAME}+type:issue+updated:>{since}')
alerts = []
for issue in data['items']:
comments = api_get(f'https://api.github.com/repos/{repo}/issues/{num}/comments')
for c in comments:
if c['user']['login'] == USERNAME:
continue
if 'bot' in c['user']['login']:
continue
if str(c['id']) in seen_comments:
continue
alerts.append({
'repo': repo,
'issue': issue['title'],
'commenter': c['user']['login'],
'comment': c['body'][:200],
})
return alerts
The GitHub Actions workflow
name: Auto-Monitor
on:
schedule:
- cron: '15 * * * *' # every hour
workflow_dispatch:
jobs:
monitor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: python3 scripts/auto-monitor.py
env:
DEVTO_API_KEY: ${{ secrets.DEVTO_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SMTP_USER: ${{ secrets.SMTP_USER }}
SMTP_PASS: ${{ secrets.SMTP_PASS }}
The email
When someone comments on any of my 23 dev.to articles or 90+ GitHub issues, I get an email within 1 hour that looks like:
📊 MarketNow Activity Report
📝 dev.to Comments:
@username on 'How to sandbox an MCP server'
'Great article! Have you considered --read-only rootfs?'
→ Reply on dev.to
💬 GitHub Comments:
@0xbrainkid on crewAIInc/crewAI#6463
'The useful primitive is probably not a boolean verify_security...'
→ Reply on GitHub
📦 npm: 607 downloads (last 7 days)
⭐ GitHub stars: 1
State persistence
The script saves seen comment IDs to .github/monitor-state.json and commits them back to the repo. This way:
- No duplicate alerts
- State survives across workflow runs
- You can see the history in git
What I monitor
| Source | What | Alert trigger |
|---|---|---|
| dev.to | Article comments | New comment from anyone |
| GitHub | Issue comments | New comment from non-bot |
| npm | Weekly downloads | >20% drop or growth |
| GitHub | Stars | New star or milestone |
| marketnow.site | HTTP status | Non-200 response |
Results
Before the monitor: comments went unanswered for 3-5 days.
After the monitor: I respond within 1 hour of the comment being posted.
This matters because:
- dev.to's algorithm rewards early engagement
- GitHub issue maintainers notice responsive authors
- Fast responses build trust with potential users
The code is open
Full script: github.com/edgarfloresguerra2011-a11y/marketnow/blob/master/scripts/auto-monitor.py
Feel free to fork it for your own projects.
I build MarketNow — the trust layer for agent commerce. 8,764 MCP servers, each security-audited by Sentinel L2.5 gVisor sandbox. Follow on GitHub.
Top comments (0)