Photo and video feed with an Expo app.
- Surfaces
- web, admin, mobile
- Architecture
- triple
$10 buys this one repository, permanently. Checkout asks for your GitHub username and the invitation arrives within a minute.
What it looks like

A post of up to ten photos and videos.

The home feed, with stories across the top.

A profile, its grid and its follower counts.
Screenshots of the running application, with its demo data. Nothing here is a mock-up.
{ What you open it for }
The parts that are actually hard.
Every application shows how to build an application, and that sentence helps nobody choose. These are the specific problems this one has already solved.
Image and video processing on upload, and what to do off the request
A feed that paginates without drifting as new posts arrive
Mobile capture and upload from Expo
{ Run it }
Seven commands, then it is running.
No Docker and no database server. Every blueprint runs on SQLite with files on local disk, so the only thing between a clone and a working application is pnpm install.
What you need first
- Go 1.21 or newer
- Node 20 or newer
- pnpm 10.33.4
- The Grit CLI, 3.309.0 or newer (grit update)
- ffmpeg, for video posts
- No Docker: it runs on SQLite
What each one does
git clone git@github.com:MUKE-coder/grit-instagram.git && cd grit-instagram
Private. Accept the GitHub invitation first: it arrives within a minute of paying.
grit env
Writes .env from .env.example with every secret freshly generated.
pnpm install
The monorepo: API, web, admin and the Expo app.
grit migrate
Creates the SQLite database and every table.
grit seed
The admin account.
cd apps/api && go run ./cmd/demo && cd ../..
People, posts and stories, so the feed has something in it.
grit start
API on 8080, web on 3000, admin on 3001.
Then open
http://localhost:3000/login
ada@demo.example.com / admin123
The feed, a carousel post, stories and a profile.
http://localhost:3001
admin@example.com / admin123
The admin panel: posts, comments and reports.
Worth knowing
Video needs ffmpeg
Posting a video transcodes it and takes a poster frame, both off the request. Without ffmpeg on PATH a photo post still works and a video post fails with a clear error rather than a broken file.
ffmpeg -version # anything recent
The Expo app
Capture and upload run on a phone. Point the app at your machine on the network, not localhost, or the image will not load.
pnpm --filter mobile start
{ Access }
One of them, or every one of them.
$10 buys a single blueprint and keeps it. A membership covers all of them, including the ones that are still on the list, for as long as it runs.
Permanent access to this repository. No renewal, nothing to cancel.
Membership
$20a month
Every blueprint, including the ones added while you are a member.
Membership, yearly
Two months free$200a year
The same thing for the price of ten months.
Lifetime
$400once
Every blueprint there is, and every one there will be. Nothing to renew.
- Or $10 for a single blueprint, kept permanently.
- The invitation reaches your GitHub account within a minute.
- A membership covers every blueprint added while it runs.
- Cancel whenever. What you have already cloned stays yours.
