Skip to content

earthddx/instaclone

Repository files navigation

Instaclone

A full-featured (almost, no plans for stories and reels) Instagram-inspired social media app built with React Native and Expo. Includes photo/video sharing, a dual-feed home screen, real-time global chat, follower system, threaded comments, and animated interactions — all backed by Appwrite.

▶️ Watch demo on YouTube

⚠️ Work in Progress. APK / Expo Go link coming soon.


Screenshots

Home Feed Create Post Messages Comments

Profile User Profile About About – Tech Stack


Features

Auth & Profiles

  • Email/password sign up and sign in
  • Edit profile picture and bio
  • View any user's profile with follower/following counts
  • Follow and unfollow users

Feed & Posts

  • For You tab — paginated feed of all posts
  • Following tab — paginated feed from users you follow
  • Upload photos and videos with a title and description
  • Like posts with a spring-animated heart button
  • Pull-to-refresh on all feeds
  • Infinite scroll with cursor-based pagination

Comments

  • Threaded comment system (nested replies)
  • Bottom sheet UI for browsing and adding comments

Real-time Messaging

  • Global live chat powered by Appwrite Realtime
  • Message bubbles grouped by sender with timestamps
  • Smart time formatting ("Yesterday 3:45 PM", gap markers between chains)
  • Long-press to copy any message
  • Tap a username or avatar to navigate to their profile
  • Scroll-to-latest button when scrolled up in history

Notifications

  • Local notifications for real-time in-app events (new like, comment, follow)
  • Powered by Appwrite Realtime — no server required
  • Tap a notification to deep-link directly to the relevant post or profile
  • Android notification channel configured; permission requested on first launch

UX & Polish

  • Skeleton shimmer loaders for feed, profiles, and grids
  • Toast notifications for async action feedback
  • Error boundaries — one bad post won't crash the feed
  • Animated tab switching between feeds and profile tabs

Tech Stack

Technology Version
Framework React Native + Expo SDK 54
Routing Expo Router v6
Styling NativeWind (Tailwind CSS) v4
Animations React Native Reanimated v4
Backend Appwrite (auth, DB, storage, realtime) Cloud
Video expo-video + expo-video-thumbnails
Images expo-image + expo-image-picker
Notifications expo-notifications ~0.32

Project Structure

app/
├── (auth)/          # Sign in & sign up screens
├── (tabs)/          # Home, Create, Messages, Profile (tab navigator)
│   └── profile/     # Own profile, Edit profile, Settings
├── post/            # Post detail view
└── user/            # Other user profiles and their posts

components/          # Reusable UI components
lib/appwrite.js      # All Appwrite API calls
hooks/               # useHomeFeed, useLocalNotifications, useRealtimeNotifications
context/             # UserContext, ToastContext
constants/colors.js  # Single source of truth for the color system

Getting Started

Prerequisites

Setup

  1. Clone the repo:
git clone https://github.com/your-username/instaclone.git
cd instaclone
  1. Install dependencies:
npm install
  1. Create a .env file in the root and fill in your Appwrite credentials:
EXPO_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
EXPO_PUBLIC_APPWRITE_PROJECT_ID=your_project_id
EXPO_PUBLIC_APPWRITE_DATABASE_ID=your_database_id
EXPO_PUBLIC_APPWRITE_STORAGE_ID=your_storage_id
EXPO_PUBLIC_APPWRITE_USERS_COLLECTION_ID=your_users_collection_id
EXPO_PUBLIC_APPWRITE_POSTS_COLLECTION_ID=your_posts_collection_id
EXPO_PUBLIC_APPWRITE_MESSAGES_COLLECTION_ID=your_messages_collection_id
EXPO_PUBLIC_APPWRITE_FOLLOWS_COLLECTION_ID=your_follows_collection_id
EXPO_PUBLIC_APPWRITE_COMMENTS_COLLECTION_ID=your_comments_collection_id
EXPO_PUBLIC_APPWRITE_POST_LIKES_COLLECTION_ID=your_postlikes_collection_id
  1. Start the development server:
npx expo start
  1. Scan the QR code with Expo Go, or press a for Android / i for iOS simulator.

About

A mobile app that allows users to register, upload images/videos, browse them, like them, leave comments, follow and send messages to users. Created with React Native, Nativewind and Appwrite.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors