Inspiration

Honestly, this started from my own problem. I read a lot: newsletters, articles, threads, and I'd constantly copy things into ChatGPT, ask a few questions, and try to piece together a takeaway by hand. It was messy and I lost most of what I read. The bottleneck was never reading; it was turning what I read into a clear point of view I could actually use or post.

I come from a marketing analytics background, and the part I kept wishing I could automate wasn't the writing, it was the analysis: what actually matters here, and who cares. So I wanted to see if that specific lens could become an AI pipeline, instead of just another "summarize this" tool.

What it does

Lens takes an article (via URL or pasted text) and runs it through three chained GPT-5.6 nodes, each shown as a live progress step:

  1. Context Parsing : pulls out the topic, source type, key claims, and background
  2. Core Insights + Market Angle : analyzes it through a marketing/audience lens to surface what matters and to whom
  3. X Thread Generation : turns that analysis into a ready-to-post thread

Output shows up as three cards: Core Insights, Market Angle, X Thread, each with one-click copy. Most content-repurposing tools jump straight from summary to draft, which is why they feel generic. The whole point of Lens is that middle step: it decides what's worth saying, and to whom, before writing anything.

How I built it

I built this entirely with Codex, and honestly the biggest thing that made it work was scoping ruthlessly. I locked a tiny MVP up front so I wouldn't spiral into feature creep on a tight timeline:

  • Scaffolded the Vite + React app and verified the build
  • Wrote the 3-node pipeline (server/pipeline.js) with structured JSON output so each node reliably feeds the next
  • Built the full dark-theme UI with live per-step progress states and copy-to-clipboard cards
  • Added URL extraction (via Mozilla Readability) as an enhancement after the core paste-text flow was working end to end
  • Kept the OpenAI API key server-side throughout

The key calls I made: a 3-node pipeline instead of a multi-agent framework (reliability over ambition, given the time), making the marketing-analysis node the actual differentiator; and forcing structured JSON over free-text parsing so the chain wouldn't quietly break between steps.

Challenges I ran into

The chained calls were finicky at first, a small schema mismatch in an early node would cascade and break the next one. Locking every node to a strict JSON schema fixed it. URL extraction was the other one: it's easy on clean sources like Wikipedia, but real-world blogs and newsletters don't always parse, so I added a fallback that just asks the user to paste the text instead of failing silently.

What I learned

That reliable multi-step AI pipelines come down to the contracts between steps far more than clever prompting, and that scoping small (3 nodes, one input flow, no auth or database) is exactly what let me ship something complete instead of something ambitious and broken. As someone still fairly new to building like this, that lesson stuck.

What's next

More output formats (Instagram, TikTok, LinkedIn), YouTube transcript input, and a lightweight history so I can revisit past analyses.

Built With

Share this project:

Updates