Agent skill · Data & Analytics

frontend-observability

A portable, framework-agnostic field-side observability system for any React or React Native app. Establishes one typed event taxonomy (canonical event-name constants, never inline strings), a best-effort non-blocking provider fan-out so a failing or absent analytics provider can never...

Nick44,086★ · +407/wk · 1 repos on radarProfile →
claude-codecodexcursorMIT
Install
npx skills add sickn33/agentic-awesome-skills --skill frontend-observability --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 20 KB
Bundled scripts: none
Path: skills/frontend-observability/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 44,414 · +328 this week
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Implements a portable observability system for React and React Native apps. It defines a single typed set of event constants, exposes a single entry point track(event, props), and fans out to multiple analytics adapters in a non-blocking, SSR-safe manner. It enforces a consent gate so no telemetry runs before opt-in, and provides a hook-based client-side API via a provider to access track without affecting server components.

How it works

  • Central event taxonomy: events live in a constants/analytics.ts file as ANALYTICS_EVENTS with an AnalyticsEvent union type; events are referenced via ANALYTICS_EVENTS.* and never as string literals.
  • Single entry point: track(event, props) is the unified function; it checks consent (hasConsent()) and then iterates analyticsAdapters, calling each adapter inside a try/catch to prevent a failing provider from breaking others.
  • Adapters: each provider has a tiny function (event, props) => void guarded by SSR-safe checks (e.g., window presence, provider readiness). The registry analyticsAdapters is exported and mutable for testability.
  • Platform support: separate firebase adapters for web and native, loaded via lazy/guarded imports or platform-specific files; the track fan-out remains stable across platforms.
  • SSR-safe provider: AnalyticsProvider exposes a useAnalytics() hook; outside a provider or on server, useAnalytics returns a no-op track function. A TrackedGithubLink component demonstrates using the hook client-side.
  • Real-user vitals: web-vitals integration reports to track with event name 'web_vital' and properties like name, value, rating, id, reusing the same fan-out.
  • Consent and privacy: hasConsent gates all dispatch; track returns early if consent is absent.

When to use it

Use this skill when you need a portable, framework-agnostic field-side observability system for any React or React Native app. It establishes a typed event taxonomy, best-effort non-blocking fan-out, field vitals, and consent gating, serving as a field complement to the frontend-lighthouse lab skill.

What it can touch

  • Adapters: googleAnalyticsAdapter, clarityAdapter, firebaseAdapter, firebase.native adapter, plus others (registry shows multiple entries).
  • Event taxonomy: ANALYTICS_EVENTS constants and AnalyticsEvent union.
  • Web vitals reporting via reportWebVitals which calls track with a web_vital event.
  • Consent and privacy: hasConsent() gating in track and consent.ts.

Caveats

  • The risk is marked as critical. The implementation relies on browser globals and optional providers; SSR-safe guards are required to prevent crashes.
  • No inline strings for event names; must use ANALYTICS_EVENTS.* constants.
  • The system depends on external provider scripts (e.g., GA, Clarity, PostHog) being loaded at runtime; adapters guard for absence and errors to avoid breaking the app.
From the SKILL.md

# Frontend Observability (the field side) ## When to Use Use this skill when you need a portable, framework-agnostic field-side observability system for any React or React Native app. Establishes one typed event taxonomy (canonical event-name constants, never inline strings), a best-effort non-blocking provider fan-out so a failing or absent analytics provider can never... > Portable skill — readable by Claude Code, OpenCode, Codex, Cursor, Windsurf, and others. > This skill describes a **field-side observability system** — event taxonomy, provider fan-out, > real-user vitals, error reporting, consent — not a dashboard or a specific vendor. It is the > **field complement to the frontend-lighthouse skill**: Lighthouse is the _lab_ gate (synthetic, > pre-merge); this is the _field_ (what real users actually experience). It lives in a > `services/analytics/` module per the **frontend-architecture** skill. The goal: you can answer "what are real users doing, and what are they experiencing?" — with a **typed event vocabulary** (no stringly-typed `track("clicked_thing")` scattered everywhere), a fan-out that is **best-effort** (a broken provider never breaks the app), real **Core Web Vit

What's inside
Steps it walks through
  1. When to Use
  2. 0. The five core ideas
  3. 1. Directory layout
  4. 2. The event taxonomy (typed, never inline)
  5. 3. Best-effort, non-blocking fan-out
  6. 3.1 Firebase Analytics — one adapter, two platforms
  7. 4. The provider + hook (SSR-safe entry)
  8. 5. Real-user Core Web Vitals (the lab/field loop)
  9. 6. Consent and privacy gating
  10. 7. Error reporting at boundaries
  11. 8. Provider & framework adapters
  12. 9. Conventions checklist (enforce in review)
  13. 10. How to apply this skill
  14. Publishing / installing this skill
More from agentic-awesome-skills
All skills →
About this skill
What does the frontend-observability skill do?

A portable, framework-agnostic field-side observability system for any React or React Native app. Establishes one typed event taxonomy (canonical event-name constants, never inline strings), a best-effort non-blocking provider fan-out so a failing or absent analytics provider can never...

How do I install it?

Run `npx skills add sickn33/agentic-awesome-skills --skill frontend-observability --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From sickn33/agentic-awesome-skills, a repository with 44,414 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going