Skip to content

Add privacy-first Umami usage analytics - #3

Merged
kastnerp merged 2 commits into
devfrom
claude/umami-analytics-integration
Sep 12, 2026
Merged

kastnerp merged 2 commits into
devfrom
claude/umami-analytics-integration

Conversation

@kastnerp

Copy link
Copy Markdown
Member

Summary

  • Ports Eddy3D's Umami analytics scheme (Analytics/AnalyticsBudget/Identity/TabUsage) to a self-hosted instance shared across Eddy3D-Dev products, one "website" per product.
  • Tracks the daily /startup hit and which ribbon tab is used (/tab/<slug>), once per machine per UTC day.
  • Tracks a successful Massing Generator run as /tab/massing/generate, same daily dedup.
  • Hard-capped at 200 billed events/machine/month (AnalyticsBudget.MonthlyEventCap).
  • Opt out with MYCELIUM_ANALYTICS=0 before starting Rhino.

Test plan

  • dotnet build src/Mycelium/Mycelium.csproj — succeeds, 0 errors/warnings
  • Load in Rhino/Grasshopper and confirm a /startup + /tab/massing hit lands on the Umami dashboard for website 7cdd143e-2b40-4832-804f-07aaac80c238

🤖 Generated with Claude Code

kastnerp and others added 2 commits September 10, 2026 23:25
Ports Eddy3D's budgeted, daily-deduped Umami scheme: reports which
ribbon tab is used (once per machine per day) and when Massing
Generator actually produces output, capped at 200 billed
events/machine/month. Opt out with MYCELIUM_ANALYTICS=0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The cap protected Umami Cloud's 100k-events/month free tier; the
self-hosted instance has no such billing ceiling. Daily dedup
(TryClaimDaily) is unaffected — it's what keeps Views a count of
machine-days, unrelated to billing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@kastnerp
kastnerp merged commit 50d0137 into dev Sep 12, 2026
4 checks passed
@kastnerp
kastnerp deleted the claude/umami-analytics-integration branch September 12, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant