Show HN: I built the most over-engineered Deal With It emoji generator
Overall reception
- Many commenters find the project delightfully “useless but fun” and immediately started using it (Slack, Mastodon, WhatsApp, work chats).
- The over-engineered nature and polish are widely praised; several people say it matches their ideal of a playful, non-corporate internet.
- A few note tastes are “bad” in a meme sense, but the engineering and UI are seen as very solid.
Requested features & enhancements
- Popular asks:
- Text captions (especially “DEAL WITH IT”), with timing options.
- Per-layer frame delays, tweening, and sequences of glasses.
- Shades rotation (already on roadmap), background image rotation, and better cropping tools.
- More meme elements (e.g., a blunt/joint), and more glasses styles/colors.
- Some features were quickly implemented during the thread:
- Pasting an image URL.
- Color and transparency controls for the “classic” glasses via SVG/canvas tricks.
UX, bugs, and platform quirks
- UX feedback:
- Desire for clicking the header to reset to the initial state.
- Debate over whether state changes should be part of browser history.
- Confusion around the small drag handle used to resize glasses, especially on mobile.
- Bugs and quirks discussed:
- GIF size changes after generation initially mis-positioned glasses (later fixed).
- A regression causing “Unsupported MIME type: application/xml” errors (acknowledged and fixed).
- Safari-specific issues: infinite spinner or WebGL/mediapipe failures; one workaround involved enabling “Allow WebGL in Web Workers.”
- Some GIF viewers (Telegram, WhatsApp) cut off or mis-handle the final frame; users describe workarounds like adding a near-zero-duration duplicate frame.
Implementation details
- Face detection uses Google’s Mediapipe face detector locally in the browser; TensorFlow’s face landmarks were considered but had blocking bugs.
- The app is fully client-side, hosted as static assets on Cloudflare Pages, explicitly to avoid hosting user-generated images and associated legal risks.
- UI is built with Tailwind CSS and Ant Design; GIFs are generated with a library using centiseconds, enabling a “very long last frame” trick to simulate non-looping GIFs.
Hiring and career reflections
- The tool was created as an extra, unsolicited part of an interview process; the candidate was ultimately rejected.
- Many commenters argue this kind of passionate side project should strongly favor hiring decisions and share anecdotes of hiring (or being hired) based on similar projects.
- Others caution that hiring is complex and the company may simply have chosen another strong candidate.
- Broader discussion covers frustrations with tech hiring: overemphasis on specific frameworks, heavy take-home assignments, and a job market some find brutal and others see as manageable outside “big tech RSU” roles.
Terminology and meme/emoji discussion
- Several commenters note that calling these “emoji” (as Slack does for custom images) is misleading, since they are really GIFs/stickers and don’t meet Unicode emoji semantics or size/contrast expectations.
- Related complaints extend to Discord’s use of “server” for what are essentially chat groups, illustrating broader confusion around platform terminology.