SignalDrift: evidence-first products that can be shared, trusted, and operated.

SignalDrift is the shared codebase behind TechDrift, GamingDrift, and SportsDrift. Each product collects coverage from a curated catalog, groups related stories, and promotes a topic only when it holds across independent sources over time.

The web products are live. Native Android and iOS apps are in development and coming soon.

About this page. This is a public-safe account of a private repository I built and operate solo. It describes real architecture, numbers, and feature names from the codebase. It leaves out hostnames, credentials, internal infrastructure addresses, and anything else that would expose the operating environment, the way my other engineering write-ups do.

About the screenshots. The public product captures below are current views from the live deployed apps. The operator view contains no customer data.

Project
SignalDrift, a shared evidence-first trend-discovery engine
Live brands
TechDrift (23 sources), GamingDrift (25 sources), SportsDrift (60 sources)
Clients
Web app per brand. Native Android and iOS apps are in development.
Recent product work
Inspectable public signal pages, private-by-default accounts, brand-scoped administration, lifecycle email, and onboarding hardening
AI usage
Laya, a self-hosted LLM service used only for bounded, advisory tasks. It never gates deterministic feed delivery.
Tests
922 automated tests: 914 passing, 8 intentionally skipped, 0 failing
Release model
Every change is verified in dev before approved promotion to main, with brand-isolated deploy workflows
Evidence and scoring

Evidence first, scoring second.

Scheduled workers pull from each brand's configured catalog, normalize the items, and record every collection run. The system groups related coverage into topics and scores persistence across independent sources instead of raw popularity. One loud story from one publisher does not become a signal just because it is loud.

Coverage is bounded by publication time and comparison windows, so backdated or republished RSS items cannot inflate a topic. The public product shows the evidence trail behind a signal rather than asking readers to trust a black-box score.

Current TechDrift public signal page, showing a technology brief with status, coverage, source counts, and linked evidence
Current TechDrift public signal page: a short change brief with evidence, source counts, and direct links to supporting coverage.
Sharing and acquisition

A shareable product without giving the product away.

Each published signal has a lightweight public teaser route designed for a link, mobile share sheet, or pasted URL. It shows the signal, status, story count, and a small set of source-labelled headlines. The next action is clear: add the signal to your own board. For a signed-in reader that goes straight to the matching topic. For everyone else it preserves the topic through signup.

Daily briefs also have a token-gated online view that expires after 48 hours. Public profiles have an explicit, private-by-default sharing model, and a native share button with clipboard fallback. These surfaces make the product legible and shareable while keeping full reading, personalization, and account data inside the product.

Current GamingDrift public signal page, showing a gaming brief with status, coverage, source counts, and linked evidence
Current GamingDrift public signal page: the same evidence model expressed through a brand-specific customer experience.
One platform, three products

Shared engineering, separate customer products.

TechDrift, GamingDrift, and SportsDrift run from one codebase, selected by an explicit brand configuration. It owns product identity, source catalog, topic lexicon, scoring thresholds, public copy, cookie namespace, domains, legal contact, branding, and email presentation.

  • TechDrift. Technology coverage from 23 configured sources.
  • GamingDrift. Gaming coverage from 25 configured sources.
  • SportsDrift. Multi-sport coverage from 60 configured sources.

Isolation is deliberate. Each brand has its own database, role, storage, customer-facing domain, and browser state. Shared code reduces repeated engineering work, but one brand's identity, account state, or source catalog does not bleed into another.

Current TechDrift public signal page
TechDrift
Current GamingDrift public signal page
GamingDrift
Current SportsDrift public signal page
SportsDrift

Three customer products, one shared platform, and independent source catalogs.

AI usage

Laya advises. It does not decide what readers see.

Laya is a self-hosted LLM service used for bounded advisory work, including topic-pair clustering, saved-keyword normalization, and capped per-user analysis. Deterministic collection and feed delivery do not depend on it. If the model is unavailable, readers still get the evidence-backed product.

Its calls are capped, time-bounded, typed, and logged with a prompt version, status, and attempt count. That keeps model behavior inspectable and prevents it from quietly becoming an unbounded dependency in the collection path.

Reliability and onboarding

A slow board should not become a broken product.

The shared board is persisted as a durable, brand-scoped snapshot after successful collection. If an expensive trends query hits its database timeout, the app serves the latest known-good board instead of returning an error. If there is no board yet, it returns an honest preparing state while refresh work happens in the background.

Recent onboarding work keeps that same principle at the front door. A new account gets a usable starter board without waiting for full personalization or synchronization, then lands on the board after setup rather than being stranded in profile management. Article and collection paths also deduplicate by canonical identity, preventing repeated source items from turning into repeated cards.

Administration

An operator surface, not just a product.

A separate admin service manages source health, collection jobs, topic clustering, user access, invitations, feedback, digest runs, operational settings, and application errors. The Today view is built around decisions: source exceptions, activation milestones, recent delivery results, feedback needing review, and the newest bounded error records.

Lifecycle email is part of that operating model. Verification, password recovery, account changes, plan changes, invitations, digests, and administrator notices now use brand-aware presentation with the product logo and a safe return path into the app. Admin notices include an account identifier when an operator needs to act, without leaking it into public surfaces.

TechDrift admin 'Today' control surface: decision queue, source health, digest delivery, onboarding funnel
The admin "Today" view: decision queue, source health, digest delivery, and onboarding funnel at a glance.
Engineering discipline

Small team, production habits.

The product now has 922 automated tests, with 914 passing and 8 intentionally skipped integration checks. The suite covers account isolation, public pages and sharing, email rendering, onboarding, source collection, deduplication, durable board snapshots, operational controls, and the three brand configurations. Database migrations are versioned and every rollout is verified in development before an approved production promotion.

The important rule is practical: a successful deploy command is not enough. A change is not done until the relevant customer route, public surface, and protected boundary have been read back on the deployed brand.

Current SportsDrift public signal page, showing a sports brief with status, coverage, source counts, and linked evidence
Current SportsDrift public signal page: evidence-first, no login required, with a plain-language explanation of the trend and the coverage behind it.
What's next

The next product surface.

The immediate roadmap is native Android and iOS clients that stay aligned with the web product. The platform work continues underneath them: richer source selection, careful handling for private or paid feeds, more operator-facing diagnostics, and retention controls for long-running operational data. The product remains web-first today, with the mobile experience being built to match it rather than become a second, divergent product.

More