Skip to content
VALERAWEBDEV07
Flagship case

AI OPS.

An AI background replacement pipeline for product photos. It preserves the product, removes the studio and speeds up creative production.

Role

Architecture, fullstack, deployment

Year

2026

Stack

Next.js 16 · TypeScript · Supabase

ai.webdev07.techLive
AI OPS: original product photo
AI OPS: product photo with a new background
OriginalResult
Before & afterdrag to compare

20 sec

average generation

$0.02

per generation

100%

product preserved

3

languages

01

The task

Businesses need product creatives, but photo shoots are expensive and generic AI generators break logos, seams and textures. One bad image means a return and lost money.

02

The solution

The service uploads a product photo, accepts a scene description and replaces the background while preserving the product. The demo works in three languages, with limits and spam protection.

03 — ARCHITECTURE

Architecture

An async pipeline: the API responds immediately, generation continues in the background, and the client polls for the result.

Browser

upload + prompt

Next.js API

route handlers

Supabase

queue + storage

fal.ai

generation

Telegram

lead notification

async after response
API responds with runIdpipeline runs in backgroundclient polls for result
04 — DECISIONS

Key decisions

01

A queue without extra infrastructure

after() runs the pipeline after the API response. The user gets a runId immediately and generation never breaks the request.

02

Polling that survives a reload

The runId is stored in localStorage, so the client reconnects and keeps waiting for the result.

03

Atomic limits

2 generations per email and 3 per IP. Errors do not consume the limit, so the user can retry.

04

Three languages and production

en / ru / uk, Caddy + systemd, health checks and atomic deploys with rollback.

05 — VISUALS

Before & after

AI OPS: another original product photo
AI OPS: another product photo with a new background
OriginalResult

Stack

Next.js 16TypeScriptSupabasefal.aiTailwind CSSCaddysystemd

Drag the handle to compare the original and the result.

Back home

Need a similar AI pipeline?

Discuss a project