The example apps
All 26 bundled apps with profile and special feature, and the three references clock (widget only), weather (fetcher), pharmacies-on-duty (resources and job).
7 minute readApps SDKUpdated: 10/25/2026
On this page
Before you start
- For
- Developers who look for the most similar app for a project or want to know which app carries which building block.
- Prerequisite
- none. The user’s view of each app is in the handbook.
The bundled apps are the real consumers of the contract described in this area. The first table sorts each app by profile, backend building blocks, resources, and signature. The second lists category, class, and the group of terms. Three apps are the references that a new app takes its cue from.
Three profiles, three references
| Profile | What is added | Reference | Pages |
|---|---|---|---|
| Widget only | A widget with noResolver: true, runtime and authoring bundles, no backend, no resources, no app database. |
clock — the smallest complete app: one manifest, one widget, two bundles. |
Widget, configuration, and preview |
| Plus fetcher | A backend with @WidgetResolver and @Fetcher against an external source, no app database. |
weather — the city lives in the widget configuration, and the fetcher loads current conditions and forecast into the cache. |
Backend: resolvers, fetchers, and jobs |
| Plus resources and database | Resource types that the organization maintains in the portal, a schema of its own apps_<id>, and a @JobHandler if needed. |
pharmacies-on-duty — uses every building block of the SDK: resolver, fetcher, a job every 30 minutes, two resources, legal, signing: 'required'. |
The manifest, Data access, permissions, and terms |
The levels are not strictly cumulative: menu-board has resources and a schema of its own but fetches nothing from the network. “External source” and “own data” are two independent building blocks. pharmacies-on-duty is the one app that has both. A new app clones the structure of the most similar reference.
All apps
The five brand apps bbc, bild, ndr, spiegel, and deutschlandfunk inherit the widget, backend, and presentation from tagesschau. They carry only a manifest of their own and their identity (identifier, label, accent color, theme, font). The gate apps onedrive and video-wall bring no widget.
| App | Widget | Profile | Backend building blocks | Resources / database | Signature | Special feature |
|---|---|---|---|---|---|---|
clock (“Clock”) |
clock |
widget only | — | — | optional |
Reference for the “widget only” profile. The time zone can be overridden per instance. |
webpage (“Web page”) |
iframe |
widget only | — | — | optional |
The only app that retrieves an external address without a backend: the player loads the page itself. |
notice-board (“Notice board”) |
rich-text |
widget only | — | — | optional |
Safe authoring markup: a Markdown subset becomes a typed block model, never HTML text. |
countdown (“Countdown”) |
countdown |
widget only | — | — | optional |
Counts down to a target time. The target, units, and expired text are set in the configuration. |
countup (“Day Counter”) |
countup |
widget only | — | — | optional |
Counts up since an event and highlights milestones. |
world-clock (“World Clock”) |
world-clock |
widget only | — | — | optional |
Several time zones side by side as a list of equal-ranking tiles. |
word-clock (“Word Clock”) |
word-clock |
widget only | — | — | optional |
Time as a sentence instead of a number, grid display with language selection. |
ticker (“Scrolling Text”) |
ticker |
widget only | — | — | optional |
The only app with continuous motion. On frozen surfaces it shows a still image of the first item. |
qr-code (“QR Code”) |
qr-code |
widget only | — | — | optional |
Generates the QR matrix in the bundle (address, Wi-Fi, vCard, free text). |
youtube (“YouTube”) |
youtube |
widget only | — | — | optional |
Embeds videos without a tracking cookie before playback. |
stream (“Live stream”) |
stream |
widget only | — | — | optional |
Ships an HLS player in the bundle so that browsers without native HLS playback can stream as well. |
embed (“Embed”) |
embed |
widget only | — | — | optional |
Renders an HTML fragment in an isolated frame without access to the player page. |
menu-board (“Menu board”) |
menu-board |
plus resources and database | @WidgetResolver |
1 resource (cards), schema apps_menu_board |
optional |
Menu cards as a resource of the organization, and the board picks one card. The snapshot’s validity ends at the next switch (5 a.m., cut-off date, time window of a category). |
weather (“Weather”) |
weather |
plus fetcher | @WidgetResolver, @Fetcher |
— | optional |
Reference for the fetcher profile. Two weather providers, the second as a fallback source. |
rss (“RSS feed”) |
rss |
plus fetcher | @WidgetResolver, @Fetcher |
— | optional |
Free-form feed address from the configuration. The fetch runs through APP_GUARDED_FETCH, as with calendar and tagesschau. |
tagesschau (“Tagesschau”) |
tagesschau |
plus fetcher | @WidgetResolver, @Fetcher |
— | optional |
Curated sources instead of a free-form address. Basis of the five brand apps. |
calendar (“Calendar”) |
calendar |
plus fetcher | @WidgetResolver, @Fetcher |
1 resource (calendars) in the file storage of the app |
optional |
A custom ICS reader for calendar subscriptions. It documents the limits of its recurrence rules. |
bbc, bild, ndr, spiegel, deutschlandfunk |
each of the same name | plus fetcher (inherited) | inherited from tagesschau |
— | optional |
Brand apps: own manifest and own look and feel, no presentation or backend code of their own. |
pharmacies-on-duty (“Pharmacies on duty”) |
pharmacies-on-duty-display |
plus resources and database | @WidgetResolver, @Fetcher, @JobHandler (*/30 * * * *) |
2 resources (locations, schedules), schema apps_pharmacies_on_duty |
required |
The most extensive app and the reference for full-data apps. vertical: 'pharmacy'. The only app with signing: 'required'. |
opening-hours (“Opening hours”) |
opening-hours |
resolver without fetcher | @WidgetResolver |
— | optional |
Reads the opening hours at the location (player-location, location-hours) and computes the state in the display software. Reference for per-shape templates, following the weather app. |
onedrive (“OneDrive”) |
— | gate app | — | — | optional |
unlocks: ['library-places'], connects: ['microsoft-graph']. No runtime bundle and no authoring bundle. |
video-wall (“Video wall”) |
— | gate app | — | — | optional |
unlocks: ['video-walls']. The feature lives in the platform, and the app is its key. |
Only the twelve apps with a backend (the seven with a backend of their own and the five brand apps) run through the app loader at startup. It does not know the twelve widget apps and the two gate apps. No app is startup-critical: if one fails to load, the platform logs it and starts without it.
Category, class, and terms
category is the platform’s single ordering axis: it determines the filter in the store and the section of the apps in the scene editor’s palette. tier is the class: standard carries no badge in the store, pro carries the Pro badge, and addon carries the Add-on badge and is booked as an add-on. How an app draws its content within its frame is decided by a configuration field, for example four layout values for pharmacies-on-duty and three composition values for clock.
| App | category |
tier |
legal group |
|---|---|---|---|
clock |
zeit |
standard |
— |
countdown |
zeit |
standard |
— |
countup |
zeit |
standard |
— |
world-clock |
zeit |
standard |
— |
word-clock |
zeit |
standard |
— |
weather |
information |
standard |
wetter |
rss |
information |
pro |
nachrichten |
tagesschau |
information |
pro |
nachrichten |
bbc, bild, ndr, spiegel, deutschlandfunk |
information |
pro |
nachrichten |
calendar |
information |
pro |
verbindungen |
webpage |
web-video |
standard |
fremdinhalte |
youtube |
web-video |
standard |
fremdinhalte |
stream |
web-video |
standard |
fremdinhalte |
embed |
web-video |
standard |
fremdinhalte |
notice-board |
gestaltung |
pro |
eigene-inhalte |
ticker |
gestaltung |
standard |
eigene-inhalte |
qr-code |
gestaltung |
standard |
eigene-inhalte |
pharmacies-on-duty |
geschaeft |
pro |
notdienst |
opening-hours |
geschaeft |
pro |
oeffnungszeiten |
menu-board |
geschaeft |
pro |
eigene-inhalte |
onedrive |
geschaeft |
standard |
verbindungen |
video-wall |
geschaeft |
addon |
— |
Apps without a tier in the manifest carry the default standard. What the preview variants of an app do in the store is covered under Widget, configuration, and preview.
What is not covered here
Text, image, video, shape, graphic, and document are not apps but core widgets: they have the reserved identifier core, do not appear in the store, need no installation, and go through neither release nor signing. Anyone who builds a widget that gets by without a data source, without permissions, and without a product promise of its own is probably building a basic building block and not an app.
The user’s view of each app (what it shows, how it is set up, which terms it brings) is in the handbook: Apps in the handbook.
Related
- Widget, configuration, and preview — formats, preview variants, and preview states using the clock example.
- Backend: resolvers, fetchers, and jobs — the building blocks of the fetcher and data apps.
- Apps in the handbook — the organization’s view of each app.