Track pageviews, sessions, geography, devices, and referrers for a deployed project. Brimble’s built-in analytics work without a third-party tracker, you enable them in the dashboard, drop a snippet on your site, and traffic shows up.Documentation Index
Fetch the complete documentation index at: https://paper.brimble.io/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- A web-service or static-site project.
- A plan that includes web analytics. The free plan has limited or no access; paid plans surface the full dashboard.
Enable analytics
- Open the project.
- Click the Web analytics tab.
- Click Enable analytics. Brimble generates a website ID for the project.
- Brimble shows a tracking snippet. Copy it.
- Client-side, a small
<script>you drop into your site’s HTML head. Works for any frontend, including static sites. - Server-side, a server-rendered include for frameworks that mount the page on the server (Next.js server components, Remix loaders, Rails views, etc.).

Drop in the snippet
For most stacks, the simplest path is the client-side snippet. Paste it into your site’s<head>:
- Next.js, add the snippet to
_app.tsx(Pages router) orapp/layout.tsx(App router). - Vite / React / Vue, add to
index.html. - Astro / Hugo / static, add to your layout template.
- Rails / Django / Phoenix, add to your application layout.
What’s tracked
| Metric | Description |
|---|---|
| Pageviews | Each page load counts as one pageview. SPA navigations are tracked via the History API. |
| Sessions | A burst of activity from one visitor. A session ends after 30 minutes of inactivity. |
| Visitors | Unique pseudonymous IDs. Brimble doesn’t fingerprint or set persistent cookies, visitors are estimated. |
| Top pages | URLs sorted by pageview count. |
| Top referrers | Where visitors came from (other domains, social platforms, search engines). |
| Geography | Country and (where available) city, derived from IP. |
| Devices | Desktop, tablet, mobile, TV. |
| Browsers | Chrome, Safari, Firefox, etc. |
| Traffic heatmap | Visit volume by day-of-week and time-of-day. |
| Visitor map | World map heatmap of visitor origin. |


Time range
The dashboard’s range picker covers:- Last 7 days (default)
- Last 30 days
- Custom range
Disable or remove the website
To stop tracking a project:- Go to Web analytics.
- Click ⋯ → Disable.
Multiple sites in one project
Each Brimble project gets one website ID. If you serve multiple sites from one project (sub-paths or subdomains routed to different parts of the same service), pageviews are attributed to the host the request came in on, the dashboard groups them under “Top pages” with the full path.Verification
After deploying with the snippet in place:- Open your site in a browser.
- Reload a couple of times, click around.
- Wait 30–60 seconds.
- In the Brimble Web analytics tab, Pageviews should reflect your activity.
analytics.brimble.io are going through (no 404, no CORS error, no ad-blocker rule).
Custom events
The default snippet tracks pageviews. For event tracking (button clicks, form submits, conversions), call the SDK’strack() method:
Troubleshooting
Snippet loaded but no data. Open your browser’s Network tab and confirm requests toanalytics.brimble.io are going through (no 404, no CORS error, no extension blocking the request). If those requests are firing and the dashboard is still empty, contact support with the website ID.
SPA route changes don’t count. The snippet listens for History API events (pushState, replaceState). If your router uses fragment-only navigation (#/route) or replaces the page DOM without pushing state, it won’t tick. Switch your router to History API mode, or call the SDK’s manual track method.
Numbers don’t match server-side request logs. Expected. Server logs include bots, prefetches, and direct API hits the analytics dashboard filters out. The two views answer different questions.
Next steps
- Logs, runtime logs and request logs are separate from web analytics.
- Custom domains, analytics work the same on default and custom domains.