jassisingh08/rn-expo-emoji-picker — explained in plain English
Analysis updated 2026-05-18
Add a full featured emoji picker to a chat or messaging app without building one from scratch.
Build a WhatsApp style quick reaction bar under messages using the bundled reaction component.
Swap between FlashList, LegendList, or FlatList as the scrolling engine to match an app's existing dependencies.
Ship a smoother native row renderer in production builds while still working in Expo Go via automatic fallback.
| jassisingh08/rn-expo-emoji-picker | avacocloud/avaco-deno | doorman11991/budget-aware-mcp | |
|---|---|---|---|
| Stars | 19 | 19 | 19 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | easy | moderate | easy |
| Complexity | 2/5 | 3/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires React 19+, React Native 0.79+, and the New Architecture enabled (default on Expo SDK 53/54).
rn-expo-emoji-picker is a ready made emoji picker component for React Native apps. It is built specifically for React Native's newer architecture, and it lets a developer choose which underlying scrolling engine powers the picker, either FlashList, LegendList, or the older FlatList, depending on what the rest of the app already uses. It works both inside Expo apps and in bare React Native apps without Expo. The picker's core logic is pure JavaScript, so it works out of the box in Expo Go with no extra native setup. For apps that build their own custom version of the app, there is an optional native row renderer that draws each emoji row as a real native view instead of a JavaScript one, which can make scrolling feel smoother on long lists. If that native piece is not available, such as inside Expo Go, the picker automatically falls back to the plain JavaScript rows, so the same code works everywhere without extra checks. Beyond the basic grid of emoji, the picker supports skin tone selection both globally and per emoji through a long press, a recently used section that can be saved through a pluggable storage system, and a reaction bar component styled like the quick reaction menu seen in chat apps such as WhatsApp. Search is debounced and runs against an index that is built ahead of time rather than parsed while the app is running, which keeps typing responsive. The picker also supports light and dark themes, an automatic mode that follows the system setting, and customizable text strings for different languages. Installing it is a matter of adding the package along with whichever list engine library you want to pair it with, since those engines are optional dependencies rather than bundled in. The component is designed to fill whatever space its parent container gives it, so it needs to be placed inside a screen, bottom sheet, or modal with a defined height. The project requires React 19 or newer and React Native 0.79 or newer with the new architecture turned on, which is already the default starting with Expo SDK 53. It is released under the MIT license, a permissive license that allows free use including in commercial projects.
A ready made emoji picker component for React Native apps, with a choice of scrolling engines, skin tones, recents, and a WhatsApp style reaction bar.
Mainly TypeScript. The stack also includes TypeScript, React Native, Expo.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.