Skip to main content

First-party case study · Built and operated by Kam AI

National Parks Nearby: a place, recorded over time.

Explore a park, open a retained announcement, and compare what changed after you saved a plan.

Product
Free park discovery and recorded timelines
Memory
Shared source history; private plan checkpoints
Kam integration
Pinned Rust state-admission kernel

The problem

A changing source. A plan worth remembering.

A current feed cannot show what a visitor knew when they planned a trip. The application retains observations, corrections and source-check gaps, then connects saved plans to an exact public snapshot.

National Parks Nearby public timeline with dated source records and a selectable month calendar.
Public application capture. No signed-in account, private notes or synthetic incidents are shown.

Follow an observation to a saved checkpoint.

Collection is scheduled once daily. A visitor reads materialized data; a page view does not trigger NPS collection or an AI model.

  1. Observe the source

    Parks collector

    Fetch selected official NPS news feeds. Separate publication time from observation time; retain unsuccessful checks as gaps.

  2. Admit exact references

    Parks adapter · Kam Rust

    Validate records and call the unmodified, hash-pinned evaluateState executable for the proposed catalog and timeline. Admission does not establish source truth.

  3. Publish one generation

    Parks collector · S3

    Stage immutable catalog, timeline and evidence objects. A conditional current-pointer write publishes their references together. Admission alone is not a committed publication.

  4. Read the retained version

    Parks historical reader

    Resolve the exact snapshot and verify its content hash. An unavailable version stays unavailable; the reader does not substitute the latest record.

  5. Compare with a saved plan

    Parks app · optional account API

    Save a small public-snapshot reference with a park or trip. Later compare additions, revisions and records no longer listed. Private notes stay outside public share links.

One kernel. Explicit application ownership.

Kam Rust admission

The embedded executable evaluates bounded references supplied by the adapter. The application checks the returned identity, generation and content fingerprint. It does not certify real-world conditions or perform the S3 publication.

National Parks Nearby

The application owns NPS fetching, record normalization, change detection, the timeline journal, historical readers, source coverage, retention rules and S3 persistence. Its separate account API owns identity, explicit consent, pending saves and conditional DynamoDB commits.

This application uses the embedded Kam kernel, not the hosted Kam History service or AWS AgentCore Runtime. Its local and live application checks do not qualify those separate services.

How timeline references and saved checkpoints are represented

Timeline events reference exact catalog generations. Saved parks and trips retain only a bounded public reference, not a copy of the source dataset. These are application contracts around the kernel, not calls to the hosted History SDK.

Exact retained snapshot reads and saved-plan baselines are implemented in this application. The timeline covers feed titles and summaries, not every change to an official webpage.

History must remain honest when something fails.

A source cannot be checked

Preserve earlier records and disclose the coverage gap. A blank day is not proof that nothing happened.

An exact version is missing

Report unavailable evidence instead of displaying the latest record under an old date.

A saved record changes

Compare the pinned baseline with the later snapshot. A notice leaving the current window is not proof that a closure was resolved.

Application evidence, not a platform benchmark.

Reviewed source and public readback establish the deployed timeline, retained snapshots and content-hash checks. Synthetic multi-generation fixtures exercise correction, tampering and stale-response behavior; they are not inserted into the public feed.

A 365-day publication window is not a year of prior monitoring, permanent retention, or historical park operating status. Account-email simulator acceptance is not proof of delivery to every human inbox. No adoption, latency or uptime benchmark is claimed.

Retention, privacy, and relevance to AgentCore builders

Source-history and personal-state limits are separate. History is bounded; failed or unmonitored periods stay distinguishable from successful checks. Old saved records without a baseline can explicitly start one now.

Guest plans stay in the browser until cloud saving and import are explicitly chosen. Account state is separate from the public dataset. Public sharing excludes private notes and trip identities.

For AgentCore builders, the pattern is reusable without claiming AgentCore runs this app: the application supplies domain meaning, admission checks references, persistence establishes acceptance, and later exact reads support inspection.

Reviewed application implementation: ef26ca25

Kam kernel source: 99bac97f

One application. One workflow.

Evaluate the result you need to inspect.

Bring a correction or retry. Agree the scope, evidence, and success check before starting.