Skip to main content
Exemplar

Built on Ring

How Exemplar uses Ring’s platform, with one honest status label on every capability.

The Ring API surface Exemplar uses

One status label on every item, and the code and tests behind it.

Scope. Monitoring needs only read access. The optional Chime action, off by default, is the one call that acts on a device.

Observed on the Ring Developer Playground
Exercised against the Playground’s simulated device in our own runs.
Tested against fixtures or mocks
Covered by signed fixtures or mocked HTTP. Not exercised live.
Built behind a flag, off by default
Implemented and covered by mocks. Switched off unless the flag is set, and not exercised live.

Observed on the Ring Developer Playground

Exercised against the Playground’s simulated device, with the read-only token.

Tested against fixtures or mocks

Paths the Playground cannot drive, covered by signed fixtures and mocked HTTP.

While writing the client, we also used the Ring Appstore docs server from our coding assistant to look up endpoints and error codes. It is a development tool, not part of the app.

Chime: an optional action

Presented separately from the read-only monitoring path.

Event flows

The path each event takes, for the observed route and for the fixture-tested one.

Polling

Observed on the Ring Developer Playground
  1. Simulate in the Ring Developer Playground

  2. Poll event history

    Every 15 seconds, new events only.

  3. Download that event’s video

    Event-scoped, through the pre-signed redirect.

  4. One Claude perception on Amazon Bedrock

    16 frames into typed facts.

  5. Facts cached as a trace

  6. Every deployed rule scored on the cached facts

    No further model call.

  7. Alert with its witness

    The moments and the margin that made the rule true.

Webhooks

Tested against fixtures or mocks
  1. Signed webhook arrives

  2. Verify the signature

    HMAC-SHA256 over the raw body, constant-time compare.

  3. Deduplicate

    On the delivery’s request id.

  4. Forward to the engine

  5. The same pipeline as above

    Download, perceive once, score every rule, alert with witness.

Built on Ring’s ring-api-helloworld sample

The web app started as a fork of Ring’s sample. This is what stayed, what grew and what is new.

apps/web is a fork of AmazonAppDev/ring-api-helloworld (MIT licence, copyright 2026 Amazon), taken at commit 76100aa from 2026-07-01. The sample went into this repository unmodified, in a commit of its own, and its licence file is kept as the licence requires. Everything after that commit is Exemplar’s work. The details are in apps/web/UPSTREAM.md.

The sample was a good starting point: its live-view hook worked on the first try, and its processor registry is a clean extension point. Each change we made is written up as a suggestion in the friction log (entries APP-1 to APP-6).

Kept as it is

Extended

Sample files that grew.

Added

New in Exemplar.

How Exemplar fits with Ring today

Ring’s own features, in Ring’s words, and what a developer-built app on Ring’s platform adds.

In Ring’s words

Ring’s Wired Doorbell 2K support page lists these among its “Features Included”:

  • Single Event Alert (footnote 2)
  • Unusual Event Alert (footnote 2)
  • Video Descriptions (footnote 2)
  • Video Search (footnote 2)
  • Package, person, and vehicle detection (footnote 3)
Footnote 2. “Compatible Ring subscription required. Features not available for customers in Illinois due to state-specific legislation. Unusual Event Alerts, Video Descriptions, and Single Event Alert, and Active Warnings availability limited to mobile devices with select primary languages. Unusual Event Alerts trains off Video Descriptions and may be impacted by the number of events and other device limitations.”
Footnote 3. “Compatible Ring subscription required. Available on select devices. This feature is dependent upon network connectivity and other factors.”

Ring’s article Video Descriptions, Single Event Alert (beta) and Unusual Event Alert (beta) describes three of them:

Video Descriptions
“Provides detailed text of the event which help you quickly scan through your recordings.”
Single Event Alert (beta)
“Reduces notification clutter by combining similar alerts from the same camera.”
Unusual Event Alert (beta)
“Reduces notification fatigue by intelligently filtering alerts, only notifying users of unusual events.”

Requirements and availability, as the article states them

  • “A compatible Ring subscription.”
  • “The primary language is set to English, Spanish, French, Italian, German, Dutch, or Japanese on the mobile device.”
  • “Not available for Ring devices in Illinois due to state legislation”
“Beta features are new or experimental. While you get early access to innovative features, results might vary as we continue making improvements based on user feedback.”

Quoted from Ring’s support pages as retrieved on 2026-10-18. Please see those pages for their current wording.

What Exemplar adds, as a developer-built app on Ring’s platform

  • Rules you teach by example, and can read.

    A customer marks a few clips as “yes, like this” or “no”. Exemplar returns a rule printed in plain English by code, never paraphrased by a model. One it learned from Playground clips:

    “There is a package k such that (k is on the steps or k is on the porch) continuously for at least 15 s.”
    Published in docs/DEVPOST.md, line 54
  • Rules that unfold over time.

    The rule above holds only when the package has been there “for at least 15 s”. The same language expresses a person picking a package up from the steps.

  • A false-alarm level set before deploying.

    You choose the level (10% by default). The firing threshold is set from randomly sampled clips the rule never trained on, so for events like those, the chance of a false alarm is at most the level you chose. docs/DEVPOST.md, line 56.

  • Teaching per camera, for homes and small businesses.

    A rule can be limited to one camera or to hours of the day, so each camera carries its own rules: a front door for a household, a storefront or a loading dock for a small business.

  • Actions you choose.

    When a rule fires, it can raise a notification in the app, call an outbound webhook into a business system, post to Slack, or, behind a flag, play a chime.

Exemplar is an app a customer chooses to connect, using the access Ring grants through its developer platform. It sits alongside Ring’s own alerts and adds rules of the customer’s own, taught by example. Both can run side by side: Ring’s alerts as they are, and Exemplar’s rules for the moments a household or a business has defined for itself.

Designed for the Ring Appstore’s requirements

Design choices we made with the Appstore in mind. They are not a review outcome: shipping through the Ring Appstore is the next step.

Developer feedback

What we logged while building on Ring and AWS, with links.

“the Ring API’s combination of event history, event-scoped media download and WHEP live view is the right primitive for event-based AI apps, and the Playground got us to a real end-to-end loop in the first working session.”
From our product feedback.

51 friction-log entries

Published in docs/DEVPOST.md, line 113

Each entry gives the task, the steps, what we expected and what happened, a severity, the workaround we used and a concrete suggestion. Entries marked live were reproduced against the Ring Developer Playground. The product feedback covers every tool we used: what worked, onboarding, and whether we would build with it again.

A few entries, and what Exemplar does about each

  • PG-2 · Ring Developer Playground

    What we learned. Simulated events arrive as on-demand recordings, listed shortly after they start, with no webhook.

    What Exemplar does. Exemplar polls event history and reads each watched clip itself, instead of relying on an event sub-type.

    Read PG-2

  • RING-6 · Ring API

    What we learned. A video download is a window onto continuous recording, so asking for more than one event’s span runs into the next event.

    What Exemplar does. The client always requests exactly the event’s own start-to-end span.

    Read RING-6

  • RING-5 · Ring API

    What we learned. The pre-signed media link can stay open for tens of seconds while the clip is rendered and watermarked.

    What Exemplar does. The media step has its own long read timeout; ordinary calls keep a short one.

    Read RING-5

  • RING-14 · Ring API

    What we learned. The live-view session URL carries a long query string that is part of the address.

    What Exemplar does. The server proxy forwards it untouched and accepts only live-view session URLs on Ring’s own API.

    Read RING-14

  • BR-1 · Amazon Bedrock

    What we learned. Newer Claude models differ in which request settings they accept, such as temperature, forced tool choice and thinking.

    What Exemplar does. One tested recipe per model, with validate-and-retry on the structured output.

    Read BR-1

  • OT-10 · Conformal calibration

    What we learned. Computing the conformal rank in floating point is off by one for some levels.

    What Exemplar does. Exact rational arithmetic, checked by the simulation listed above.

    Read OT-10