SaaS · 2024

CustomGPT Researcher.

Deep research, with receipts.

RoleFull-stack engineer
ShippedNovember 2024
StackNext.js · React · TypeScript +4
abdelmaksoud.dev
presents
Admit one
researcher.customgpt.ai
CustomGPT Researcher

Act I

The challenge

The research agent runs for twenty to thirty minutes and reports back as a stream of free-form text, no structure, no schema. My job was to make that wait feel alive as a live seven-step run, and to turn that raw stream into a clean, fully cited report a reader can trust.

Act II

What I built

The production frontend and server-action BFF for CustomGPT.ai’s long-running research pipeline. The crawl and generation are an external backend; I submit jobs, poll progress, live-render a seven-step run, and reconstruct a fully cited report by parsing a free-text progress stream client-side.

Intermission, the demo

The product, playing itself

search the sources
cross-check every claim
write, with citations
pipeline steps, live7
every sectioncited
run time20–30 min

the front end for CustomGPT.ai’s research agent, I turn its free-text progress stream into a live 7-step run and a cited report

The cast

What actually makes it work

Read the card, then flip it to watch the mechanism run.

0x01

Report from unstructured logs

The backend streams free text; I detect section markers, regex-extract {name, url} citations, and diff against previous messages to rebuild a structured, cited report on the client.

how it works

Report from unstructured logs

0x02

Multi-task polling manager

A per-task timeout map with resumable tracking, unmount cleanup, and cascade refresh keeps several 20–30-minute jobs alive and correct across navigation.

how it works

Multi-task polling manager

0x03

Dockerized k6 load suite

Smoke, stress (200 VU), and soak profiles with env-tunable thresholds, so the polling layer is proven under load, not just in a happy path.

how it works

Dockerized k6 load suite
Open live