react-native-gifted-chat: a chat UI in maintenance mode, and what that means for new projects
đź’¬ The most complete chat UI for React Native
At a glance
- What is it?
- GiftedChat ships a full React Native and web chat interface as a drop-in component, but its README now points new projects at a maintained fork. Here is what the package still does well, what it costs to install, and how to decide between the two.
- Who is it for?
- Adopt react-native-gifted-chat when you already have it in a shipped app and the surface you use is stable: the upgrade path inside the 3.x line is a dependency bump, and every component stays overridable. Do not start a new chat feature on it if you need streaming AI messages, because the README states that work continues in @kesha-antonov/react-native-chat and that migration is mostly a rename.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 20 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What GiftedChat actually gives you, and who it is for
GiftedChat is a message list, not a messaging backend. The repository is a TypeScript component library whose job is to render a conversation: bubbles, avatars, timestamps, a composer with attach actions, swipe-to-reply, load-earlier pagination, typing indicators, message status ticks, emoji reactions, quick replies and system messages. It targets iOS, Android and web through react-native-web, and the README lists Expo compatibility alongside a browser playground on Expo Snack.
The audience is narrow and specific. You are building a React Native app, you already have a transport for messages (WebSocket, Firebase, your own REST endpoint), and you do not want to write bubble layout, keyboard avoidance and scroll-to-bottom behaviour yourself. If you are evaluating a hosted chat service that also supplies the server, this package is the wrong layer: it renders what you hand it and nothing else.
The README's own framing is worth reading twice. It states that the package is now in maintenance mode and is not receiving new features, and that development continues in a fork, @kesha-antonov/react-native-chat. That note sits above the feature list, which is an honest placement. It also means the feature list describes a frozen surface rather than a roadmap.
How the component is put together: props in, message array out
The architecture is a controlled component over an array of message objects. You pass messages and onSend, and GiftedChat calls back when the user sends. Rendering is delegated: the README describes the component as fully customizable, with the ability to override any component with your own implementation. That is the central design decision, and it is why the package has survived across React Native versions. Bubble, composer, avatar, day separator, input toolbar and the rest are replaceable, so a team that dislikes the default look swaps pieces instead of forking.
Several behaviours are implemented rather than configured. The README lists smart link parsing that auto-detects URLs, emails, phone numbers, hashtags and mentions, localized dates through Day.js, and keyboard handling described as smart keyboard avoidance for all platforms. Reactions are triggered by long-press, with reaction pills and an optional full emoji browser. Pagination for older messages comes through a load-earlier mechanism.
The dependency list in package.json tells you where the weight sits. react-native-reanimated, react-native-gesture-handler, react-native-safe-area-context and react-native-keyboard-controller are peer requirements you install yourself, and the package depends on dayjs, lodash.isequal, @expo/react-native-action-sheet and react-native-zoom-reanimated. None of that is unusual for a gesture-heavy list, but it means GiftedChat is not a zero-dependency drop-in.
Installing react-native-gifted-chat in an Expo project
The README gives a single command for Expo projects, using expo install so the native modules resolve to versions matching your SDK. It pulls in the four peer packages in one line.
npx expo install react-native-gifted-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controllerBare React Native projects install the same set through the package manager instead. The README shows yarn and npm variants; the npm line in the repository is truncated mid-package-name, so use the yarn form as written and translate it yourself if you prefer npm.
yarn add react-native-gifted-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controllerThe README's Requirements table is the gate to check before any of this. React Native must be at least 0.70.0, iOS at least 13.4, Android API 21 or higher, and Expo SDK 50 or higher. TypeScript 5.0 or above is optional. For a first real use, the repository ships a working reference rather than a minimal snippet: the example directory contains example-gifted-chat, example-slack-message and example-expo sub-projects, and yarn start runs expo start from inside example. That is the fastest way to see the default rendering before you wire your own transport.
The maintenance-mode note is the real limitation
The most consequential fact about this package is not a bug. It is the README's own statement that active development has moved, that the package is in maintenance mode and is not receiving new features, and that streaming AI messages and the latest fixes live in the fork. The last push to the repository was on 2026-09-11 and the most recent release listed is 3.4.1 from 2026-06-19, so the repository is not abandoned. But maintenance mode means the feature surface is closed by policy, not by accident.
That creates a specific failure mode for a common 2026 requirement. If your product needs token-by-token streaming responses from a language model, the README directs you elsewhere. Building that on top of GiftedChat means patching the message update path yourself, and you would be maintaining that patch against a package that has declared it will not absorb the change.
There is a second, quieter constraint. GiftedChat renders messages; it does not store, sync, paginate from a server, or resolve delivery state. Every one of those is yours. Teams sometimes adopt it expecting a chat product and discover they have adopted a view layer with a peer-dependency footprint. The README is not silent on this, but the feature list reads more complete than the package is.
react-native-gifted-chat versus the maintained fork
The alternative the project itself names is @kesha-antonov/react-native-chat, and the difference is not cosmetic. The fork continues feature work, and the README states that migrating is mostly a rename, pointing to the fork's migration guide. For a team that needs the features the fork has added, that is the lower-risk path: same component model, same props, active development.
The trade-off runs the other way too. GiftedChat sits at 3.4.1 with a published changelog and a stable API that many shipped apps already depend on. The fork is where new behaviour lands, which also means its surface moves. A team with a frozen chat screen and no plans to touch it gains nothing from migrating and takes on a rename plus whatever the fork changes next.
There is a third option people search for: a hosted chat backend with its own React Native UI kit. That is a different bargain entirely. You give up control of the message store and the rendering in exchange for moderation, delivery guarantees and push handled for you. GiftedChat and its fork sit at the opposite end, giving you the view and leaving the server to you. Neither is better in the abstract; they answer different questions about who owns the conversation data.
Licence and the cost of staying current
The package is MIT licensed, as stated in package.json and the LICENSE file at the repository root. MIT permits commercial use, modification and redistribution with the copyright notice retained. That is the whole of the licence implication here; whether it fits your organisation's policy is a question for your own review, not something the README addresses.
Upgrade cost is where maintenance mode bites. Within the 3.x line the releases are close together (3.3.3 in May 2026, 3.4.0 and 3.4.1 in June 2026), which suggests patch-level changes rather than migrations. The peer dependencies are the real upgrade tax: react-native-reanimated, react-native-gesture-handler and react-native-keyboard-controller each move on their own schedule, and a React Native upgrade will force all four through your build at once. Because GiftedChat does not pin them, you own that coordination.
The repository's own scripts hint at the maintenance posture. The build is a plain tsc compile to lib, tests run under jest with TZ=Europe/Paris, and prepublishOnly chains lint, test and build. There is no sign of a release train beyond that. If you adopt it, budget for the peer-dependency upgrades rather than for GiftedChat releases.
Editorial conclusion
Adopt react-native-gifted-chat when you already have it in a shipped app and the surface you use is stable: the upgrade path inside the 3.x line is a dependency bump, and every component stays overridable. Do not start a new chat feature on it if you need streaming AI messages, because the README states that work continues in @kesha-antonov/react-native-chat and that migration is mostly a rename. Before committing either way, read the fork's migration guide, check that your React Native version is at least 0.70.0, and confirm that react-native-reanimated, react-native-gesture-handler, react-native-safe-area-context and react-native-keyboard-controller are all present in your project, since GiftedChat does not bundle them.
Frequently asked questions
Is react-native-gifted-chat still maintained?
The repository is not archived and the last push was on 2026-09-11, but the README states the package is in maintenance mode and is not receiving new features. New development, including streaming AI messages, continues in the fork @kesha-antonov/react-native-chat.
How do I install react-native-gifted-chat in an Expo project?
The README gives one command: npx expo install react-native-gifted-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controller. Expo SDK 50 or higher is required.
What React Native version does react-native-gifted-chat require?
The README's requirements table lists React Native 0.70.0 or higher, iOS 13.4 or higher, Android API 21 or higher, and Expo SDK 50 or higher. TypeScript 5.0 or above is optional.
Is there a react-native-gifted-chat example I can run?
The repository includes an example directory with example-gifted-chat, example-slack-message and example-expo projects, and the start script runs expo start from inside example. The README also links an Expo Snack playground that runs in the browser.
What is the react-native-gifted-chat alternative if I need new features?
The README names @kesha-antonov/react-native-chat as the maintained fork where development continues, and states that migrating is mostly a rename with a migration guide provided. For a hosted backend plus UI, that is a different layer than this package.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/faridsafi-react-native-gifted-chat)