← Back to The Tool Printer

The Perpetual Business

Architecture

A news engine that listens to topics, scores what matters, asks a human when it needs to, publishes, then watches what readers do with it — and uses that to teach itself which signals to chase next. Eight layers, one closed loop.

ADMIN CONSOLEControllerFeeds / IngestionApprovals / RejectedPrompts / KnowledgePeople / StatsFinancials / Opshuman overridebudget · prompts · topicsSUPABASEitemsscoresapprovalsplacementsevents / viewspeople / statspostgres · RLSfull audit trail01 — SIGNAL SOURCEStopics & keywordsRSSTwitter / XYouTubeGitHubLinkedInOG images02 — INGEST WORKFLOWfeed-schedule → fetch → route-itemslib/workflow/03 — SCORECARDproprietary signal scorelib/scoring/threshold.ts04 — HIL APPROVAL QUEUEapprove · reject · editapp/admin/approvalsthreshold05 — FRONT-PAGE CONTROLLERplacement · sections · layoutlib/front-page/controller.tsapproved06 — PUBLIC SITEreader views · clicks · dwellapp/(blog | report | 1-4)publish07 — PERFORMANCE ANALYTICSviews · CTR · dwell · people-statslib/workflow/events.ts08 — LOOPfeedback · reweight scorecardperpetual feedback loophuman override (dashed)storage write/read (dotted)
  1. 01

    Signal Sources

    Topic and keyword agents pull from RSS, X/Twitter, YouTube, GitHub, LinkedIn, and Open Graph image scrapes. Each source is a discrete fetcher — easy to add, easy to silence.

    lib/workflow/steps/fetch-rss.tslib/workflow/steps/fetch-twitter.tslib/workflow/steps/fetch-youtube.tslib/workflow/steps/fetch-github.tslib/workflow/steps/fetch-linkedin.ts
  2. 02

    Ingest Workflow

    A scheduled pipeline normalises raw items, deduplicates, and routes them onward. The funnel point — every signal in the system passes through here.

    lib/workflow/feed-schedule.tslib/workflow/ingest.tslib/workflow/steps/route-items.ts
  3. 03

    Proprietary Scorecard

    Items are scored against a tunable threshold — relevance, novelty, signal-to-noise. Items below the bar are auto-rejected; items above advance to review.

    lib/scoring/threshold.tslib/workflow/steps/score-items.ts
  4. 04

    Human-in-the-Loop

    The approval queue is where the editor (me) intervenes. Approve, reject, or edit. Every decision becomes labelled training signal for the scorecard.

    app/admin/approvalsapp/admin/queueapp/admin/rejected
  5. 05

    Front-Page Controller

    Approved items get placed into sections — hot takes, watchlist, lab notes, vibe, knowledge. The controller decides what shows where, and when it disappears.

    lib/front-page/controller.tslib/front-page/home-data.ts
  6. 06

    Public Site

    The reader-facing surface. Front page, blog, system report, and the four numbered editions. This is where viewership is generated.

    app/page.tsxapp/blogapp/reportapp/1, app/2, app/3, app/4
  7. 07

    Performance Analytics

    Views, dwell, click-through, and source/people stats are captured as events. These metrics are the closing signal of the loop.

    lib/workflow/people-stats.tslib/workflow/events.tsapp/admin/operations
  8. 08

    Feedback Loop

    Performance metrics reweight the scorecard and inform topic tuning. The system gets smarter about what the audience actually reads — autonomously, with editorial veto.

    lib/scoring/threshold.ts ↺ events

Built with Next.js, Supabase Postgres, and a workflow runner. Storage is row-level audited; every approval, rejection, score change, and view is replayable. The site you are reading is the output node of the loop above.

Important disclaimer

The Tool Printer is an experimental AI-assisted intelligence and editorial system. Content is provided for informational purposes only, may contain errors, and is not legal, financial, investment, security, or professional advice. No warranties are made about accuracy, completeness, availability, or fitness for any purpose. Always verify source material before relying on it.

HomeWhat is this?About the systemSystem reportFavoritesArchitectureBlogTermsPrivacyCookie policyDisclaimer