Nikhil Sachdeva Photography

How we built it

An autonomous studio that turns raw photos into a published feed.

NIKSAC pairs a photographer with a crew of AI agents and a hardened, production-grade backend. This is the complete engineering story — the product, the decisions, the API, and a live animated view of the architecture.

Who it's for

The Photographer

Shoots. Doesn't fuss with feeds.

Nik captures the work and drops raw frames into OneDrive. No exports to juggle, no captions to agonize over — the pipeline takes it from there.

The Agent Crew

Curates, writes, and schedules.

A team of focused AI agents picks the strongest frames, drafts on-brand captions and hashtags, proposes crops, and slots posts into the calendar.

The Publisher

Ships to Instagram, reliably.

Approved posts publish straight to Instagram through the Graph API — with idempotent, timeout-guarded calls so nothing double-posts or stalls.

Capabilities

OneDrive ingestion

New frames sync automatically via Microsoft Graph webhooks, with EXIF read on arrival.

AI curation

Agents rank and shortlist the strongest shots so only the best make the feed.

Caption & crop

On-brand copy plus aspect-ratio-aware crop suggestions for every platform.

Smart hashtags

Relevant, non-spammy tag sets generated per photo and per collection.

Scheduling

Posts are queued and released on a cadence, coordinated by a cron worker.

Enterprise identity

Microsoft Entra sign-in with MFA delegated to Entra ID; sessions are HMAC-signed.

Concurrency-safe state

Optimistic versioning + Postgres advisory locks keep browser, webhook, and cron writes consistent.

Guarded API layer

Every route runs behind auth, validation, and per-IP rate limits with a uniform error envelope.

Start here

3-Slide Overview

The photographer workflow problem, how PhotoFlow solves it, and the animated system architecture — three slides, no reading required.

Open

Live diagram

Animated System Architecture

Watch a request travel the full stack — clients, Vercel edge, identity & MFA, the guarded API layer, Neon persistence, and external services — step by step.

Open

The complete reference

Product specs, engineering decisions, and operational guides — versioned with the code and rendered right here, so there's no repository detour.