RetroFill

> contribution graph // time machine

Your graph. Rewritten.

Paint the days you want green on your GitHub contribution graph — or let the realism engine do it. We push real, backdated commits to a new repo you own: inspectable by anyone, undone in one click.

[ OK ] oauth only · no passwords[ OK ] one repo we create[ OK ] one-click undo

[ LIVE PREVIEW · DEMO PERSONA ]

Public profile, no sign-in. Leave it empty to try @octocat. Nothing is pushed until you connect.

Simulation · generated persona
Persona
Days
Respect existing
Days196
Commits708
Longest streak9
Max / day14
job #91f9 · origin/main
Make it real

> seed 91f9-1a64 · 708 commits · 196 days

How it works

Three steps to green

Nothing to install, no tokens to paste, no waiting a day to see if it worked. Connect, paint, execute — then watch the log.

  1. Step 01: Connect

    Sign in with GitHub. Sign-in is read-only. When you execute, we ask for the scope to create one new repo you name — and we never touch anything else.

  2. Step 02: Paint

    Click and drag on the grid, pick an intensity, or switch to Random and choose a persona: 9-to-5 dev, OSS maintainer, grinder, weekend warrior, casual, crunch.

  3. Step 03: Execute

    Pay once. We build real commits with real timestamps in your timezone, push them in one go, and stream the log. Changed your mind? UNDO deletes the repo.

> Want the git-level detail? Read how it works technically

Under the hood

Nobody commits like a robot

Uniform noise looks like static and gets clocked in two seconds. The realism engine models how developers actually work — and every plan is seeded, so you can reroll until it looks like you.

[ OK ]
Weekday weighting. Mon–Fri heavy, weekends light — or the reverse for Weekend Warrior. Each persona has its own ratio.
[ OK ]
Energy curve. Layered sine waves plus a random walk give you busy months and quiet months instead of flat noise.
[ OK ]
Streak dynamics. Active yesterday means more likely active today. Long runs get a small chance to break so nothing looks scripted.
[ OK ]
Vacations & holidays. Multi-day holes a few times a year and a late-December dip, exactly where real graphs go dark.
[ OK ]
Heavy-tailed counts. Log-normal commits per day: mostly 1–4, occasionally 12, rarely a crunch spike.
[ OK ]
Session timestamps. Commits cluster into 1–3 sessions with minutes to an hour between them, at work hours, evenings or late nights.
[ REALISM READOUT · 26 WEEKS ]
[ ERR ] uniform noiselooks like static
[ OK ] RetroFill · 9-to-5 dev73 days · 248 commits
active days by weekday
commits by hour of day (local)

> seed 00001092 · deterministic · same seed, same plan, on the server too

Pricing

Pay for green, not for seats

Preview is free forever, and so is a first fill of up to 7 days and 20 commits. Pushing a whole year costs less than lunch.

[ ONE-TIME ]

Coffee

$5USD · one-time

One year. One fill. Enough to make the graph stop looking sad.

  • Fill any 365-day window
  • Manual paint + all six personas
  • Realism engine + gap-only mode
  • Real-looking repo: TIL, project or journal
  • Contribution Doctor preflight
  • Live execution log
  • One-click undo
Buy coffee

one-time · stripe checkout

[ ONE-TIME ]Most popular

Time Machine

$12USD · one-time

Every year since you joined. Unlimited fills and rerolls.

  • Everything in Coffee
  • All years, all at once — unlimited fills
  • Text & pixel art mode
  • Private repos + multi-repo spread
  • Custom commit messages
Enter the time machine

one-time · stripe checkout

[ SUBSCRIPTION ]

Autopilot

$3.99USD / month

Set a persona. Forget about it. Your streak stays alive.

  • Everything in Time Machine while active
  • Streak insurance: commits only on days you missed
  • Every day, or a natural rhythm with quiet days
  • Human hours in your timezone, persona-shaped counts
  • Skips days you already contributed for real
  • Pause or cancel anytime
Engage autopilot

cancel anytime from billing · stripe

Prices in USD, plus sales tax or VAT where it applies. Preview is free forever. 14-day refund on any purchase you haven’t executed a fill with — one click in Billing, no ticket. If a fill fails, the credit comes straight back.

Compare every feature across tiers →

FAQ

Questions, answered

Short answers. The long versions live on the FAQ, transparency and legal pages.

How does it work?
You pick days — or let the realism engine pick — and we build a small git repository whose commits carry those author and committer dates in your timezone. We push it once to a brand-new repo you name on your own account. GitHub then counts the commits like any other commits on a default branch.
Is this allowed by GitHub?
Backdating commits in your own repository is a normal git feature and isn't named in GitHub's policies. The Acceptable Use Policies do prohibit "automated excessive bulk activity" and "inauthentic interactions", so we keep volumes human-scale, write only to the one new repo you name, keep every commit readable by anyone who opens it, and never touch other accounts. GitHub could change its rules; we can't control that.
Will people be able to tell?
Anyone can open the repo, and we don't hide it. With the realism engine and real-looking files it won't scream "generator", but it is generated activity. Don't present it as evidence of specific work — treat it like a green lawn, not a résumé line.
Can I undo it?
Yes. Every fill is a job in History with an UNDO button. One click deletes the generated repo; GitHub removes the squares within its refresh window, usually minutes and at most about 24 hours. Nothing else in your account is touched.

All questions →

Ready to go green?

Free to paint. A few dollars to push. One click to undo.

Connect GitHub

> press CONNECT to begin · read-only sign-in