VOOZH about

URL: https://dev.to/zenndraapi/track-medium-follower-growth-and-social-graph-snapshots-j9i

⇱ Track Medium Follower Growth and Social Graph Snapshots - DEV Community


Track Medium Follower Growth and Social Graph Snapshots

Follower count is vanity. Useful products measure velocity, who follows whom, and superfans on hit posts.

Tool outcome: A medium_social_snapshots table + one SQL query for week-over-week growth.


What to measure

Metric Endpoint Use
Follower velocity /user/{id} + weekly snapshot Creator dashboards
Following graph /user/{id}/following Discovery (“who do they read?”)
Superfans /article/{id}/fans Outreach lists

Snapshot job (pseudo-ETL)

const API = 'https://api.zenndra.com';
const headers = { Authorization: `Bearer ${process.env.ZENNDRA_API_KEY}` };

async function snapshotUser(userId) {
 const profile = await fetch(`${API}/user/${userId}`, { headers }).then((r) => r.json());
 const followers = await fetch(`${API}/user/${userId}/followers`, { headers }).then((r) => r.json());

 await db.query(
 `INSERT INTO medium_social_snapshots (user_id, captured_at, followers_count, following_count, sample_follower_ids)
 VALUES ($1, NOW(), $2, $3, $4)`,
 [
 userId,
 profile.followers_count,
 profile.following_count,
 JSON.stringify((followers.users ?? []).slice(0, 50).map((u) => u.user_id)),
 ]
 );
}

Run weekly—not hourly—to respect rate limits and because trends are slow-moving.


SQL: week-over-week growth

SELECT
 user_id,
 captured_at::date,
 followers_count,
 followers_count - LAG(followers_count) OVER (PARTITION BY user_id ORDER BY captured_at) AS delta
FROM medium_social_snapshots
ORDER BY user_id, captured_at DESC;

Join to your product’s users table when Medium writers are also customers.


Alerting

Alert when delta = 0 for four weeks on an account you monetize—often a content cadence problem, not infrastructure.


Keywords

medium follower analytics, medium api followers, creator growth dashboard, medium social graph.


Further reading