←back to thread

662 points klimeryk | 9 comments | | HN request time: 1.189s | source | bottom

Hi, all! Author here. What started as a small tool I built for a job interview, became "The Most Over-engineered Deal With It Emoji Generator":

- All operations done fully client-side - no backend, no private data leaves your browser. - Uses machine learning models (MediaPipe Face Detector task) to automatically scale and position glasses on the detected faces. - Extensive customization options for glasses: - Placement of glasses anywhere on the input image (including slightly going outside it). - Change the size of glasses. - No limit on the number of glasses. - Flip the glasses vertically or horizontally. - Customize the direction from which the glasses appear on the image. - Different types of glasses. - GIF output options: - Looping mode. - Number of frames. - Frame delay. - Separate delay setting for last frame. - Output size. - Celebration confetti - Easter eggs.

I've been working remotely for the last >9 years. When using non-verbal communication, it's important that your tone and intent comes across accurately.. Custom emojis became for me part of expressing yourself, creating bonds and camaraderie. I've originally created an MVP of this tool while applying for a exciting new job opportunity. As a showcase of my passion for programming, building teams and creating delightful user experiences. Unfortunately, they were not impressed and ultimately did not offer me the job :( But I wanted to polish it and release it for everyone to use for free, so that you can too "Deal With It"!

I have more ideas for even more features (check GitHub[1]), but wanted to launch it and see what's the feedback and ideas from the community! And if you're looking for a Fullstack Developer with >14 years of experience, with passion for great customer experience (remote work or locally in Iceland), let's chat!

[1] - https://github.com/klimeryk/dealwithit

1. TZubiri ◴[] No.41849296[source]
This is useless, I can't make the glasses come from below, in addition to coming from above.

Also, glasses can only be black? We demand a color palette for glass colour.

EDIT: wait, I managed to make the glasses come from below

blob:https://emoji.build/50c07035-efb9-4341-9205-30adfd6b088e

I retract my indignation on the one half of my requests, but transfer it doubly so for the request of a colour palette

replies(4): >>41849388 #>>41849445 #>>41849491 #>>41853913 #
2. klimeryk ◴[] No.41849388[source]
> We demand a color palette for glass colour.

You can choose different styles of glasses. But, yeah, they're all black-ish. Definitely open to different colors/styles! I've created a new issue with some possible solutions and will look into it: https://github.com/klimeryk/dealwithit/issues/33 (but PRs are welcome too!)

3. barryrandall ◴[] No.41849445[source]
That feature was removed because half the people who want black frames were offended that the app offered options that they didn't want to use.
replies(2): >>41849508 #>>41849581 #
4. ◴[] No.41849491[source]
5. cheschire ◴[] No.41849508[source]
Those responsible for sacking the people who have just been sacked, have been sacked.
6. TZubiri ◴[] No.41849581[source]
What's interesting is that the moment that you introduce a feature that allows for sharing of the images, and you need a backend to host the images. You enter a world of pain where you inevitably will end up hosting illegal material, and it turns from a fun project to a serious project.
replies(1): >>41849729 #
7. klimeryk ◴[] No.41849729{3}[source]
Yeah, that's why I'm keeping everything client-side. There's no backend. This is hosted on Cloudflare Pages, everything on the backend is static. Definitely not looking to host any generated images.
replies(1): >>41851076 #
8. mnutt ◴[] No.41851076{4}[source]
On Mobile Safari at least, you can press and hold the image to share. I imagine there's probably an equivalent gesture on Mobile Chrome. I spent considerable time many years ago trying to figure out how to indicate to users that they could do this. ("press and hold to share", with a progress indicator) Results were mixed.

Fortunately, these days if you wanted to make it more obvious you could hook up a regular Share button to navigator.share() API and pass it your image blob.

9. klimeryk ◴[] No.41853913[source]
Glasses can now be set to any color you want. Only applies to the "Classic" style, though. Unless I find the other glasses in SVG format as well. As a nice side-effect, the glasses can now also be set as semi-transparent!

All thanks to some clever (mis)use of SVG and canvas, see https://github.com/klimeryk/dealwithit/commit/d8f280b5f2e4bd.... Enjoy!