{"slug": "created-a-developer-excuse-generator-with-6-situations-4-tones-and-custom", "title": "Created a developer excuse generator with 6 situations, 4 tones, and custom excuses", "summary": "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.", "body_md": "We've all been there. Standup starts in 3 minutes. The bug is still there.\n\nThe deploy failed. The PR has been sitting unreviewed for two days.\n\nAnd \"I don't know\" just isn't professional enough.\n\nSo I built **Excusify**. Pick your situation, pick your tone, get a believable excuse.\n\nCopy it. Send it. Survive the standup.\n\n**Live at excusify.vercel.app** - open source, MIT licensed.\n\nPick from 6 built-in engineering situations, choose a tone, and get a context-aware excuse\n\ninstantly. Every generated excuse gets its own shareable URL. There's an Excuse of the Day\n\nthat's seed-based — same excuse for everyone on the same date.\n\n72 hand-written excuses across all situation + tone combinations. Plus AI generation for\n\nanything custom via the Claude API.\n\n**6 built-in situations:**\n\n| Situation | For when... |\n|---|---|\n| Bug still exists | It was working on your machine |\n| Missed deadline | Scope was definitely not creep |\n| Production went down | It was like that when you got there |\n| PR not reviewed | You've only pinged them 4 times |\n| Deploy failed | CI/CD had other plans |\n| Missed standup | You were \"in deep focus work\" |\n\n**4 tones:**\n\n| Option | How |\n|---|---|\nDownload PNG |\nTweet-ready image card via `html2canvas`\n|\nTwitter / LinkedIn |\nOne-click native share compose |\nSlack / WhatsApp |\nPre-formatted deep links |\nCopy as Slack block |\nPaste-ready bold + quoted format |\nShareable URL |\nUnique link per excuse encoded in URL params |\n\nThe built-in 72 excuses cover the classics. But for truly unique situations —\n\nthe cursed legacy codebase, the third rebase in a day, the meeting that could have been\n\nan email — there's a custom input that hits the Claude API and generates a fresh,\n\nbelievable excuse on the spot.\n\nStar your best excuses, they persist to `localStorage`\n\n. History shows your last 10\n\nwith a \"show all\" toggle. Cap prevents localStorage bloat.\n\n`Space`\n\nto generate, `C`\n\nto copy, `F`\n\nto favorite, `S`\n\n/`T`\n\nto focus pickers,\n\n`?`\n\nto show the shortcuts overlay. Full keyboard flow if you never want to touch the mouse.\n\nSubtle synthesized audio feedback on generate via the Web Audio API.\n\nNo external sound files — generated entirely in-browser.\n\nSeed-based daily excuse — same one for every user on the same date.\n\nOpens up a shared experience: \"did you see today's excuse?\"\n\nTracks total excuses generated across all sessions.\n\nA completely useless metric that somehow feels important.\n\n| Tool | Purpose |\n|---|---|\n| React + Vite | Component architecture and build tooling |\n| Tailwind CSS | Utility-first styling, dark/light theme |\n| html2canvas | DOM-to-PNG export for share cards |\n| Web Audio API | Synthesized sound effects, no external files |\n| Claude API | AI-powered custom excuse generation |\n| Vercel | Deployment |\n\n```\ngit clone https://github.com/byllzz/excusify.git\ncd excusify\nnpm install\nnpm run dev\n```\n\nGot a better excuse? Found a tone that's missing? Open a PR.\n\nGood first contributions:\n\n`situations.js`\n\nand `excuses.js`\n\n`tones.js`\n\n```\ngit checkout -b feat/your-feature\ngit commit -m \"feat: your short description\"\ngit push origin feat/your-feature\n```\n\nKeep PRs focused — one feature or fix per PR.\n\nIf Excusify saved your standup - a ⭐ on the [GitHub repo](https://github.com/byllzz/excusify)\n\nmeans a lot. Drop your favourite generated excuse in the comments below!", "url": "https://wpnews.pro/news/created-a-developer-excuse-generator-with-6-situations-4-tones-and-custom", "canonical_source": "https://dev.to/bilalmlkdev/created-a-developer-excuse-generator-with-6-situations-4-tones-and-custom-excuses-3og7", "published_at": "2026-06-03 04:23:20+00:00", "updated_at": "2026-06-03 05:12:10.125869+00:00", "lang": "en", "topics": ["ai-products", "ai-tools"], "entities": ["Excusify", "Claude API", "Vercel"], "alternates": {"html": "https://wpnews.pro/news/created-a-developer-excuse-generator-with-6-situations-4-tones-and-custom", "markdown": "https://wpnews.pro/news/created-a-developer-excuse-generator-with-6-situations-4-tones-and-custom.md", "text": "https://wpnews.pro/news/created-a-developer-excuse-generator-with-6-situations-4-tones-and-custom.txt", "jsonld": "https://wpnews.pro/news/created-a-developer-excuse-generator-with-6-situations-4-tones-and-custom.jsonld"}}