DEV Community

Cover image for DevGotchi 2.2: your teammates' progress, synced through git — no server involved
John Facey
John Facey

Posted on

DevGotchi 2.2: your teammates' progress, synced through git — no server involved

DevGotchi turns VS Code into an RPG: four stats decay as you work, real coding
activity (saves, commits, fixing lint errors) earns XP, and a living developer
avatar reflects your session. 2.1 tied the game to real signals — a boss fight
driven by your actual error count, a real Pomodoro timer, a weekly recap.

2.2 is about two things: giving you more control over how the game behaves,
and — the one I'm most excited about — letting a team see each other's
progress without adding a backend to a project that has deliberately never
had one.

⚙️ A real Settings panel

New ⚙️ button on the panel:

  • Turn Weekly Recap notifications on/off
  • Reduce achievement popups (they still log to the Activity Log, just no popup)
  • Pick a stat decay speed — Relaxed, Normal, or Intense

💾 Progress export/import

Your save now travels. Export Progress writes your full save (stats +
settings) to a JSON file; Import Progress restores it elsewhere, after a
confirmation since it overwrites. Useful for backups or moving to a new
machine — everything stays a local file, nothing round-trips through a server.

🌴 Vacation Mode

A toggle that freezes stat decay, burnout, and streak-breaking entirely.
Going on a trip used to mean coming back to a burnt-out avatar and a broken
streak — now it doesn't. Flip it off when you're back and everything resumes
exactly where it left off.

👥 Team Mode — the one I want feedback on

This is the feature I spent the most time thinking through. The idea: let a
team see each other's level, XP, and streak, without DevGotchi ever running a
server, storing an account, or making a network call of its own.

The mechanism is just git. Each teammate who opts in gets one small JSON
snapshot file written into the repo, at .devgotchi/team/<them>.json — keyed
by git email, so nobody's file collides with anyone else's. DevGotchi never
runs git commit or git push for you; the file just sits there like any
other change, and syncs the same way everything else does — through the
commits and pushes your team is already making. A new 👥 Team view reads
every snapshot in that folder and shows a simple sorted list.

It's gated on there actually being a team: it checks distinct commit-author
emails in the repo and only shows the Team button/toggle if there's more than
one. A "team" of one is just clutter — same reasoning that killed an earlier
idea I had for a global cross-install leaderboard (not enough users to make
it meaningful).

Worth being upfront about: this makes your stats visible to anyone with repo
access. It's an explicit per-workspace opt-in, not a default, and the readme
in .devgotchi/team/ says exactly what the folder is and how to turn it off.

💬 Feedback link

Small one: a direct link in Settings to file an issue. No in-editor form,
just routes straight to GitHub.

The technical bit

Team Mode's git lookups (identity, contributor count) shell out to git
synchronously and are capped at a 5-second timeout, cached after the first
call per session. It's the one place in the extension that can technically
block the UI thread — worth knowing if you're digging through the source.

Still a single TypeScript file, zero runtime dependencies, no backend. 15+
achievements, daily quests, a skill tree, a coffee-bean economy, and now a
Bug Boss, a Pomodoro mode, and a way to see your team without asking anyone
to stand up infrastructure for a game.

Free and open source. I'd love feedback specifically on Team Mode — whether
the git-file approach feels natural or like a workaround, and whether the
opt-in framing is clear enough.

🔗 Marketplace: search "DevGotchi" or visit
https://marketplace.visualstudio.com/items?itemName=johnfacey.vscode-devgotchi
🔗 GitHub: https://github.com/johnfacey/vscode-devgotchi

Code is a martial art.

Top comments (0)