finds.dev← search

// the find

adrianhajdin/social_media_app

★ 1,479 · TypeScript · updated Jun 2024

Build a modern social app with a stunning UI with a native mobile feel, a special tech stack, an infinite scroll feature, and amazing performance using React JS, Appwrite, TypeScript, and more.

A tutorial companion repo from JavaScript Mastery's YouTube channel — a full Instagram clone built with React, Appwrite, and TanStack Query. It's aimed at developers learning how to wire a React frontend to a BaaS backend, not at anyone who wants to ship a real social platform.

React Query is used correctly throughout: infinite scroll, optimistic mutations, and query invalidation are all handled properly rather than bolted on as an afterthought. The Appwrite integration is clean — auth, storage, and database calls are isolated in `src/lib/appwrite/api.ts` rather than scattered across components. The Tailwind setup is disciplined: utility classes are extracted into semantic names in `globals.css`, which keeps JSX readable. TypeScript types are defined centrally in `src/types/index.ts` and used consistently across forms and queries.

This is tutorial code, not production code — the distinction matters if you're planning to build on it. The last commit was June 2024 and Appwrite's API has continued evolving, so some SDK calls may already be stale. There's no server-side rendering or even static generation, so SEO is nonexistent — fine for an app shell, fatal if you wanted any public discovery. Error handling is minimal; most Appwrite calls surface errors through React Query's `isError` but there's no meaningful recovery or user-facing fallback beyond a generic loader. The whole thing is tightly coupled to Appwrite's specific query model, so migrating the backend later would mean rewriting `api.ts` from scratch.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →