Inspiration
We wanted the ultimate “harmless chaos” button: something you can slip into a friend’s VS Code so their code starts misbehaving in subtle, believable ways—and they spend the next hour questioning reality.
What it does
DuckedyDuck is a prank VS Code extension that injects realistic bugs into the file you’re editing. One command can sprinkle multiple classic annoyances—off-by-ones, swapped operators, flipped ternaries, logical/bitwise mixups, and more—while keeping the code syntactically valid.
How we built it
We built a TypeScript VS Code extension and used Babel’s AST toolchain to parse code, mutate specific syntax nodes, and write the result back into the editor. Each prank “bug” is a modular mutator, and a configurable pipeline (bug-generator.bugsPerRun) controls how much mischief gets injected per run.
Challenges we ran into
Making bugs plausible (the kind that look like an honest mistake, not obvious sabotage). Avoiding huge formatting changes so the prank stays stealthy. Handling TS/JS/JSX parsing reliably.
Accomplishments that we're proud of
A growing catalog of sneaky bug injections that feel “real.” Multi-bug injection with a simple “chaos dial.” Clean, modular architecture so adding new prank bugs is fast.
What we learned
The best pranks are subtle: tiny logic shifts cause outsized confusion. AST transforms are perfect for this—safe, targeted, and language-aware.
Built With
- babel
- typescript
Log in or sign up for Devpost to join the conversation.