OPERAND STUDIO
PROJECT · TESSERA

A research console, built the way we build client work.

Tessera is a research and datascrape product: a Next.js web app over an n8n pipeline that runs Firecrawl scrapes, structures the results, and stores them in Supabase. It was planned, generated, and evaluated through the studio's own pipeline, then deployed — a full front-to-back build, not a brick.

SITUATION

Research means the same three steps, over and over.

Gathering research off the web is a loop: point at a source, pull the page, and turn the raw content into something structured you can read and keep. Done by hand it is slow, inconsistent, and forgotten the moment the tab closes — nothing is stored, nothing is queryable.
BOTTLENECK

A pipeline stitched by hand, with no home for the results.

The manual version breaks in the usual places:
SYSTEM

A web app, an n8n scrape pipeline, and a store — end to end.

The web app lets a user submit a target, watch the run, and read the resulting document, over Supabase-backed auth. Submitting a request triggers a signed n8n webhook that acknowledges fast, runs a Firecrawl scrape, structures the output, and writes both the request row and the extracted document back to Supabase under row-level security. The whole thing was assembled by the studio pipeline — planner, generator, and a cross-model evaluator — and deployed to Vercel.
The Tessera Project, built end-to-end. A Next.js web app with Supabase auth lets a user submit a scrape target, watch the run, and read the document. Submitting fires a signed webhook to an n8n pipeline that acknowledges fast, runs a Firecrawl scrape, structures the result, and writes the request row and the extracted document back to Supabase, where requests and documents are stored per user under row-level security. The whole build ran through the studio pipeline: planner, generator, and a cross-model evaluator.
THE LOOP, IN ORDER
  • Request: the user submits a target and what to extract from the web app; the request is a Supabase row scoped to them.
  • Trigger: submitting fires a signed webhook to the n8n workflow, which acknowledges immediately so the UI stays responsive.
  • Scrape: the workflow calls Firecrawl to fetch the target and pull structured content out of the page.
  • Persist: the request status and the extracted document are written back to Supabase — per-user, under RLS.
  • Read: the app shows the run status and renders the finished document from the store.
Built through the pipeline

Tessera was planned, generated, and cross-model evaluated through the studio’s own harness — the same pipeline that produces client work — then deployed to Vercel.

A real end-to-end loop

A request from the web app triggers a signed n8n webhook, which runs a Firecrawl scrape and writes the request and the extracted document straight back into Supabase.

Per-user by construction

Every request and document is a Supabase row under row-level security, scoped to the user who asked for it — isolation is enforced in the database, not the app.

OUTCOME

What the build demonstrates.

Tessera is the pipeline proving itself on a full-stack product: a real front end, a real automation back end, and a real store, wired into one working loop.
LIVE

The core loop is live; the product surface is still expanding. Usage-based numbers land here once the observation window closes — never before. No invented figures.

STACK

What Tessera is made of.

One product, assembled from the studio's standard parts — the same building blocks a client app is made of.
Next.js research consoleSubmit a target, watch the run, read the document — over Supabase-backed auth.WEB APP
n8n · Firecrawl scrape pipelineSigned webhook, fast ack, Firecrawl scrape, structure, and write-back to the store.AUTOMATION
Supabase store · RLSRequests and documents as rows, scoped per user by row-level security.DATA
Talk about a build like this →