Audit and fix accessibility issues across the portfolio to ensure WCAG 2.1 AA compliance.
The English summary is being prepared. Showing the original description.
Configure and manage Umami analytics tracking for the portfolio.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
The portfolio uses Umami (cloud.umami.is) for privacy-first analytics. This skill covers configuring, customizing, and reviewing Umami tracking.
src/components/ui/Analytics.tsxnext.config.js (script-src, connect-src)umamicloud.umami.is with a 200 statusAnalytics.tsx and CSP headersUmami supports custom events via the umami global:
// Track a CTA click
window.umami?.track('CTA Clicked', { section: 'hero', button: 'resume' });
// Track a project view
window.umami?.track('Project Viewed', { project: slug, type: 'live' });
// Track a blog post read
window.umami?.track('Blog Read', { post: slug, category });
Where to add events:
'CTA Clicked''Project Viewed''Blog Read''Cert Expanded''Contact Submitted'If the Umami script URL or website ID changes:
src/components/ui/Analytics.tsxnext.config.js:
script-src → add the new Umami domainconnect-src → add the new Umami API domain| Metric | Where to find | What to look for |
|---|---|---|
| Page views | Dashboard → Overview | Trends over time |
| Unique visitors | Dashboard → Overview | Growth trajectory |
| Top pages | Pages → Page views | Which sections get traffic |
| Referrers | Referrers → Source | Where visitors come from |
| Events | Events → Custom events | CTA engagement, project views |
| Bounce rate | Dashboard → Overview | < 50% is good |
| Average duration | Dashboard → Overview | > 2min is good |
The Sanity siteSettings document has analytics fields:
analytics.ga4MeasurementId — GA4 ID (not wired up, schema-only)analytics.plausibleDomain — Plausible domain (not wired up, schema-only)analytics.enableVercelAnalytics — Vercel Analytics toggle (not wired up)These are not connected to the frontend. Only Umami is active.
No data in Umami dashboard:
cloud.umami.isAnalytics.tsx matches the Umami dashboardCustom events not showing:
window.umami is defined (add console.log(window.umami))Duplicate page views:
defer attributeNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Audit and fix accessibility issues across the portfolio to ensure WCAG 2.1 AA compliance.
The English summary is being prepared. Showing the original description.
Creates a new blog post document in the Sanity studio. Use when the user wants to write a blog post, publish an article, or schedule a future post.
The English summary is being prepared. Showing the original description.
Creates a new certification document in the Sanity studio. Use when the user wants to add a credential, certificate, or professional accreditation to the Certifications collection.
The English summary is being prepared. Showing the original description.
Adds a new skill MD file to the studio's skills collection. Use when the user wants to author a new step-by-step recipe for the studio's in-app Skills tool or the .agents mirror.
The English summary is being prepared. Showing the original description.
Creates a new project document in the Sanity studio. Use when the user wants to add a new portfolio project, a case study, or a work sample to the Projects collection.
The English summary is being prepared. Showing the original description.
Creates a new experience document in the Sanity studio. Use when the user wants to add a job, role, internship, or work history entry to the Experience collection.
The English summary is being prepared. Showing the original description.