Quickstart 3: Tiny Shop Funnels
A small shop: an Express API and a React app with five pages. Its page views and three custom events make a funnel: home, a product page, add to cart, checkout, order paid. A script drives 50 real browser sessions through the shop, each one following a persona that stops at a known place. You build the funnel in Grafana, read where shoppers drop and how long each step takes, and open the replay of a session that gave up at checkout.
Plan on about 40 minutes, most of it waiting for installs and the first image build. You need Node 24 or newer and Docker Desktop.
⬇ Download the finished files (tiny-shop-funnels.zip)What you build
Section titled “What you build”8 personas
navigation · add_to_cart · order_paid
At the end you read this funnel in Grafana. Click a hatched drop-off to see who stopped there.
- 1Pageis
/100%45 sessions 8 sessions opened the home page and left: the bounce persona, and the out-of-order sessions that opened
/last.2Pagestarts with/products/82.2%37 sessions82.2% of previous step9 sessions looked at a product and did not add it: the browse persona.
3Eventadd_to_cart62.2%28 sessions75.7% of previous step8 sessions added to cart and never opened checkout: the cart persona.
4Pageis/checkout44.4%20 sessions71.4% of previous step- steepest fall
10 sessions reached checkout and did not pay: 6 left the form, 4 had card
...0002declined. You open their replays on the last page.5Eventorder_paid22.2%10 sessions50% of previous step
The pages
Section titled “The pages”- The plain shop: an API and a five-page React shop, no telemetry.
- The stack: collector, Tempo, Loki, rum-api and Grafana, one service at a time.
- Instrument: traces from the API, page steps and event steps from the shop.
- Fifty shoppers: the session generator and the answer it prints.
- Build and read the funnel: the five steps in Grafana, and what each number means.
- Drop-off to replay: the sessions that stopped, their replays, clean-up and fixes.
Already have the files?
Section titled “Already have the files?”The download above is the finished folder. With it you can skip the typing, but not the stack page: rum-api and Grafana are still built from your clone, so set OUO11Y_REPO as it shows. Each page says which terminal and folder a command runs in.