Project / ceased
Masthead
A source-led system that turned current news into reviewed LinkedIn posts and carousel PDFs.
I built the workflow from ingestion to publishing, then ceased work when a functioning product still did not establish demand beyond its first user: me.
The problem
I wanted to maintain a useful professional voice without beginning every post from a blank page. Alerts could surface news, a general chatbot could produce copy, and a design tool could make slides, but the research trail, editorial judgment, and publishing calendar still lived in separate places.
Masthead made that a single, reviewable operation: automation prepared source-led work while the named author kept approval control.
What I built
The system joined five stages that are usually separate:
- Discovery. It searched for recent material against a brand’s content pillars and extracted the underlying sources.
- Triage. It classified and scored each item, recorded the reasoning and suggested angle, and separated approved signals from the rest.
- Planning and drafting. Approved sources could feed a content plan or become reactive LinkedIn drafts written against the brand’s strategy and voice.
- Visual production. It generated brand-aware, square carousel layouts and exported them as PDFs suitable for LinkedIn document posts.
- Review and distribution. A user could edit, reject, schedule, or publish a draft, including its carousel, rather than allowing the pipeline to post by itself.
Interactive product walkthrough
From source signal to scheduled post
Reconstructed from the product before work ceased. These are illustrative interface states: no live data is loaded and no action is sent to a backend. Choose a stage, or use Previous and Next, to follow the workflow.
Step 1 of 5: Fetch. 3 example signals prepared.
Factory / Sources
Signal inbox
Industry update from a monitored source
Recent · source extracted · analysis ready
Market commentary matching a content pillar
Recent · source extracted · analysis ready
Transaction announcement from a public source
Recent · source extracted · analysis ready
- System prepared
- Search results, source text, classification, and relevance score.
- Human decision
- Choose the signal worth pursuing.
- Record retained
- Source, rationale, pillar, and angle.
Signal inbox / Review
Inspect before approving
Attached source
Industry update from a monitored source
This illustrative extract stands in for the full text retained by Masthead so a reviewer could check the proposed angle against its source.
Public source · recently fetchedSuggested angle
Explain the practical consequence, not merely the announcement.
Why it matched: relevant to a defined content pillar and suitable for source-led analysis.
- System prepared
- Scored signal, source, rationale, and proposed angle.
- Human decision
- Approve, archive, or revise the angle.
- Record retained
- Source and approval state follow the draft.
Generate / Reactive post
Build from the approved source
- 1Read the approved signalDone
Source and proposed angle loaded
- 2Apply brand strategyDone
Voice, audience, and content pillar applied
- 3Prepare post and carouselDone
Editable copy and square slide layout created
- System prepared
- A source-grounded draft using the brand settings.
- Human decision
- Review the result before anything publishes.
- Record retained
- Generation state, source, and usage.
Drafts / Editor
Make the argument yours
The announcement is not the interesting part.
The practical question is what changes for the people making the next decision.
Source attached · Example industry update
Carousel · 3 slides
- System prepared
- Editable post and brand-aware carousel.
- Human decision
- Verify claims, adjust the voice, approve, or reject.
- Record retained
- Draft state, revisions, source, and carousel.
Calendar / August
Choose the publishing moment
- System prepared
- Approved draft and carousel, ready to schedule.
- Human decision
- Choose the time and publishing identity.
- Record retained
- Time, author, post identity, and publishing status.
The operating product
I built Masthead as a React and Firebase application rather than a collection of disconnected scripts. Its dashboard included a signal inbox, content-plan view, draft editor, generation controls, and a drag-and-drop publishing calendar. The backend handled ingestion jobs, model calls, usage metering, carousel generation, and LinkedIn publishing.
The product grew beyond my own account. Organisations could contain multiple brands with separate pipelines, members, and permissions. I added onboarding, plan limits, usage reporting, administrative controls, and Stripe subscription infrastructure. That work demonstrated the scope required to turn a personal workflow into multi-tenant software; it did not demonstrate that people would pay for it.
Where judgment stayed human
Masthead could find an article and propose what to say about it, but it could not decide whether the point was worth attaching to someone’s professional identity. Approval remained a product boundary: content quality, copyright, attribution, and brand risk still required human review.
Why I stopped
The system worked well enough to prove that it could be built, and I took it far beyond a prototype. But its one committed user was me. I had not established that enough professionals or firms shared the problem, wanted the entire workflow rather than a smaller combination of tools, or would pay enough to support the ingestion, generation, and review costs.
Continuing to add features would have made the implementation more complete without answering the business question. I ceased work rather than mistake more implementation for evidence of a market.