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.