Modulify

Visitor analytics

Read who visits your published site, where they came from, and what they looked at.

On this page

Every project has an Analytics tab in the editor. It counts real visits to your published site, it is on by default, and it costs nothing on any plan. The tracking is cookieless, so your site needs no consent banner for it anywhere in the world.

Where to find it

Open a project and click the chart icon in the tab strip at the top of the editor. It sits between CMS and Storage, and its tooltip reads Analytics. The address is /dashboard/projects/<project>/analytics.

The tab has two sub-tabs: Data for the numbers and Settings for the collection toggle, the export and the reset.

Do not confuse this tab with the Analytics sub-tab inside Storage. That one reports CDN file usage, not visitors.

What is counted

Only the published site. The preview is not a public address and nothing there is measured. Until your first publish, a banner reads "This site needs publishing before analytics can start collecting visitors." and every card is empty.

Collection is wired into the site when it is built, so a change to the toggle only reaches visitors on your next publish. That means there are four states the banner can describe:

State What the banner says
Never published This site needs publishing before analytics can start collecting visitors.
Collection off, published site still carries the script Collection is off, but your published site keeps collecting until you publish again.
Collection off and no longer on the published site No new visitors are being collected while analytics collection is off.
Collection on but not yet shipped This site needs republishing before analytics can start collecting visitors.

When none of those apply, no banner appears.

The live counter

Next to the period picker sits a green dot and a count, reading for example 12 online. That is the number of people active on the published site in the last five minutes. It is independent of the period you picked, and the whole panel refreshes every five seconds once the site has been published at least once.

The six metrics

Six stat cards run across the top. Each one is a button: click it and the chart below re-plots to that metric. Unique visitors is selected by default.

Card What it counts
Unique visitors Distinct people in the selected period
Total visits Sessions, so one person returning later counts twice
Total pageviews Every page load, including repeat views in one visit
Views / visit Pageviews divided by visits, shown to two decimals
Bounce rate Percentage of visits that left after a single page, shown as a whole number
Visit duration Average time on the site, formatted as 2m 14s

If a request fails, the cards show a dash and the chart offers a Try again button under "Could not load analytics". Your visits keep being counted while that is on screen.

Time ranges

The period picker sits in the top right. Today is the default.

The presets are Today, Last week, Last month, Month to date, Last 6 months, Last year and All time. Below the presets is a two-click calendar: pick a start and an end date, then press Apply for a custom range. Whenever you are on anything other than Today, an X button appears next to the picker to reset back to it.

The chosen period lives in the page address, so an analytics view is a link you can send to a teammate or bookmark.

Chart granularity

The chart header reads <metric> over time, and a second picker to its right sets the bucket size. Which sizes are offered depends on the range, and the picker is hidden when there is only one sensible option.

Range Granularity options
Today Hours
Last week, Last month, Month to date Hours, Days
Last 6 months, Last year Days, Months
All time Months
Custom, up to 1 day Hours
Custom, up to 31 days Hours, Days
Custom, up to 92 days Days
Custom, up to 366 days Days, Months
Custom, longer Months

The chart is a filled area chart. Hover any point for a small tooltip with the bucket label and the value in that metric's own units. The bucket that is still in progress is drawn as a dashed line, so a half-finished hour or month never looks like a real drop. Times are shown in your own timezone.

When the range holds no traffic yet, the chart is replaced by an empty state reading "No visits" with the line "Trends appear here once traffic starts arriving."

Breakdowns

Six cards sit under the chart, each listing the top eight rows for the selected period, ranked by unique visitors. A pale bar behind each row shows its share of the top row.

  • Top pages, by path on your site
  • Top sources, where the visit came from, with the referrer's favicon
  • Countries, with the country flag and full country name
  • Browsers
  • Operating systems, with the platform logo
  • Devices, split into desktop, mobile and tablet

A row with no recorded value shows as (none). A card with nothing in it yet reads "No data yet".

Settings

The Settings sub-tab holds three sections.

Collection

One switch, Collect visitor analytics, described as injecting the privacy-friendly tracking script on your published site. Turning it off writes the change immediately, but the live site keeps collecting until you publish again. Existing data is always kept.

Export

Export .csv downloads all-time stats for every page, source, country, browser, operating system and device, with a visitors and a pageviews column per row. The file is named after your project slug, for example my-site-analytics.csv.

This one is paid only. On a free workspace the button is disabled and its tooltip reads "Exporting your analytics requires a paid plan."

Danger zone

Clear data permanently resets every visitor stat for the site back to zero. Tracking keeps working for new visits. A confirmation asks "Clear analytics data?" before anything happens, and the action button reads Clear data.

Clearing needs project delete permission in the workspace. Members without it see the button disabled.

Asking the AI about your traffic

You can ask about traffic in chat rather than reading the tab. The AI can pull totals for any of the six metrics, a ranked breakdown by page, source, country, browser, operating system or device, a custom date range, or the live count. It cannot flip the collection toggle, export the CSV or clear the data. Those three are yours.

From an AI client over MCP

get_site_analytics returns the headline numbers, get_site_realtime_visitors the live count, and check_analytics_installation whether the script is in place. query_site_analytics answers anything else: top pages, sources, countries, browsers, operating systems, devices, or a series over time. All four need analytics:read, which is ticked by default.

set_analytics_enabled turns collection on and off, and clear_site_analytics erases the whole history. See MCP tools.

Next