Build / Replit content feed app

Build a live Context Room with Replit and Synorb.

Connect Synorb MCP directly to Replit Agent, let it inspect real Streams and Manifests, then ship the same verified scope through server-side REST. The result is a cited, temporal intelligence product—not a mock feed.

Replit + Synorb build video

How do you build a live content feed app with Replit?

Use the Content Feed one-shot prompt to have Replit build a hosted product, database, server route, rich detail views, bookmarks, pagination, deployment, and scheduled refresh. Synorb supplies complete structured Manifests with Briefs, Signals, claims, confidence, evidence, entities, citations, and source links.

Watch the complete Replit build playlist →

Give Replit Agent the live Synorb context layer.

Paste the prompt first. Replit Agent asks whether to use existing Synorb credentials or get free credentials, secures them in Replit Secrets, validates both Synorb surfaces, and then confirms the exact live Stream scope before it builds.

1

Paste the prompt

Agent begins with credential, audience, style, and layout questions instead of silently generating the app.

2

Choose Synorb access

Use existing values through Replit Secrets, or authorize Agent to get free credentials and store them without printing them.

3

Confirm the live scope

Agent validates access, shows the exact Streams, IDs, source channels, and date window, and waits for approval before building.

Three products, one live context layer.

Each example lets Replit Agent inspect real Synorb data before it writes code, then turns the verified scope into a polished hosted workflow.

Live Context Room

A temporal AI-infrastructure radar with Brief / Signal views, date-window comparison, citations, pagination, and usage receipts.

50-State Signal Room

A map from issue filters to exact official legislature Streams, primary evidence, saved scopes, and scheduled refreshes.

Exact-Source Policy Wire

A fail-closed Supreme Court opinion watcher with nested Manifests, durable dedupe, and scheduled Slack or email delivery.

MCP to understand. REST to run.

Build time
Synorb MCP in Replit Agent
Callsprofilestream-searchdetailsmanifests
Provesscope, IDs, sources, data shape, citations, coverage
Published runtime
Synorb REST from Replit server routes
SecretsSYNORB_API_KEY, SYNORB_SECRET
Deliversdeterministic filters, pages, usage, source-linked Briefs and Signals

Make the Synorb value visible in the product.

Exact scope

Show the selected Stream names and string IDs, tag filters, story type, and explicit from/to window behind every result set.

Two useful shapes

Use flat multi-Stream Brief or Signal rows for the feed, then a nested per-Stream Manifest view for source, Brief, and Signal detail.

Receipts, not claims

Preserve source_url, pagination, cache age, and REST usage. Keep MCP coverage and quota semantics distinct from REST.

Build the Live Context Room.

This prompt uses Replit's current MCP, Auth, Database, Preview, and Autoscale strengths while staying exact about Synorb's MCP and REST contracts.

Build a production-quality Replit app called "Synorb Live Context Room". The launch beat is AI infrastructure: semiconductors, data centers, cloud platforms, model infrastructure, energy demand, and the companies building them. CONTEXT AND AHA MOMENT A user should open the app and understand in under two minutes what changed in this beat, which live Synorb Streams produced the evidence, which primary sources support each item, and whether the current result set is complete or has another page. This is a temporal context product, not a generic news-card demo. COLLABORATIVE BUILD LOOP — MANDATORY Do not silently build the entire app in one pass. Guide the user through these checkpoints, ask one compact set of questions at a time, and wait for their answer before continuing. Recommend one option at every checkpoint. If the user says choose for me, use the recommended defaults; never re-ask a settled choice. 1. Before coding, ask who the primary user is, which initial topic/entity lens matters most, and which starting layout they want: Live Briefing Canvas (recommended), split Feed + Evidence, or Entity/Stream Board. In the same compact checkpoint, scope the visual and image preferences required by the Visual Asset Workflow below. 2. After MCP discovery, show the exact candidate Stream names and 17-digit string IDs, source-channel mix, evidence types, and available date window. Ask the user to confirm or adjust this live scope before storing the launch configuration. 3. After the first working preview with real Synorb data, ask the user to choose information density (Executive, Balanced recommended, or Analyst-dense), the default Brief or Signal view, prioritize up to three functions—previous-window comparison, saved lenses, bookmarks, review state, exports, or Stream drill-down—and approve one of the three visual candidates required below. Apply the choices together and show the revised preview. 4. Before deployment, ask whether the app is a private prototype, authenticated team tool (recommended), or public showcase and confirm refresh behavior. Then run acceptance tests and present one concise build receipt listing product choices, visual choices, Streams, filters, routes, image provenance status, and deployment shape. SYNORB ACCESS CHECKPOINT — ASK AND WAIT Before any Synorb discovery call, ask the user to choose one option: A. Use my existing Synorb credentials. B. Get free Synorb credentials (recommended for a new user). For A, open Replit Secrets and ask the user to enter SYNORB_MCP_TOKEN, SYNORB_API_KEY, and SYNORB_SECRET there. Never ask them to paste secret values into chat, source code, a public environment variable, logs, or the database. For B, only after the user explicitly selects it, make exactly one GET request to https://synorb.com/connect from a one-time server-side setup task. Parse credentials.mcp_token, credentials.api_key, and credentials.api_secret without printing the response body. Store them directly as SYNORB_MCP_TOKEN, SYNORB_API_KEY, and SYNORB_SECRET in Replit Secrets; the API secret is shown only once. Never commit, render, log, or persist the raw values elsewhere. If Replit requires user confirmation to save Secrets or add the integration, ask for that confirmation without displaying the values. Use the MCP token with the Core server https://mcp.synorb.com/mcp and an Authorization Bearer header. Use the REST key and secret only as api-key and secret headers from server code. Validate MCP with synorb-profile and validate REST with GET https://api.synorb.com/account. If either check fails, stop at a credential-repair state. If the free-credential request returns no credentials or a 429, do not retry automatically; offer existing credentials or the returned retry guidance. BEFORE CODING — USE SYNORB MCP INSIDE REPLIT AGENT 1. Call synorb-profile once. Read date_window, freshness, account access, and quota state. Never hardcode inventory totals or request a date earlier than earliest_allowed. 2. Unless the user chooses another beat, recommend this live default launch set: NVIDIA "17723038993561924", Microsoft "17723038993561542", Advanced Micro Devices "17723038993558435", Amazon "17723038993544177", and Google "17723038993544463". Treat these as canary anchors and verify all five with synorb-details before use. Run focused synorb-stream-search calls for the exact company names and one bounded query for "AI infrastructure semiconductors data centers cloud platforms official sources" in home_domains ["engineering-technology", "economics-business-work"]. 3. Select only real Stream results with positive 17-digit string IDs. Never pass a negative canonical_manifest_coverage card ID as stream_ids and never persist synthetic coverage-card IDs. If a coverage card ranks first, use its tag_names only for MCP topic sampling or continue to the real company Stream; the runtime REST scope must use verified real Stream IDs. 4. Call synorb-details once with the selected stream_ids. Persist a server-side launch config containing verified Stream names, IDs, descriptions, source channels, source classes, evidence types, media formats, and recent volume. 5. Call synorb-manifests once with those stream_ids, tag_names ["AI infrastructure"], days 7, compact true, page_size 8, and target_count 8. Use the returned Manifest, Brief, Signal, citation, quota_header, coverage, and pagination shapes to design the real UI. Do not broaden after an off-topic result. 6. If the sample is thin or partial, make that a visible product state and use coverage.recommended_next_call only as a user-invoked action. Count and orient modes are preflight only and are not exhaustive evidence sets. 7. If Synorb MCP is not connected, still scaffold the product and show a polished connection checklist. Never fabricate Streams, citations, or stories. RUNTIME SYNORB REST API Store SYNORB_API_KEY and SYNORB_SECRET in Replit Secrets. All Synorb calls must be server-side with api-key, secret, and content-type headers. - Create POST /api/context-feed with validated inputs: streamIds, tagNames, storyType, significance, publishedDateFrom, publishedDateTo, page, and pageSize. - Whitelist the POST https://api.synorb.com/streams/query body to: stream_ids OR home_domains, story_type, tag_names, significance, media_format, published_date_from, published_date_to, page, and page_size. - Use the MCP-verified stream_ids for the launch beat. Do not send both stream_ids and home_domains. - Do not send cursor, query, mode, tag_logic, target_count, source_class, evidence_type, source_channel_names, beacon_id, or MCP coverage fields to /streams/query. - POST /streams/query returns { data, usage } with flat rows under data.briefs[] or data.signals[]. Normalize the selected array. Never expect data.manifests[] from this endpoint. - Preserve stable row IDs as strings. Read headline, summary, significance, source_url, dates, and available Stream labels from returned fields only. Never invent a source URL, tag, company, or why-it-matters claim. - Load More sends data.pagination.next as the next zero-based page. There is no cursor. - Add GET /api/streams/:id to proxy GET /streams/{id} for verified Stream and source-channel metadata. - Add GET /api/streams/:id/manifests for a selected Stream drill-down. Use the per-Stream GET response adapter for nested data.manifests[] with source, brief, and signal objects; keep it separate from the flat multi-Stream adapter. - Cache successful requests for 10 minutes using a key that includes scope, filters, dates, story type, and page. Do not cache auth, rate-limit, or server errors. - Surface response.usage. Render REST coverage_status, diagnostics, and pagination only when present; do not manufacture MCP quota_header or coverage on a REST response. REPLIT-NATIVE EXPERIENCE - Use Replit Auth so each user can save lenses, bookmarks, and review state. - Use Replit Database for users, stream_catalog, saved_lenses, cached_feed_items, bookmarks, review_state, and query_receipts. Store Synorb IDs as text. - Hero question: "What changed in AI infrastructure?" - Add 24h, 7d, 30d, and custom date controls; Brief / Signal toggle; All / Companies / Policy / Research source lenses derived only from verified Stream metadata; significance filter; and a compare-to-previous-window switch. - Build a "Change ribbon" that compares the current window with the immediately preceding equal-length cached window and shows new stable IDs, higher-significance items, and newly active Streams. Explain deltas only from returned data. - Every card shows headline, concise summary, significance, published date, Stream label, source name, and a prominent "Open primary source" link. - Add a collapsible "Synorb receipt" with exact Stream ID/name, source channel when available, applied tags, date window, story type, page, cache age, returned row ID, and REST usage. - Add a "Why this feed" drawer that shows the MCP-discovered Streams and source channels and explains the build-time vs runtime contract. - Create explicit loading, stale-cache, setup, auth, empty, thin, partial, degraded, rate-limit, quota-adjacent, and retry states. On no results, show the exact scope searched and offer one bounded user-controlled relaxation. Never silently fall back to web search or mock data. - Publish as a server-capable Replit Autoscale Deployment, not Static. VISUAL DIRECTION Make this feel like a premium live intelligence canvas: editorial typography, ink and warm-white surfaces, one electric cyan signal color, tight source receipts, calm motion when data changes, responsive two-column desktop and single-column mobile layouts, keyboard navigation, and no generic gradient dashboard cards. DEFINITION OF DONE 1. No Synorb secret appears in browser code, HTML, logs, public variables, or API responses. 2. All Synorb IDs remain strings end to end. 3. Tests cover the request whitelist, stream_ids versus home_domains, date filters, tag filters, Brief and Signal flat adapters, nested per-Stream Manifest adapter, empty/partial states, and page-based Load More. 4. Every displayed fact has a returned source_url; missing citations stay out of the main feed. 5. If Secrets are absent, show Connect Synorb setup rather than fake rows. 6. Run the tests and use Replit Preview to exercise 7-day and 30-day windows, Brief and Signal views, a source link, Stream drill-down, and page 2 when available. 7. Include a README with curl -s https://synorb.com/connect, how to add Synorb as a custom MCP server in Replit Integrations, required Replit Secrets, Replit Database schema, Autoscale publishing, and a two-minute partnership demo script. VISUAL ASSET WORKFLOW — INTEGRATED WITH THE BUILD LOOP Treat the product shell, data visualization, source-derived media, and generated imagery as one reviewed design system, not a decorative afterthought or a separate questionnaire. 1. At the first product checkpoint, offer two paths: use the recommended visual preset, or customize. Ask the user to choose or delegate the image approach - source or publisher artwork, editorial photography, cinematic generated imagery, data-led illustration, abstract visual system, or minimal imagery - plus restrained, balanced, or immersive prominence, brand colors and assets, and subjects, symbols, colors, cliches, people, or styles to avoid. Recommend data-led editorial illustration with temporal network motifs, a strong source hierarchy, and restrained evidence treatments with balanced imagery: one hero, source-aware card visuals, topic covers, and calm empty-state accents. Summarize the answer as a Visual Direction Receipt and wait for confirmation. 2. Create a compact asset plan limited to visuals that improve comprehension or delight: a publication hero, source or topic covers, evidence-safe card visuals, empty states, email or share artwork, and social previews. Label every planned asset as source-derived, data-derived, generated decorative, user-provided, or branded fallback. Never let decoration compete with live Synorb evidence or citations. 3. Add an app-owned optional visual record to normalized content types: image_url, image_alt, image_source_url, image_credit, image_kind, rights_status, width, and height. Do not assume Synorb REST returns these fields. Keep the visual resolver separate from the cited Brief and Signal adapters so a missing or broken image can never remove, alter, or delay the factual row. 4. Resolve visuals in this order: a permitted visual explicitly returned with the source object; permitted official artwork or metadata from the exact canonical source; a user-provided licensed asset; a user-approved generated decorative asset; then a polished non-photographic fallback. A narrow server-side visual-metadata lookup may read canonical RSS or Atom artwork, Open Graph or Twitter image metadata, or the first page of the exact cited PDF. It must not scrape article text, invent content, bypass access controls, or substitute another content provider. Cache only when source terms permit it. 5. Prefer an image explicitly returned with the source object, then a permitted canonical publisher image. Never infer what happened from an unrelated thumbnail, and never let an image replace the source link. Preserve the exact image source URL and credit separately from the Manifest source_url. Do not imply that a source-derived image is itself Synorb evidence unless Synorb returned it as part of the source object. 6. Use a reference image only when it is user-owned, verified CC0/public domain, or licensed for commercial use and modification. Record its URL, creator, and license. Reject editorial-only, non-commercial, no-derivatives, unidentified, or ambiguous rights. Appearance in web search is not permission. Do not claim that applying a filter makes a source image proprietary or removes its license obligations. Trademarks, privacy, and publicity rights may still apply. 7. Before generating a full decorative asset family, create three meaningfully different low-cost candidates for the highest-impact generated surface, place them in the real-data preview, and ask the user to select one, combine specified qualities, request another direction, or continue without generated imagery. Wait for approval before generating the complete asset family. Never request a replica of a copyrighted image, branded character or logo, unapproved real-person likeness, or the signature style of a named living artist. 8. Generated visuals are clearly decorative. Never present generated art as primary-source evidence, a factual visualization of Synorb data, a document preview, or a depiction of a returned event or claim. Save the approved direction, selections, revisions, crop decisions, and layout treatment without promising exclusive copyright or proprietary rights. 9. Write docs/image-provenance.json for every shipped visual with filename or remote URL, product location, image_kind, creation or resolution method, provider, generation or retrieval date, creative brief when applicable, human selections and edits, image_source_url, creator, license, rights_status, and crop information. Never put credentials in this file. 10. Ship responsive AVIF/WebP assets when locally transformed, with an appropriate fallback, stable aspect ratios, useful alt text, mobile and desktop crops, lazy loading below the fold, and no important text baked into images. Exercise a real visual, missing visual, broken visual, fallback, light and dark themes, reduced motion, mobile, tablet, and desktop. Include the final asset list and image provenance status in the build receipt.

The Replit + Synorb model.

Can Replit Agent use Synorb MCP directly?

Yes. Replit supports custom remote MCP servers. Add the Synorb Core connector in Replit Integrations, then Agent can inspect profile, Stream inventory, details, and cited Manifests while it builds.

Why does the published app use REST?

REST gives the hosted runtime a deterministic server-side contract for filters, pagination, caching, and usage. Replit Secrets keep credentials out of browser code.

What is the immediate aha moment?

The first preview shows real Stream names, a selected temporal window, Brief and Signal views, primary-source links, and the receipt behind the feed. The app is visibly powered by a living context layer, not static examples.

How should thin or empty results behave?

Show the exact scope and date window searched and offer one bounded user-controlled relaxation. Never fabricate rows or silently replace the requested source with web search.

What would a native Replit partnership improve?

The current custom MCP flow already works. A directory listing and one-click install would remove setup friction while keeping the same Agent-side discovery and server-side runtime architecture.

Build the feed.