You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Visualize the full lifecycle of a developer joining, contributing, and leaving an ecosystem.
14
-
""")
9
+
mo.Html('<div class="ddp-header"><h1>Lifecycle Analysis</h1><p>Tracking how developers move through lifecycle states across crypto ecosystems.</p><div class="ddp-header-meta"><span>Created: <span class="ddp-badge">2026-03-16</span></span></div></div>')
15
10
return
16
11
17
12
18
-
@app.cell(hide_code=True)
19
-
defheader_accordion(mo):
20
-
mo.accordion({
21
-
"Overview": mo.md("""
22
-
- This notebook tracks developer lifecycle states — the month-by-month progression of developers joining, contributing, and eventually churning from an ecosystem
23
-
- It reveals how the balance between newcomers, established contributors, and churned developers shifts over time and across ecosystems
24
-
- Key metrics: monthly active developers by lifecycle state, churn ratio, dormant developer count
25
-
"""),
26
-
"Context": mo.md("""
27
-
**Lifecycle labels** classify each developer's monthly activity into one of 16 granular states. These roll up into 4 categories used in the summary chart:
28
-
29
-
| Category | Label | Description |
30
-
|:---------|:------|:------------|
31
-
| **First Time** | `first time` | First-ever contribution to the ecosystem |
32
-
| **Full Time** | `full time` | 10+ active days, continuing from prior month |
33
-
| | `new full time` | First month reaching 10+ active days |
34
-
| | `part time to full time` | Transitioned from part-time level |
35
-
| | `dormant to full time` | Returned from dormancy at full-time level |
36
-
| **Part Time** | `part time` | 1-9 active days, continuing from prior month |
37
-
| | `new part time` | First month at part-time level |
38
-
| | `full time to part time` | Stepped down from full-time level |
39
-
| | `dormant to part time` | Returned from dormancy at part-time level |
40
-
| **Churned / Dormant** | `dormant` | No activity this month (previously active) |
41
-
| | `first time to dormant` | Dormant after first contribution |
42
-
| | `part time to dormant` | Dormant after part-time activity |
43
-
| | `full time to dormant` | Dormant after full-time activity |
44
-
| | `churned (after first time)` | Extended inactivity after first contribution |
45
-
| | `churned (after reaching part time)` | Extended inactivity after reaching part time |
46
-
| | `churned (after reaching full time)` | Extended inactivity after reaching full time |
47
-
48
-
**Active** = First Time + Full Time + Part Time (all 9 labels above the Churned/Dormant group)
49
-
50
-
**Churn Ratio** = sum(churned + dormant) / sum(active) over the trailing window (12mo or all-time)
51
-
52
-
Data is bucketed monthly; private repos excluded; contributions include commits, issues, pull requests, and code reviews.
53
-
54
-
**Metric Definitions**
55
-
- Lifecycle — Developer stage definitions
56
-
- Activity — Monthly Active Developer (MAD) methodology
57
-
"""),
58
-
"Data Sources": mo.md("""
59
-
- **Open Dev Data (Electric Capital)** — Ecosystem and developer taxonomy, [github.com/electric-capital/crypto-ecosystems](https://github.com/electric-capital/crypto-ecosystems)
**Lifecycle labels** classify each developer's monthly activity into one of 16 granular states. These roll up into 4 categories used in the summary chart:
375
+
376
+
| Category | Label | Description |
377
+
|:---------|:------|:------------|
378
+
| **First Time** | `first time` | First-ever contribution to the ecosystem |
379
+
| **Full Time** | `full time` | 10+ active days, continuing from prior month |
380
+
| | `new full time` | First month reaching 10+ active days |
381
+
| | `part time to full time` | Transitioned from part-time level |
382
+
| | `dormant to full time` | Returned from dormancy at full-time level |
383
+
| **Part Time** | `part time` | 1-9 active days, continuing from prior month |
384
+
| | `new part time` | First month at part-time level |
385
+
| | `full time to part time` | Stepped down from full-time level |
386
+
| | `dormant to part time` | Returned from dormancy at part-time level |
387
+
| **Churned / Dormant** | `dormant` | No activity this month (previously active) |
388
+
| | `first time to dormant` | Dormant after first contribution |
389
+
| | `part time to dormant` | Dormant after part-time activity |
390
+
| | `full time to dormant` | Dormant after full-time activity |
391
+
| | `churned (after first time)` | Extended inactivity after first contribution |
392
+
| | `churned (after reaching part time)` | Extended inactivity after reaching part time |
393
+
| | `churned (after reaching full time)` | Extended inactivity after reaching full time |
394
+
395
+
**Active** = First Time + Full Time + Part Time (all 9 labels above the Churned/Dormant group)
396
+
397
+
**Churn Ratio** = sum(churned + dormant) / sum(active) over the trailing window (12mo or all-time)
398
+
399
+
**Metric Definitions**
400
+
- Lifecycle — Developer stage definitions
401
+
- Activity — Monthly Active Developer (MAD) methodology
402
+
"""),
403
+
"Assumptions & Limitations": mo.md("""
404
+
- **Activity windows**: Developer activity is measured using 28-day rolling windows; a developer is considered active if they have at least 1 active day in the window
405
+
- **Ecosystem assignment**: Repos are mapped to ecosystems via recursive repo mapping from Open Dev Data — a repo may belong to multiple ecosystems through the parent-child hierarchy
406
+
- **Identity resolution**: Developer identities are resolved by Electric Capital's fingerprinting; the same person using different accounts may be counted multiple times
407
+
- **Public GitHub only**: Only public GitHub commits and activity are tracked; private repos and non-GitHub platforms are excluded
408
+
"""),
409
+
"Data Sources": mo.md("""
410
+
- **Open Dev Data (Electric Capital)** — Ecosystem and developer taxonomy, [github.com/electric-capital/crypto-ecosystems](https://github.com/electric-capital/crypto-ecosystems)
0 commit comments