Live · runs in your browser

Everything emoji, for every app on earth.

Search that understands slang, films, feelings and 11 languages. Reaction suggestions, photo to emoji, custom emoji, one consistent look on every device, and analytics. One platform, plugged into the app you already have.

A film, a feeling, a typo, another language — try anything.

Try

npm install emojisenseFree plan · no card needed · MIT core

Works with

  • React
  • Vue
  • Svelte
  • Angular
  • Tiptap
  • Lexical
  • Swift
  • Chrome
  • Raycast
  • MCP

Use cases

One platform, everywhere people use emoji.

Five small apps, all running the real thing. Click around — they are live.

Type a colon, find the feeling

Autocomplete that understands slang and meaning, plus reaction suggestions for every message.

Loading the Chat demo…

Why it matters

Pickers match names. People type feelings.

Most emoji pickers only search official names like “rocket” or “goat”. Here is the same emoji data, searched both ways.

Someone typesTypical pickerEmojisense
“congrats on the launch”IntentNo results👏🎉㊗️
“greatest of all time”MeaningNo results🐐🧔‍♀️🤹
“hallowelen”TypoNo results🎃🧛🐈‍⬛
“jurassic park”FilmNo results🦖🦟🏞️
“i'm exhausted”FeelingNo results🛌🪫😮‍💨
“break a leg”IdiomNo results🍀🎭️🦵

Features

Everything emoji, in one place.

Search, reactions, photos, custom emoji, consistent emoji sets, analytics and tenants — one SDK, one API, one plan. For one app or a thousand customers.

Understands what people mean

Slang, films, idioms and plain feelings — not just official names.

  • greatest of all time🐐
  • jurassic park🦖
  • i'm exhausted🛌
  • mind blown🤯
  • no cap🧢
  • break a leg🍀

Forgives typos

People type fast. Search keeps up.

  • hallowelen🎃
  • brocoli🥦
  • piza🍕
  • congradulations🥳

11 languages, typed the way people type

Native scripts and Latin spellings: Hinglish, pinyin, Arabizi.

  • happy birthday🥳
  • feliz cumpleaños🥳
  • 生日快乐🎂
  • जन्मदिन मुबारक🥳
  • عيد ميلاد سعيد🎂
  • joyeux anniversaire🥳
  • শুভ জন্মদিন🎂
  • feliz aniversário🥳
  • с днём рождения🎂
  • selamat ulang tahun🥳
  • doğum günü🥳

Keeps up with culture New

What an emoji means depends on where and when you are. Editors, helped by AI, add what fits right now — next to the answer, never instead of it.

See how it works
  • greatest of all time🐐⚽🇦🇷🇵🇹Football's greatest-of-all-time debate
  • i'm dead😵💀😭Slang for laughing so hard it is too much
  • thank you🙏🙇In Japan, thanks and apologies often come with a bow

Instant, even offline

Most searches never leave the device.

0.4 msp95 per keystroke, measured

Reaction suggestions

Send a message, get the reactions people would use.

“so proud of you”

🥹🥲🥳👏

Photo to emoji Beta

A puppy gets 🐶 and 🥹. Photos are never stored.

Your own custom emoji

Upload a set or import it from Slack and Discord. It is searched next to the standard emoji, with your own aliases.

:shipit-rocket::lgtm::deploy-friday::latte-art:

Hosted emoji sets

Twemoji, Noto or Fluent, served from the edge — the same look on every device. Even flags on Windows.

JPWindows today🇯🇵with a hosted set

Analytics

See what people search for — and what they don't find.

  • congrats
  • lfg
  • ship it
  • big mood

No match: rizzler → add a custom emoji

Teams and environments

Separate keys for dev, staging and production. Invite your team.

  • Developmentpk_dev_7Hq…
  • Stagingpk_stg_2Lm…
  • Productionpk_live_9Xa…

Tenants and webhooks

Building a platform? Give each customer their own emoji set, managed through the API.

  • Your platform
  • Acme Rockets
  • Bloom Café
  • Pixel Guild

Private by design

  • No user IDs or IP addresses
  • No message text, ever
  • Photos processed in memory, never stored
  • Only anonymous, aggregated search trends

Open-source core

The engine, SDKs, data pack and API server are MIT. Run it on your own Cloudflare account, or let us host it.

MIT engine · SDKs · data · API server

Culture New

Emoji meaning is cultural. And culture moves.

Our editors, helped by AI, map what emoji mean across cultures and moments — and keep it current. It adds to the answer; it never replaces it.

greatest of all time
  1. 🐐Top answer
  2. Added by culture:⚽🇦🇷🇵🇹
  3. 🧔‍♀️
  4. 🤹
  5. 🎪
  • Football's greatest-of-all-time debateLasting · everywhere · Proposed by AI, approved by an editor

Same answer everywhere, all year.

  1. AI proposes

    It drafts associations from holiday calendars, big events and new slang.

  2. An editor decides

    A person reviews every one. Nothing goes live without that approval.

  3. Search adds it

    Approved emoji join the results after the top answer, and step aside when their moment ends.

Global edge

Fast in Lagos, Lima and Lahore.

Emojisense runs on Cloudflare's network in 300+ cities. Every search is answered in the city closest to your user — never in one faraway region.

🦖jurassic park
👏congrats
🎂feliz cumple
👏parabéns
🍻cheers
👏bravo
💪kolay gelsin
🎂عيد ميلاد سعيد
🎂с днём рождения
🎉बधाई हो
🎂শুভ জন্মদিন
🥳selamat ulang tahun
🎂生日快乐
🐐greatest of all time
Real searches and the emoji our engine returns for them. The map is an illustration; dots show large cities, not exact data centers.
  • 300+cities on Cloudflare's network. 95% of internet users are within 50 ms of one.
  • < 1 msfor answers on the device, at every keystroke. Measured p95: 0.4 ms.
  • ≈ 50 msfor an AI meaning search inside the edge. Measured p50: 52 ms.
  • 0servers, regions or GPUs for you to set up. It works the same everywhere.

Gets better with use

The more people search, the smarter it gets.

Common searches come back instantly, new slang is learned every night, and search stays smart even when your plan runs out.

How a search gets answered

  1. On the device

    Names, slang and typos, straight from the built-in dictionary. Works offline, from the first keystroke.

    < 1 ms✓ answers✓ still answers
  2. Popular searches, ready in advance

    Every night, the searches people use most get smart answers prepared ahead of time and placed close to your users.

    nearest city✓ answers✓ still answers
  3. Recent answers, kept nearby

    Once a new search is understood, its answer stays in the nearest city, so it comes back instantly next time.

    nearest city✓ answers✓ still answers
  4. AI meaning search

    Brand-new phrasing is understood by meaning, at the edge, in about 50 ms.

    ≈ 50 ms✓ answers⏸ until next month

Past your plan limit, your users still get answers from the device, from popular searches and from recent answers. Only brand-new phrasing waits until next month, and the device answers it meanwhile.

Integrations

Everything emoji, wherever you build.

Search, reactions, photos, custom emoji and hosted sets. Bring the whole platform to the stack you already use.

Frameworks

  • React hooks and picker: docs

    A drop-in picker built on Frimousse, or hooks for your own UI.

  • Web component: docs

    A complete picker in one tag, for any framework or none.

  • JavaScript engine: docs

    The engine on its own: browsers, Node, Deno, Bun and Workers.

Editors and pickers

  • Tiptap extension: docs

    Colon autocomplete. Type :fire:, get 🔥.

  • Lexical plugin: docs

    Colon autocomplete as a typeahead plugin for React.

  • emoji-mart adapter: docs

    Keep the emoji-mart picker. Give it search that understands people.

Native and apps

  • Swift package: docs

    The same engine, native on iOS 16+ and macOS 13+.

  • from source

    Chrome extension: docs

    An emoji picker for every text field, one shortcut away.

  • from source

    Raycast extension: docs

    Search emoji by meaning from your launcher. Works offline.

AI and servers

  • MCP server: docs

    Emoji search and reactions for Claude and other AI assistants.

  • HTTP API: docs

    Search, reactions and photo to emoji, from any language.

  • from source

    Self-hosted API: docs

    The whole API as one Worker on your own Cloudflare account.

Custom emoji in Slack or Discord? Bring them along on Pro.See plansAll docs

For developers

Add it in minutes, not sprints.

One SDK for search and pickers, one API for reactions, photos and custom emoji, and integrations for the stack you already use.

  • Keeps your picker and your design
  • Works offline from the first keystroke
  • MIT-licensed core you can self-host
Read the quickstart
npm install @emojisense/react frimousse

import { useEmojisense } from "@emojisense/react";
import { EmojisensePicker } from "@emojisense/react/frimousse";

const sense = useEmojisense({ packBaseUrl, endpoint, publishableKey });
<EmojisensePicker emojisense={sense} onEmojiSelect={({ emoji }) => insert(emoji)} />

Pricing

Free to start. Fair when you grow.

Search and reaction suggestions are on every plan. Pay for volume, photos, custom emoji and team features.

Billing period

Yearly billing is available on Solo. Other plans bill monthly.

Free

For side projects and trying it out.

$0/ month

No card needed

Get a free key

Includes

  • Semantic search and reaction suggestions
  • All SDKs and integrations
  • Unlimited on-device answers
  • 100k AI calls a month
  • 100 photos to emoji a month
  • 1 app or environment

Solo

For one app with real users.

$5$4/ month

or $48 a year, save $12Billed $48 a year, save $12

Join the Solo waitlist

Everything in Free, plus

  • 500k AI calls a month
  • 1k photos to emoji a month
  • 500 custom emoji
  • Hosted emoji sets

Scale

For platforms with many customers.

$100/ month

Billed monthly

Join the Scale waitlist

Everything in Pro, plus

  • 15M AI calls a month
  • 75k photos to emoji a month
  • 10k custom emoji
  • 1 year of analytics
  • Unlimited apps or environments
  • Tenants
  • Webhooks
  • Priority support

Search never breaks at a limit. Past your monthly AI calls, on-device, ready-made and cached answers keep working until the next month. What counts as a call?

FAQ

Questions, answered.

What is Emojisense?

One platform for everything emoji in your product: search that understands people in 11 languages, reaction suggestions, photo to emoji, custom emoji, hosted emoji sets, analytics and per-customer emoji for platforms. It plugs into the app and the picker you already have.

Do I need a server?

No. The engine and dictionary run in the browser or app. The hosted API adds meaning search for unusual queries; you can also self-host it on your own Cloudflare account.

Which pickers and frameworks work?

React and the Frimousse picker today, plus a web component for Vue, Svelte, Angular and plain HTML, editor extensions for Tiptap and Lexical, a Swift SDK, a Chrome extension, Raycast and an MCP server for AI apps.

What happens when I reach my plan limit?

Nothing breaks for your users. Popular searches still get smart answers, and the on-device dictionary covers everything else until the next month.

Where does it run?

The engine runs on your users' devices. The API runs on Cloudflare's network in 300+ cities, so every search is answered close to the person typing it. There is no single region to be far from.

What do you know about my users?

Nothing personal. We never store who searched, from which app, or what they wrote in a message. Your usage and analytics stay in your account.

Is it open source?

Yes. The engine, SDKs, data pack and API server are MIT. The hosted service adds daily dictionary updates, analytics and custom emoji.

Emoji, solved. Everywhere.

Give your users emoji that just work — in every language, on every device. Free to start, ready in minutes.