In the last 10 years, the number of Unicode emoji has more than doubled from around 1,500 to an eye-watering 3,790 in 2025. They’re ubiquitous in online conversation, yet our tools to find the right one to express a particular concept – let alone keep up with the new additions – remain rudimentary.
It needn’t be that way. TypeEmoji leverages the intelligence behind ChatGPT to instantly find the best emoji to represent any word, concept, or phrase you can imagine.
On the backend, TypeEmoji runs a lightweight, containerized Flask app that interfaces with the OpenAI chat API while handling input validation, caching, and rate-limiting to keep my usage costs down. It makes use of OpenAI’s Structured Outputs format to ensure responses conform to the JSON schema I define.
I wanted to have a little fun with the frontend, playing off the trendy “amorphous multicolor” design motif to represent AI. While it may look dated quickly, it gave me an opportunity to dive into some advanced CSS features like @property
custom properties, @keyframes
animations, radial gradients, and color blend modes.
I suspect this little app is likely to get “Sherlocked” because it seems like such an obvious, low-hanging feature to add to Apple Intelligence, which as of early 2025 has been off to a rather underwhelming and rocky start.
Here’s a sampling of searches and results that underscores how much richer the AI-powered TypeEmoji is than Apple’s current emoji picker:
- query: “software development”
- Apple: 🧑💻 👨💻 👩💻
- TypeEmoji: 💻 👨💻 👩💻 🖥️ 🔧 📦 ⚙️ 🌐 🚀 🐞
- query: “triathalon”
- Apple: (no results)
- TypeEmoji: 🏊♂️ 🚴♂️ 🏃♂️ 🏅 🏆 💪 🌊 🚵♀️ 🥇 ⏱️
- query: “new york city”
- Apple: 🗽
- TypeEmoji: 🗽 🌆 🚖 🏙️ 🗺️ 🎭 🍕 🚕 ✨ 🌇
- query: “martial arts”
- Apple: 🥋
- TypeEmoji: 🥋 🏋️♂️ 🥊 🧘♂️ 👊 ⚔️ 💪 🤼♂️ 🏆 🤸♀️
- query: “Finding Nemo”
- Apple: (no results)
- TypeEmoji: 🐠 🌊 🐟 🔍 🎣 🏝️ 🐳 🐬 🐙 🌅