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.
Research means the same three steps, over and over.
A pipeline stitched by hand, with no home for the results.
- Each scrape is set up from scratch — no repeatable request shape.
- Raw output isn't structured; someone has to reshape it into a document by hand.
- Results live in scattered files with no per-user boundary and nothing to query later.
A web app, an n8n scrape pipeline, and a store — end to end.
- 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.
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 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.
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.
What the build demonstrates.
- A request submitted in the web app runs a live scrape and returns a structured document — the loop closes end to end.
- The front end, the n8n pipeline, and the Supabase schema were produced through the studio's own planner → generator → evaluator pipeline.
- Results are stored per user under row-level security — queryable, durable, and isolated.
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.