Created a developer excuse generator with 6 situations, 4 tones, and custom excuses A developer built Excusify, an open-source excuse generator that offers 72 hand-written excuses across six engineering situations and four tones. The tool, live at excusify.vercel.app, also provides AI-generated custom excuses via the Claude API and features shareable URLs, keyboard shortcuts, and a seed-based daily excuse. We've all been there. Standup starts in 3 minutes. The bug is still there. The deploy failed. The PR has been sitting unreviewed for two days. And "I don't know" just isn't professional enough. So I built Excusify . Pick your situation, pick your tone, get a believable excuse. Copy it. Send it. Survive the standup. Live at excusify.vercel.app - open source, MIT licensed. Pick from 6 built-in engineering situations, choose a tone, and get a context-aware excuse instantly. Every generated excuse gets its own shareable URL. There's an Excuse of the Day that's seed-based — same excuse for everyone on the same date. 72 hand-written excuses across all situation + tone combinations. Plus AI generation for anything custom via the Claude API. 6 built-in situations: | Situation | For when... | |---|---| | Bug still exists | It was working on your machine | | Missed deadline | Scope was definitely not creep | | Production went down | It was like that when you got there | | PR not reviewed | You've only pinged them 4 times | | Deploy failed | CI/CD had other plans | | Missed standup | You were "in deep focus work" | 4 tones: | Option | How | |---|---| Download PNG | Tweet-ready image card via html2canvas | Twitter / LinkedIn | One-click native share compose | Slack / WhatsApp | Pre-formatted deep links | Copy as Slack block | Paste-ready bold + quoted format | Shareable URL | Unique link per excuse encoded in URL params | The built-in 72 excuses cover the classics. But for truly unique situations — the cursed legacy codebase, the third rebase in a day, the meeting that could have been an email — there's a custom input that hits the Claude API and generates a fresh, believable excuse on the spot. Star your best excuses, they persist to localStorage . History shows your last 10 with a "show all" toggle. Cap prevents localStorage bloat. Space to generate, C to copy, F to favorite, S / T to focus pickers, ? to show the shortcuts overlay. Full keyboard flow if you never want to touch the mouse. Subtle synthesized audio feedback on generate via the Web Audio API. No external sound files — generated entirely in-browser. Seed-based daily excuse — same one for every user on the same date. Opens up a shared experience: "did you see today's excuse?" Tracks total excuses generated across all sessions. A completely useless metric that somehow feels important. | Tool | Purpose | |---|---| | React + Vite | Component architecture and build tooling | | Tailwind CSS | Utility-first styling, dark/light theme | | html2canvas | DOM-to-PNG export for share cards | | Web Audio API | Synthesized sound effects, no external files | | Claude API | AI-powered custom excuse generation | | Vercel | Deployment | git clone https://github.com/byllzz/excusify.git cd excusify npm install npm run dev Got a better excuse? Found a tone that's missing? Open a PR. Good first contributions: situations.js and excuses.js tones.js git checkout -b feat/your-feature git commit -m "feat: your short description" git push origin feat/your-feature Keep PRs focused — one feature or fix per PR. If Excusify saved your standup - a ⭐ on the GitHub repo https://github.com/byllzz/excusify means a lot. Drop your favourite generated excuse in the comments below