Cookie Policy

What cookies we use, why, and for how long.

Modular House uses a small number of first-party cookies, plus the cookies our admin panel needs to keep signed-in administrators authenticated and remember their preferences. We do not use cookies for third-party advertising or behavioural profiling. The table below is the complete, authoritative list of every cookie we set — it is generated directly from our codebase, so it always reflects exactly what the site does.

When you first visit, the cookie banner offers two choices: Accept All, which allows both the strictly necessary cookies and the optional performance cookies we use to measure how visitors use our site, or Necessary Cookies Only, which keeps just the strictly necessary cookies and sets no performance cookies at all. Closing the banner without choosing keeps only necessary cookies for the rest of that browsing session and asks again next time.

You can change your mind at any time with the control below. Doing so clears your stored choice and re-shows the banner immediately. Note that this stops future tracking only — a performance cookie or analytics script already loaded earlier in this session cannot be retroactively removed.

CookiePurposeCategoryDurationSet by
mh_vidIdentifies a returning visitor across page views, so anonymous traffic measurement can distinguish new from returning visitors. Contains only a random identifier — no personal data.performance365 daysModular House
mh_sidGroups a visitor's page views into a single browsing session for anonymous traffic measurement. Contains only a random identifier — no personal data.performance30 minutes (rolling — renewed on each measured page view)Modular House
mh_cookie_ackRecords the visitor's cookie choice ("Accept All" or "Necessary Cookies Only"), so the banner does not reappear and performance cookies are set only when accepted.strictly-necessary365 daysModular House
mh_cookie_dismissedTemporarily hides the cookie notice for the remainder of the current browsing session after it is closed without a choice; does not record a lasting preference.strictly-necessarySession (until the browser is closed)Modular House
refreshTokenKeeps a signed-in administrator authenticated between visits by carrying a session refresh token. httpOnly — never readable by page scripts.strictly-necessary7 daysModular House
admin_theme_modeRemembers a signed-in administrator's light/dark theme preference for the admin panel.functional30 daysModular House
admin_sidebar_collapsedRemembers whether a signed-in administrator has collapsed or expanded the admin panel's sidebar.functional30 daysModular House
sidebar_stateLegacy mirror of the admin panel sidebar's collapsed/expanded state, inherited from the underlying sidebar component library.functional7 daysModular House
_gaGoogle Analytics — distinguishes unique visitors for site-usage measurement.performance2 years (renewed per visit; browsers may cap the effective lifetime at ~400 days)Google Analytics
_ga_<container-id>Google Analytics — persists session state for this site's GA4 property.performance2 years (renewed per visit; browsers may cap the effective lifetime at ~400 days)Google Analytics