GitPedia

Flutter twitter clone

Fully functional Twitter clone built in flutter framework using Firebase realtime database and storage

From TheAlphamerc·Updated June 27, 2026·View on GitHub·

A working Twitter clone built in Flutter using Firebase auth,realtime,firestore database and storage. The project is written primarily in Dart, distributed under the MIT License license, first published in 2019. It has gained significant community traction with 4,234 stars and 1,162 forks on GitHub. Key topics include: firebase-auth, firebase-realtime-database, firebase-storage, flutter, flutter-app.

Latest release: 1.0.7v1.0.7+12
February 6, 2022View Changelog →

Fwitter - Twitter clone in flutter GitHub stars GitHub forks

A working Twitter clone built in Flutter using Firebase auth,realtime,firestore database and storage.

<a href="https://play.google.com/store/apps/details?id=com.thealphamerc.flutter_twitter_clone"> <img width="100%" alt="Fwiiter Banner" src="https://user-images.githubusercontent.com/37103237/152671482-885fd940-f4ea-4fb6-8baf-816c17b541d7.png"> </a>

Dart CI GitHub pull requests GitHub closed pull requests GitHub last commit GitHub issues Open Source Love

<a href="https://github.com/Solido/awesome-flutter#top"> <img alt="Awesome Flutter" src="https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true&style=flat-square" /> </a>

Download App

<a href="https://play.google.com/store/apps/details?id=com.thealphamerc.flutter_twitter_clone"><img src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" width="200"></img></a>

Features

  • App features is mentioned at project section Click here
  • Messaging chat section status can be seen at here

:boom: Fwitter app now uses both firebase realtime and firestore database.:boom:

  • In branch firetore Fwitter uses Firestore database for app.
  • In branch Master and realtime_db Fwitter uses Firebase Realtime database for app.

Dependencies

<details> <summary> Click to expand </summary> </details>

Screenshots

Welcome PageLogin PageSignup PageForgot Password Page
Home Page SidebaarHome PageHome PageHome Page
Compose Tweet PageReply To TweetReply to TweetCompose Retweet with comment
Tweet Detail PageTweet ThreadNested Tweet ThreadTweet options
Notification PageNotification PageNotification PageNotification Setting Page
Profile PageProfile PageProfile PageProfile Page
Select User PageChat PageChat Users ListConversation Info Page
Search PageSearch Setting PageTweet Options - 1Tweet Options - 2
Setting PageAccount Setting PagePrivacy Setting PagePrivacy Settings Page
Content Prefrences PageDisplay Setting PageData Settings PageAccessibility Settings
Users who likes TweetAbout Setting PageLicenses SettingsSettings

Getting started

  • Project setup instructions are given at Wiki section.

Directory Structure

<details> <summary> Click to expand </summary>
|-- lib
|   |-- helper
|   |   |-- constant.dart
|   |   |-- customRoute.dart
|   |   |-- enum.dart
|   |   |-- routes.dart
|   |   |-- theme.dart
|   |   |-- utility.dart
|   |   '-- validator.dart
|   |-- main.dart
|   |-- model
|   |   |-- chatModel.dart
|   |   |-- feedModel.dart
|   |   |-- notificationModel.dart
|   |   '-- user.dart
|   |-- page
|   |   |-- Auth
|   |   |   |-- forgetPasswordPage.dart
|   |   |   |-- selectAuthMethod.dart
|   |   |   |-- signin.dart
|   |   |   |-- signup.dart
|   |   |   |-- verifyEmail.dart
|   |   |   '-- widget
|   |   |       '-- googleLoginButton.dart
|   |   |-- common
|   |   |   |-- sidebar.dart
|   |   |   |-- splash.dart
|   |   |   |-- usersListPage.dart
|   |   |   '-- widget
|   |   |       '-- userListWidget.dart
|   |   |-- feed
|   |   |   |-- composeTweet
|   |   |   |   |-- composeTweet.dart
|   |   |   |   |-- state
|   |   |   |   |   '-- composeTweetState.dart
|   |   |   |   '-- widget
|   |   |   |       |-- composeBottomIconWidget.dart
|   |   |   |       |-- composeTweetImage.dart
|   |   |   |       '-- widgetView.dart
|   |   |   |-- feedPage.dart
|   |   |   |-- feedPostDetail.dart
|   |   |   '-- imageViewPage.dart
|   |   |-- homePage.dart
|   |   |-- message
|   |   |   |-- chatListPage.dart
|   |   |   |-- chatScreenPage.dart
|   |   |   |-- conversationInformation
|   |   |   |   '-- conversationInformation.dart
|   |   |   '-- newMessagePage.dart
|   |   |-- notification
|   |   |   '-- notificationPage.dart
|   |   |-- profile
|   |   |   |-- EditProfilePage.dart
|   |   |   |-- follow
|   |   |   |   |-- followerListPage.dart
|   |   |   |   '-- followingListPage.dart
|   |   |   |-- profileImageView.dart
|   |   |   |-- profilePage.dart
|   |   |   '-- widgets
|   |   |       '-- tabPainter.dart
|   |   |-- search
|   |   |   '-- SearchPage.dart
|   |   '-- settings
|   |       |-- accountSettings
|   |       |   |-- about
|   |       |   |   '-- aboutTwitter.dart
|   |       |   |-- accessibility
|   |       |   |   '-- accessibility.dart
|   |       |   |-- accountSettingsPage.dart
|   |       |   |-- contentPrefrences
|   |       |   |   |-- contentPreference.dart
|   |       |   |   '-- trends
|   |       |   |       '-- trendsPage.dart
|   |       |   |-- dataUsage
|   |       |   |   '-- dataUsagePage.dart
|   |       |   |-- displaySettings
|   |       |   |   '-- displayAndSoundPage.dart
|   |       |   |-- notifications
|   |       |   |   '-- notificationPage.dart
|   |       |   |-- privacyAndSafety
|   |       |   |   |-- directMessage
|   |       |   |   |   '-- directMessage.dart
|   |       |   |   '-- privacyAndSafetyPage.dart
|   |       |   '-- proxy
|   |       |       '-- proxyPage.dart
|   |       |-- settingsAndPrivacyPage.dart
|   |       '-- widgets
|   |           |-- headerWidget.dart
|   |           |-- settingsAppbar.dart
|   |           '-- settingsRowWidget.dart
|   |-- state
|   |   |-- appState.dart
|   |   |-- authState.dart
|   |   |-- chats
|   |   |   '-- chatState.dart
|   |   |-- feedState.dart
|   |   |-- notificationState.dart
|   |   '-- searchState.dart
|   '-- widgets
|       |-- bottomMenuBar
|       |   |-- HalfPainter.dart
|       |   |-- bottomMenuBar.dart
|       |   '-- tabItem.dart
|       |-- customAppBar.dart
|       |-- customWidgets.dart
|       |-- newWidget
|       |   |-- customClipper.dart
|       |   |-- customLoader.dart
|       |   |-- customProgressbar.dart
|       |   |-- customUrlText.dart
|       |   |-- emptyList.dart
|       |   |-- rippleButton.dart
|       |   '-- title_text.dart
|       '-- tweet
|           |-- tweet.dart
|           '-- widgets
|               |-- parentTweet.dart
|               |-- retweetWidget.dart
|               |-- tweetBottomSheet.dart
|               |-- tweetIconsRow.dart
|               |-- tweetImage.dart
|               '-- unavailableTweet.dart
|-- pubspec.yaml
</details>

Contributing

If you wish to contribute a change to any of the existing feature or add new in this repo,
please review our contribution guide,
and send a pull request. I welcome and encourage all pull requests. It usually will take me within 24-48 hours to respond to any issue or request.

Created & Maintained By

Sonu Sharma (Twitter) (Youtube) (Insta) (Dev.to)
Twitter Follow

If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of :coffee:

You can also nominate me for Github Star developer program
https://stars.github.com/nominate

Contributors

Visitors Count

<img align="left" src = "https://profile-counter.glitch.me/flutter_twitter_clone/count.svg" alt ="Loading">

Contributors

Showing top 8 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from TheAlphamerc/flutter_twitter_clone via the GitHub API.Last fetched: 6/28/2026