Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
d25adb8
Update: Support building project on currently available machines
JarrodCTaylor Sep 8, 2025
623c9a4
Remove 3rd party mailgun integration
JarrodCTaylor Sep 9, 2025
bfd13f1
Update to 1.12.1
JarrodCTaylor Sep 11, 2025
f62b79f
Clean up landing page
JarrodCTaylor Sep 11, 2025
bbffb6a
Replace google analytics with matomo
JarrodCTaylor Sep 12, 2025
5230e65
Update to 1.12.1 > 1.12.2
JarrodCTaylor Sep 15, 2025
7231c25
Update mongo data
JarrodCTaylor Sep 16, 2025
2d3dd82
Nubank assets
JarrodCTaylor Oct 16, 2025
c816659
Update 1.12.2 > 1.12.3
JarrodCTaylor Oct 30, 2025
bed3f80
Add clojure survey banner
JarrodCTaylor Dec 3, 2025
f00b641
Update 1.12.3 > 1.12.4
JarrodCTaylor Dec 10, 2025
07455bc
Remove survey banner
JarrodCTaylor Jan 5, 2026
7214ad0
Add support for tools.build library
lambduhh Feb 25, 2026
32b8430
refactor tools.build pages to reuse nss/group-vars
lambduhh Feb 25, 2026
3b0bc6a
Revert library-aware refactoring (deferred to #4/#5)
lambduhh Feb 27, 2026
32fad2a
Add tools.build namespace to clojure-namespaces and link guide
lambduhh Feb 27, 2026
e394189
Add dev setup docs (general + VS Code/Calva)
lambduhh Feb 27, 2026
6f48323
Fix official docs link for tools.build.api namespace
lambduhh Feb 27, 2026
bef0396
refactor tools.build namespace description for consistency and useful…
lambduhh Feb 27, 2026
3eef13b
Merge pull request #3 from lambduhh/feature/add-tools-build-api
puredanger Feb 27, 2026
bed7599
Merge pull request #6 from lambduhh/docs/vscode-calva-dev-setup
puredanger Feb 27, 2026
fc3c13a
Add glossary with 21 terms for issue #4 analysis
lambduhh Mar 4, 2026
6717876
Update REPL connection instructions to use Leiningen project type
lambduhh Mar 4, 2026
747b70f
Upgrade nrepl and cider-nrepl to fix middleware errors
lambduhh Mar 4, 2026
018f65e
docs: clarify :library-url dependency chain with improved Mermaid dia…
lambduhh Mar 4, 2026
23eb6fd
Merge pull request #10 from lambduhh/docs/issue-4-glossary
puredanger Mar 4, 2026
85b2866
Remove unused .less files
thiagooak Mar 9, 2026
5d40bd2
Correct gravatar size for Recently Updated
thiagooak Mar 9, 2026
787af8d
Merge pull request #16 from nubank/remove_less
lambduhh Mar 9, 2026
08ecac1
Merge pull request #17 from nubank/gravatar-size
lambduhh Mar 9, 2026
8787583
update deps for cljs and make search sticky and visible on mobile
lambduhh Mar 6, 2026
8c8ec95
feat: make search bar sticky and visible on mobile; update dependenci…
lambduhh Mar 6, 2026
872ffbe
fix .gitignore
lambduhh Mar 6, 2026
1ec8f0b
chore: stop tracking generated app.css
lambduhh Mar 6, 2026
8dea3c2
chore: update ring to 1.15.3 and commons-io to 2.18.0 (CVE-free versi…
lambduhh Mar 6, 2026
ed939c0
fix: move :right 0 inside the map for mobile-push-wrapper
lambduhh Mar 6, 2026
33a9169
revert: ring 1.15.3 → 1.13.0 due to breaking API change
lambduhh Mar 6, 2026
365efcf
chore: update commons-io to 2.21.0 (latest)
lambduhh Mar 6, 2026
0821f0c
fix: remove stray quote from CSS position value
lambduhh Mar 6, 2026
a7d3c72
fix: hide navbar search on landing page to avoid duplication
lambduhh Mar 6, 2026
803a0bc
chore: add .calva/ to gitignore
lambduhh Mar 6, 2026
623618a
fix: use 'q' param in landing page search form to match backend handler
lambduhh Mar 6, 2026
b0936a9
Merge pull request #15 from nubank/feat/12-search-bar-dissapearing
lambduhh Mar 11, 2026
ac722b5
publish research: audit data model coupling accross codebase
lambduhh Mar 11, 2026
35bacee
Merge pull request #19 from nubank/research/4/data-model-coupling
lambduhh Mar 13, 2026
d0ade9d
fix: correct test-paths and replace failing placeholder test
lambduhh Mar 13, 2026
639d9a6
docs: add CHANGELOG.md and release protocol
lambduhh Mar 13, 2026
c10eeff
docs: rewrite to document status quo honestly, flag AI-introduced errors
lambduhh Mar 13, 2026
5ec54b8
docs: correct AI cleanup attribution, update README deploy section
lambduhh Mar 13, 2026
8e5f827
improve placeholder test to be testing something useful
lambduhh Mar 13, 2026
6a4e8e8
Revert "improve placeholder test to be testing something useful"
lambduhh Mar 13, 2026
ba0fb03
docs: log Copilot Autofix revert in AI cleanup section
lambduhh Mar 13, 2026
28d24e7
Merge pull request #20 from nubank/fix/test-infrastructure
puredanger Mar 17, 2026
6a56bfc
Move AI disclaimer to end of document
lambduhh Mar 18, 2026
60318df
remove annoucements requirements
lambduhh Mar 18, 2026
fd98dcf
correct deploy directions and update Dev setup in README.md
lambduhh Mar 18, 2026
f6747ac
update docs to include fix for 502:bad gateway error when deploying (…
lambduhh Mar 18, 2026
457585c
move ai cleanup to end of changelog file
lambduhh Mar 18, 2026
e9327a6
Merge pull request #21 from nubank/docs/changelog-and-release-protocol
lambduhh Mar 18, 2026
4001d8b
Add user behavior investigation issue for ClojureDocs
lambduhh Mar 25, 2026
73852b2
add 2026 vision
lambduhh Mar 27, 2026
f731eae
second draft edit
lambduhh Mar 27, 2026
c582dde
refine further v3
lambduhh Mar 27, 2026
8d92887
weave cross-dialect hub theme into vision
lambduhh Mar 31, 2026
c25fed9
Merge pull request #25 from nubank/docs/2yearvision
puredanger Mar 31, 2026
bfcdc8a
init commit - document context for review and pose plan
lambduhh Apr 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/ISSUE_DRAFT_matomo-analytics-investigation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Investigate Matomo Analytics to Inform Project Strategy and Roadmap

## Summary

Audit and enhance ClojureDocs' Matomo analytics integration to understand how users interact with the site. The data should inform long-term strategy, feature prioritization, and the project roadmap.

## Problem

We currently have minimal analytics coverage. After replacing Google Analytics with Matomo ([CHANGELOG](../CHANGELOG.md)), only basic page view and outbound link tracking were configured. Meanwhile, the client-side search event tracking (`metrics.cljs`) still targets the now-removed Google Analytics (`js/ga`) and all calls to it are commented out. **We are effectively flying blind on user behavior beyond page views.**

## Current State (Code Audit)

| What | Status | Location |
|------|--------|----------|
| Matomo page view tracking | **Active** — `trackPageView` | `src/clj/clojuredocs/pages/common.clj` L17-29 |
| Matomo link tracking | **Active** — `enableLinkTracking` | same |
| Matomo custom events | **Not configured** | — |
| Matomo site search | **Not configured** | — |
| Matomo goals/conversions | **Not configured** | — |
| Matomo custom dimensions | **Not configured** (comment references them) | — |
| Client-side search tracking | **Dead code** — calls `js/ga` which no longer exists | `src/cljs/clojuredocs/metrics.cljs` |
| Search event calls | **Commented out** (`#_`) | `src/cljs/clojuredocs/mods/search.cljs` L286, L339, L369 |
| Matomo instance | Cognitect-hosted cloud (`cognitect.matomo.cloud`, site ID 15) | — |

## Tasks

### Phase 1: Validate Existing Analytics

- [ ] **Confirm Matomo is receiving data** — Log into `cognitect.matomo.cloud` and verify site ID 15 is actively collecting page views. Determine how far back data goes.
- [ ] **Assess access and ownership** — Confirm who has admin access to the Matomo instance. Determine if the Cognitect cloud instance will remain available long-term or if we need to self-host / migrate.
- [ ] **Review built-in reports** — Inventory what Matomo is already telling us out of the box (top pages, referrers, geography, devices, bounce rate, visit duration, etc.)
- [ ] **Identify data gaps** — Compare what Matomo provides by default against the questions we need answered (see "Strategic Questions" below).

### Phase 2: Fix Broken / Dead Tracking Code

- [ ] **Remove or replace `metrics.cljs` GA dead code** — The `ga-event`, `track-search`, and `track-search-choose` functions call `js/ga` which no longer exists. Either rewrite them to use Matomo's `_paq.push()` API or remove the file.
- [ ] **Uncomment or re-implement search tracking** — The `#_` reader-macro'd calls in `search.cljs` (L286, L339, L369) represent valuable search behavior data. Re-implement using Matomo's site search tracking or custom events.

### Phase 3: Expand Tracking Coverage

Based on the strategic questions below, consider adding:

- [ ] **Site Search tracking** — Use Matomo's built-in site search feature (`_paq.push(['trackSiteSearch', keyword, category, resultsCount])`) to capture what users search for, whether they find results, and which results they click.
- [ ] **Contribution flow events** — Track when users add/edit examples, notes, and see-alsos (and where they drop off if they don't complete the flow).
- [ ] **Authentication events** — Track GitHub login initiation vs. completion to understand friction in the auth flow.
- [ ] **Content engagement** — Track scroll depth or time-on-page for var documentation pages vs. namespace listing pages.
- [ ] **Custom dimensions** — Consider tracking: logged-in vs. anonymous, Clojure version context, namespace category.
- [ ] **Goals** — Define conversion goals (e.g., "user contributed an example", "user completed a search and visited a var page").

### Phase 4: Report and Synthesize

- [ ] **Build a baseline dashboard** — Create a Matomo dashboard (or export) with the key metrics that will be monitored over time.
- [ ] **Document findings** — Write up what the data tells us about current usage patterns, and where the biggest opportunities lie.
- [ ] **Feed into roadmap** — Use the data to prioritize roadmap items (e.g., if 40% of searches return no results, improving search is high-impact).

## Strategic Questions Analytics Should Answer

These are the questions that should guide what we track:

1. **What are users looking for?** — Top search queries, no-result queries, search-to-page-view conversion.
2. **Where do users spend time?** — Which namespaces/vars get the most traffic? Are users reading examples, notes, or see-alsos?
3. **How do users arrive?** — Referrer breakdown (search engines, direct, Clojure docs, blogs, Stack Overflow).
4. **What is the contribution funnel?** — How many visitors are logged in? Of those, how many contribute? Where do they drop off?
5. **What content is missing?** — Vars with high traffic but no examples. Search queries with no results.
6. **How is usage trending?** — Is traffic growing, shrinking, or flat? Are there seasonal patterns (conference seasons, release cycles)?
7. **What devices/contexts?** — Desktop vs. mobile split. Does the mobile experience need investment?

## Context

- Matomo replaced Google Analytics (see CHANGELOG)
- The Matomo instance is hosted at `cognitect.matomo.cloud` — ownership/longevity of this instance is an open question
- The current integration is the default Matomo snippet with no customization
- Privacy: Matomo Cloud is GDPR-compliant by default and does not require cookie consent banners in most configurations — worth confirming current settings

## Labels

`analytics`, `investigation`, `roadmap`
Loading