K-emoji app icon.

k-emoji

// Put Hangul letters over your face.

on-deviceno accounts18 localesiOS
cat intro.txt

/**

A selfie app that drops Korean letters onto your face. ㅋㅋ over the eyes, ㅠㅠ down the cheeks — the letters Koreans already type to laugh and cry.

Face detection runs on the phone with Apple's Vision framework. No sign-up, no upload. The photo never leaves your device, so there's nothing on a server to leak or lose.

I built it because the letters were already doing the work. ㅋ and ㅠ aren't decoration in Korean chat — they are the laugh and the tears. Turning them into a mask felt obvious once I saw it.

*/

A person in a pink beanie, a repeating Hangul pattern appearing behind them in Background Mode, by K-emoji.
./play demos/

# In Motion

Three short clips of the masks at work — letters landing on faces, a pattern filling the frame behind.

A person in a pink beanie, a repeating Hangul pattern appearing behind them in Background Mode, by K-emoji.
A person on a yellow bench framed by a repeating Hangul pattern, a K-emoji brand shot.
A person with blonde hair, eyes masked with ㅠㅠ, by K-emoji.
diff before.jpg after.jpg

# Before and After

Same selfie, one tap apart. The face goes in plain and comes out wearing ㅋㅋ.

A smiling person, plain studio background, before any masking is applied, by K-emoji.
// before
The same person, plain studio background, with ㄱㄱ masking the eyes, by K-emoji.
// after
A person in a pink beanie drinking from a mug, plain studio background, before any masking is applied, by K-emoji.
// before
The same person in a pink beanie, a repeating ㄱ pattern behind them, in Background Mode, by K-emoji.
// after
mode --face

# Face Mode

The letters sit on the face itself — ㅋㅋ across the eyes, a single ㅠ down one cheek. Tap Add Jamo to stack more, then set the color (white, black, yellow, pink) and the weight from Thin to Heavy. A thin ㅎ reads quiet; a heavy one covers half the frame.

Two people, with ㅎㅎ and ㅠㅠ masking their eyes in Face Mode, by K-emoji.
// face mode — two masks
K-emoji editor screen — Add Jamo button, color and weight controls, model's eyes masked with ㄱㄱ.
// editor — jamo, color, weight
mode --background

# Background Mode

This one cuts you out of the shot and fills the space behind with a wall of one letter. Pick the LETTER — LOL ㅋ, SMILE ㅎ, CRY ㅠ, TEARS ㅜ — and the BACKDROP color it repeats on. The result reads like a K-pop poster: you in front, the mood spelled out behind you.

A person against a magenta backdrop, a repeating ㅋ pattern behind them, in Background Mode, by K-emoji.
// result — magenta backdrop
K-emoji editor screen — LETTER and BACKDROP controls for Background Mode.
// editor — letter, backdrop
A person, a repeating ㄱ pattern on a blue backdrop, in Background Mode, by K-emoji.
// blue backdrop — full frame
grep -r "upload" ./src

# Stays on the Phone

Finding your face is Apple's Vision framework, running on the phone. Nothing gets sent anywhere. There's no account to make and no server behind the app, because a face is the last thing you'd want sitting in someone's database — so I didn't build one.

ON YOUR IPHONESelfiefrom libraryFace detectVision frameworkJamo maskㅋ · ㅠ · ㅎSaveto your photos

// no server · no account · nothing leaves the phone

cat notes/decisions.md

#Why It's Built This Way

/**

Why jamo. Hangul letters have a shape you can read as a picture. ㅋ is a laugh, ㅠ is a cry — Koreans type them that way every day. So the mask isn't a random sticker. The letter already means something before it touches your face.

No accounts, on purpose. Face data is about as personal as it gets. The one honest way to promise it stays private is to have nowhere to put it. No login, no server, no copy of your photo anywhere but your phone.

18 locales at launch. The people this is for are young and everywhere, not just in Korea. So it shipped translated on day one instead of English-first-and-maybe-later.

*/

wc -l ./facts
100%on-device
0servers
18locales
2modes
open k-emoji.com

# Get It

Live on the App Store in 18 languages. Free to try.