Paste links, notes, or PDFs. Get action-first digest cards and a short summary of what to do, what to read, and what to skip. Inference runs on Together AI inside Render Workflows.
This repo demonstrates how to run multi-step chat inference on Render:
| Platform | Role |
|---|---|
| Render Workflows | Durable fetch_item, analyze_item, and synthesize_digest tasks with retries and timeouts |
| Together AI | Chat completions for per-item cards and the digest summary; model chosen in the UI |
| Render Postgres | Digest runs, item results, and source snapshots |
| Render Web Services | Svelte UI, Express API, SSE streaming, and GET /api/models |
Compose a digest, watch the Workflow timeline, then read action-first cards. Screenshots from the live demo.
Paste sources, search Together chat models, then build a digest.
The live Gantt shows fetch → analyze → synthesize. Cards lead with Do this, then why it matters, what changed, and a read / skim / skip call. The summary lists what to do today, read next, and skip.
- Browser starts a digest from the composer
- Web service persists the run, streams SSE, and dispatches Workflow tasks
- Render Workflows executes the pipeline:
| Workflow task | What it does |
|---|---|
fetch_item |
Loads URL / text / PDF content for one source |
analyze_item |
Together chat → one action-first card |
synthesize_digest |
Together chat → headline plus doToday, readNow, skip |
- Cards and stage events stream into the UI as each task finishes
- Click Deploy to Render above (or apply
render.yaml) - Set secrets when prompted:
RENDER_API_KEY,TOGETHER_API_KEY - Create the Workflow service manually (Blueprints do not create Workflows yet):
- Dashboard → New → Workflow (same repo, same region as web + Postgres)
- Build:
npm install && npm run build - Start:
node dist/workflow/index.js - Slug:
read-it-for-me-workflow(or setWORKFLOW_SLUGon the web service to match) - Env:
TOGETHER_API_KEY,DATABASE_URL, optionalTOGETHER_MODEL
- Open the web service URL, paste a URL, and click Build digest
Use the same Together key on web (model catalog) and Workflow (inference). Confirm GET /api/models returns "source":"together".
Default model: meta-llama/Llama-3.3-70B-Instruct-Turbo. PDF uploads are accepted; text extraction is still an MVP placeholder.
| Feature | Description |
|---|---|
| Action-first cards | Each item leads with Do this, then why, what changed, and a read / skim / skip call |
| Together model picker | Searchable chat models from Together; selected model runs analyze and synthesize |
| Live Workflow timeline | SSE-driven left-to-right Gantt (fetch → analyze → synthesize) |
| Change tracking | Postgres snapshots compare repeat sources against the last digest |
| Split responsibilities | Web orchestrates; Together inference stays inside Workflow tasks |
| Variable | Where | Description |
|---|---|---|
DATABASE_URL |
Web | Render Postgres connection string |
TOGETHER_API_KEY |
Web + Workflow | Web: model catalog. Workflow: inference |
RENDER_API_KEY |
Web | Start and poll workflow tasks |
TOGETHER_MODEL |
Both (optional) | Default chat model |
WORKFLOW_SLUG |
Web | Must match the Dashboard workflow slug |
ENABLE_WORKFLOW_TIMELINE |
Web | Set 0 to hide the Gantt |
Render: Workflows · Postgres · Deploy button · Discord

