Skip to content

Living designs: a menu board or price board that updates itself on any screen

Updated 2026-09-04

Most designs are made, exported and forgotten. A living design keeps working: the same menu board shows today’s prices, a window poster counts down to the sale, a price tag changes when the spreadsheet does, a status board shows what an app sent it a minute ago. Canva has nothing like it; Studio does it with three pieces that fit together.

A shared design has a live image URL — a PNG that re-renders with the latest data every time it is fetched. Text can hold placeholders such as {{price}} or {{time.countdown:2026-12-24T18:00}} that are filled in at that moment. And “Show on a screen” opens the design full screen on any TV, tablet or phone browser, cycling pages and refreshing itself.

How to do it

  1. Share the design

    Open Share in the top bar and choose “Show on a screen…”. Studio saves and shares the design (if it wasn’t already) and opens the share card with a link of the form ridvay.com/screen/<id>, a QR code, and the live image URL ridvay.com/img/<id>.png.

  2. Put it on the screen

    Open the screen link in the TV’s browser, or scan the QR code with a tablet or phone and tap once for full screen. The page shows the design edge to edge, cycles through the pages using each page’s duration (or every 8 seconds), keeps the screen awake, and re-fetches the image at least every minute — or as often as your data sources say.

  3. Make text live with placeholders

    Click “Living design” in the top bar. Declare a variable such as price with a default, then insert {{price}} into any text with the Insert buttons. Dates and countdowns need no setup: “Today’s date” and “Countdown to…” insert {{time.now}} and {{time.countdown:…}} tokens that always resolve. Turn on the live preview to see the values on the canvas.

  4. Feed it from a Google Sheet

    In Google Sheets choose File → Share → Publish to web, pick CSV, and copy the link. In the Living design panel add it as a data source named, say, menu. With a header row of item,price you can write {{menu.Latte}} for the price next to “Latte”, {{menu.0.item}} for the first row, or {{menu.count}} for the number of rows. The sheet is re-read within five minutes of a change (set the refresh on the source).

  5. Or push values from anywhere

    Any system that can make an HTTP call can update a declared variable: PUT https://api.ridvay.com/v1/Designs/<id>/values with a JSON body such as {"price":"4.50"} and your API key or sign-in token. The screen, the live image and shared views pick it up within a minute. Send null to fall back to the default.

  6. Use the image anywhere

    Paste the live image URL into a website, an email signature, a Notion page or a Slack channel and it always shows the current state. Add ?price=4.50 or any declared variable to the URL for a one-off variant, and ?page=1&w=1600 to pick a page and size.

Tips

  • Keep values short and predictable: prices, counts, names, times. Long text is capped at 200 characters and control characters are stripped for safety.
  • For a multi-page board, give each page a duration in Animate and the screen page uses it; the pages simply cycle.
  • Refreshes are cached for a minute per design, so a screen and a website showing the same design cost one render, not two.
  • A screen mode URL is public only if the design is shared; unshare the design and the screen goes blank rather than leaking.

Frequently asked questions

What do I need on the TV?
Any browser — a smart TV, a Chromecast or Fire TV with a browser, a Raspberry Pi in kiosk mode, an old tablet on a stand. The screen page is plain HTML with one image, so even weak TV browsers handle it.
How fast do changes show up?
Within about a minute. Renders are cached for 60 seconds per design and the screen re-fetches on that rhythm; data sources are re-read on their own refresh interval, five minutes by default.
Can I use it for print too?
Yes. Placeholders resolve in every render, so the print-ready PDF and any export show the current values at the moment you export — a price list you export weekly from the same sheet.
What can a data source be?
A published Google Sheet (CSV), any CSV file on a public https URL, or any public https endpoint that returns JSON. Sources are fetched with a short timeout, size limits and safety checks, and a fallback text can be set per value for when a source is down.
Is my data public?
Only what appears in the rendered image of a shared design is public, exactly like the design itself. The source URL and your API key are never exposed on the screen page or in the image.

Try it on your own design

Free to start, nothing to install.

Open Ridvay Studio

Related guides