I Put My Dying Side Projects on Life Support - an ICU With Real EKGs, a Snowflake Lab, and an On-Chain Defibrillator
DEV Community

I Put My Dying Side Projects on Life Support - an ICU With Real EKGs, a Snowflake Lab, and an On-Chain Defibrillator

What I Built

I have lots of public repositories. Some of them are dead. Not deleted - dead. There's a difference. Deleted would mean I made a decision. Dead means one day I committed "fix readme typo" and never came back, and the repo has been lying there ever since, full of half-finished dreams and a TODO.md I'm afraid to open.

Everyone builds graveyards for these projects. Post-mortems. Eulogies. I didn't want a graveyard - because my projects aren't dead to me. They're comatose. So I built the other room in the hospital.

LIFE SUPPORT is an intensive care unit for your side projects. You admit your GitHub username to the ward. Every repo becomes a patient on a live, animated EKG monitor - commit cadence is the heart rate, and projects you've abandoned show the one thing no developer is emotionally prepared to see: a flatline. With the sound.

Then the lab runs your entire commit history through Snowflake and prints your chart, including the number I was genuinely afraid to learn about myself: my passion half-life: [23] days. The median time it takes my enthusiasm for a new project to decay by 50%. Fitted as an exponential decay curve over my actual weekly commit counts. My love has a measurable half-life, and it is shorter than a gym membership.

The chart also includes:

  • BPM - beats per month. One commit, one heartbeat.
  • The 2 AM index - [26]% of my commits happen between midnight and 5 AM. That is not a schedule. That is love.
  • Ward census - [3] alive, [6] flatlined, [1] critical.
  • Longest flatline - [crypto-tracker], silent for [2.2 years], built at the exact top of the market.

And then - the part I'm proudest of - the app doesn't let you just feel bad. Every flatlined patient has a red button: โšก DEFIBRILLATE. Pressing it opens a revival pledge on Solana: a memo transaction, signed with your own wallet, containing a vow to ship at least one commit to that repo within 7 days. It's permanent, timestamped, and publicly auditable.

Here's why a blockchain, sincerely, and not as a sticker: you can delete a todo list. You can dismiss a calendar reminder. You cannot quietly un-promise something you signed on-chain. It's a commitment device.

After the deadline, LIFE SUPPORT checks GitHub and renders one of three verdicts: PLEDGE HONORED, PLEDGE PENDING, or - the chain remembers this one too - PLEDGE BROKEN.

I signed a pledge for [ai-recipe-bot], flatlined [267] days. The clock is ticking as you read this. Feel free to check whether I honored it.

Demo

Two things to try:

  • Toggle SOUND ON in the header, then hover a healthy monitor. Then hover a flatlined one. I'm sorry in advance.
  • Look at the "when the passion burns" histogram. The red bars are your nights.

Full walkthrough: Repo

๐Ÿซ€ LIFE SUPPORT

An intensive care unit for your dying side projects. Every repo you abandoned is still in there. LIFE SUPPORT admits your GitHub account to the ward, puts every side project on a live EKG monitor, runs your entire commit history through a Snowflake-powered lab, and prints the one number you are afraid of: your passion half-life - how many days it takes your love for a new project to decay by half. Then it hands you a defibrillator: an on-chain revival pledge on Solana. A permanent, timestamped, publicly auditable vow to ship one commit within 7 days. You can delete a todo list. You cannot quietly un-promise.

The ward at a glance

Vital What it means
Passion half-life Exponential decay fit over your weekly commit counts: ln(commits+1) ~ a + bยทweek, half-life = -ln(2)/b. Computed per repo, reported as the median.
BPM Beats per month.

Started and finished inside the challenge window, as the rules demand - which felt poetic, because building a project about abandoning projects in 48 hours means racing your own half-life. According to my chart I had at least [23] days of love available. I only needed two.

How I Built It

Stack: Next.js 14 (TypeScript) ยท Snowflake ยท Solana (devnet, Memo program) ยท GitHub REST API ยท hand-rolled canvas EKGs ยท WebAudio ยท zero UI libraries.

The lab runs on Snowflake - actual SQL, not a sticker (Best Use of Snowflake)

Every commit is ingested into a Snowflake table, and the entire diagnosis is one SQL statement. The parts I enjoyed way too much:

  1. The passion half-life is a linear regression in SQL. Log-linearize exponential decay, then let REGR_SLOPE do the fitting:
-- ln(commits + 1) ~ a + b * week โ†’ half-life = -ln(2)/b
SELECT REPO, REGR_SLOPE(LN(N + 1), WK) AS B
FROM weeks_dense
GROUP BY REPO
-- later: IFF(B < 0, -LN(2) / B * 7, NULL) AS HALF_LIFE_DAYS
  1. Silent weeks must count. A decay fit over only the weeks you did commit is flattery. I densify the calendar with a GENERATOR so every silent week shows up as a zero - the silence is the data:
SELECT b.REPO, g.WK, COALESCE(w.N, 0) AS N
FROM bounds b
JOIN LATERAL (
  SELECT SEQ4() AS WK
  FROM TABLE(GENERATOR(ROWCOUNT => 10000))
) g ON g.WK <= FLOOR(DATEDIFF(day, b.FIRST_C, b.LAST_C) / 7)
LEFT JOIN weekly w ON w.REPO = b.REPO AND w.WK = g.WK
  1. Commit streaks are gaps-and-islands. The old window-function party trick: day number minus row number is constant within a consecutive run:
DATEDIFF(day, '1970-01-01', D) - ROW_NUMBER() OVER (PARTITION BY REPO ORDER BY D) AS GRP

There's also a local TypeScript engine implementing the identical math, so the demo works with zero setup - both engines agree on a toy dataset to the decimal (13.5 days, textbook new-project decay). Same math, two labs.

The defibrillator runs on Solana (Best Use of Solana)

The pledge is a Memo-program transaction signed by the user's Phantom wallet:

{
  "protocol": "LIFE-SUPPORT/v1",
  "kind": "REVIVAL_PLEDGE",
  "patient": "ai-recipe-bot",
  "surgeon": "[you]",
  "vow": "I will ship at least one commit before the deadline.",
  "deadline": "+7 days"
}

I deliberately did not write a custom program for this - a memo is exactly enough, and choosing the smallest on-chain footprint that delivers the property you actually need (immutable public accountability) felt more honest than deploying a contract for the rรฉsumรฉ value. Verification happens off-chain against the GitHub API. No wallet installed? You get a clearly-labeled practice pledge so the flow is never gated.

The EKGs are honest

The monitors are a hand-written <canvas> renderer that draws the way real patient monitors draw - a moving write head with an erase bar, sweeping at ~25mm/s, P-QRS-T complexes and all. The waveform shape is decorative physiology; the rate, the status, and every number on the chart are real, derived from real commit history. Flatlines are perfectly flat. Critical patients beat weak and slow. It respects prefers-reduced-motion and the beeps are WebAudio, off by default, because I like whimsy but I'm not a monster.

What I learned about myself

My commit history knew things about me that I didn't. My peak commit hour is [02:00]. My passion decays by half every [23] days - but dotfiles, unglamorous, six years old, never decayed at all. Apparently what survives isn't the exciting projects. It's the ones stitched into how I live.

Also: hovering over your own flatlined repo while the tone plays is a genuinely strange emotional experience, and I built the thing.

One repo gets my first revival pledge. The chain is watching now. So are you.

Prize Categories

Best Use of Snowflake

Snowflake is the hospital lab - every diagnosis on the chart is computed as SQL inside the warehouse, not in application code. The app ingests your full GitHub commit history into a Snowflake table, then runs the entire patient diagnosis as one SQL statement.

Best Use of Solana

Solana is the defibrillator - not a badge, but a commitment device. Every flatlined repo gets a โšก DEFIBRILLATE button. Pressing it signs a Memo-program transaction on devnet with your Phantom wallet:

{
  "protocol": "LIFE-SUPPORT/v1",
  "kind": "REVIVAL_PLEDGE",
  "patient": "ai-recipe-bot",
  "surgeon": "[you]",
  "vow": "I will ship at least one commit before the deadline.",
  "deadline": "+7 days"
}

Why a blockchain, sincerely: you can delete a todo list. You can dismiss a calendar reminder. You cannot quietly un-promise something you signed on-chain. The properties I actually needed - immutability, timestamping, public auditability - are precisely the properties Solana provides. A private database would let me lie to myself, which is the exact failure mode the app exists to fix.

Run yours - I'd honestly love to see your half-life in the comments. (Repo half-lives under 15 days get automatic sympathy.)

Comments

No comments yet. Start the discussion.