Render Tutorials
Stock research that survives a closed browser

Deploy the starter

⏱ 6 min

Prerequisites

1. Fork the repo

  1. Open the starter Go to ojusave/stock-research-agent-starter.
  2. Fork it Click Fork → create the fork under your GitHub account.

2. Namespace the Blueprint

On your fork, run the Setup attendee Blueprint names GitHub Actions workflow so render.yaml uses a username-prefixed project (for example yourname-renderatl-workshop).

This is a GitHub Actions workflow (YAML under .github/workflows/). It is not a Render Workflows service.

  1. Open your fork Open your stock-research-agent-starter on GitHub.
  2. Open Actions Click the Actions tab at the top of the repo.
  3. Enable Actions if asked If GitHub shows a banner to enable Actions on this fork, click I understand my workflows, go ahead and enable them.
GitHub Actions tab on a fork showing Workflows are not run until you enable them, with the green enable button.
If Actions are disabled on your fork: click I understand my workflows, go ahead and enable them.
  1. Select the workflow In the left sidebar, click Setup attendee Blueprint names.
  2. Open Run workflow On the right, click the Run workflow dropdown. Leave Branch: main selected.
  3. Start the run Click the green Run workflow button.
GitHub Actions page for Setup attendee Blueprint names, with the Run workflow dropdown open on the main branch.
Actions → Setup attendee Blueprint names → Run workflow on main.
  1. Wait for success Open the new run in the list. Wait until it shows a green check (usually under a minute).
  2. Confirm render.yaml

    Go to the Code tab → open render.yaml on main. You should see a new commit from github-actions[bot], and names like project your-username-renderatl-workshop and web service your-username-stock-research-agent-starter. GitHub usernames are lowercased for Render names (for example Ada.Lovelace becomes ada-lovelace-renderatl-workshop).

3. What the starter does today

Research still runs inside POST /api/research. The handler awaits researchStock(ticker) and only then returns the memo:

const memo = await researchStock(ticker)
res.json(memo)

Inside researchStock, the mock pipeline already has named steps: load company facts, then run signals / catalysts / risks together with Promise.all, then write the memo. The live tracker labels match those steps. All of that still happens under one pending HTTP request. There is no taskRunId yet.

stock-research-agent-starter/
├── src/
│ ├── server.ts # Express; awaits researchStock in the request
│ ├── research-stock.ts # Multi-step mock pipeline (do not rewrite; tutorial wraps)
│ └── workflows.ts # Placeholder; register several research tasks later
├── public/
│ ├── index.html # Ticker form
│ ├── app.js # Starts research; already knows taskRunId mode
│ └── tracker.js # Live progress UI during a run
├── data/mock-stocks.json # Built-in sample dataset
├── scripts/setup-attendee.js
├── .github/workflows/setup-attendee.yml
├── package.json # express, @renderinc/sdk, yaml
└── render.yaml # Project + web service Blueprint

4. Deploy with a Blueprint

A Blueprint is a render.yaml file that tells Render which services to create. After the namespace step, this repo’s Blueprint creates one project with one web service.

It does not create a workflow service. You add that later in the Dashboard.

  1. Open the Dashboard Sign in at dashboard.render.com.
  2. New → Blueprint Click + NewBlueprint.
Render Dashboard Overview with the + New menu open and Blueprint highlighted.
+ New → Blueprint. Deploy from your fork’s render.yaml.
  1. Connect GitHub If prompted, connect GitHub and grant access to your fork (or all repos).
  2. Select the fork Choose your stock-research-agent-starter.
  3. Deploy Leave Blueprint path as render.yaml (repo root). Click Deploy Blueprint / Apply.
New Blueprint page with Blueprint Name, branch main, and Deploy Blueprint button.
Confirm your fork, leave Blueprint path as render.yaml, then Deploy Blueprint.
  1. Wait for live Open the new web service. Wait until status is Live (first build often takes a few minutes).

Copy the public URL (ends in .onrender.com). You will use it for the rest of the tutorial.

5. Confirm the UI

Open the public URL. You should see a ticker field and a Research button.

Form loading is enough for this page.

Blank page or 502: wait another minute for boot, then check Logs. Confirm the service is linked to your fork.

Troubleshooting

I deployed the upstream repo. Delete that Blueprint/service and redeploy from your fork. Later pushes only update the connected repo.

Where is Auto-Deploy? On the service → Settings. Leave Auto-Deploy on so pushes rebuild the service.

Build fails on Node. Confirm env NODE_VERSION is 20.

What you learned

  • Fork deployed as one web service
  • Multi-step mock pipeline still runs inside one HTTP request
  • Next: run research and close the browser mid-run