Skip to main content

Plan limits and monitoring

Both Flexweg and Firebase have plan limits. Stay under them or pay; either way, monitor them so you don't get surprised mid-publish.

Flexweg limits

Flexweg's pricing tiers control:

  • Storage — total bytes across all files in your site
  • Bandwidth — bytes served per month (CDN egress)
  • API requests — calls to the Files API per month

The exact numbers depend on your Flexweg plan. Check your Flexweg dashboard for current quotas.

Where storage gets used

A typical Flexweg CMS site's storage breakdown:

CategoryPer itemQuick math (1 000 posts)
HTML pages5-50 KB10-50 MB
Images50-500 KB per variant500 MB - 5 GB (varies wildly)
CSS / JS theme assets10-50 KBOne-time cost
Sitemaps + RSS + search index10 KB - 5 MBOne-time cost
menu.json + posts.json5-20 KBOne-time cost
media/ originals (none — discarded)

Images dominate. A site with 1 000 posts each having one hero image (at 4 variants per image) is ~2-5 GB. Plan accordingly.

Where bandwidth gets used

Public visitors hitting your site download:

  • HTML pages (per page view)
  • CSS + theme JS (per session, after first visit cached)
  • Images displayed on viewed pages
  • Search index (when a visitor opens the search modal)

Most sites' bandwidth pattern is dominated by images on high-traffic pages. CDN cache hits on Flexweg's edge reduce repeated bandwidth — first visit pays full size, subsequent visits hit the cache.

Where API requests get used

Admin actions:

  • Each Publish — 1 upload + N cascade uploads (home, category archives, sitemaps, RSS, search index, …) — typically 5-20 API calls per publish
  • Each Theme switch — N uploads for theme assets + (N posts × cascade) uploads if you regenerate
  • Each Image upload — 1 upload per variant (4-6 per image)
  • Each Sync theme assets — 1 upload per CSS / JS file × number of themes
  • Each getStorageLimits check — 1 API call

A site doing ~10 publishes per day burns ~150 API calls per day; ~5 000/month. Within most plans' free quotas.

Firebase limits

Firestore + Firebase Auth have their own quotas:

Firestore reads / writes

Free tier ("Spark"): 50 000 reads + 20 000 writes per day. Beyond that, Blaze (pay-as-you-go) at fractions of a cent per operation.

A typical Flexweg CMS site uses:

  • Reads on admin load — ~30-100 docs (settings, recent posts, terms)
  • Reads on each list-view scroll — 0 (in global mode, all in memory) or 20 docs per page (in paginated mode)
  • Writes on each publish — 1 (the post) + some cascade writes (e.g. lastPublishedHash updates)

Most single-admin sites stay under the free tier. Multi-admin or content-heavy sites should switch to Blaze.

Firestore storage

Free tier: 1 GB. Most CMS sites use much less (50-500 MB even for 5 000+ posts, since posts store Markdown not images).

Firebase Auth users

Free tier: 50 000 MAU (monthly active users). For a CMS, MAU is just the admin team — usually 1-10. Negligible.

Monitoring

Flexweg storage card

The flexweg-metrics MU plugin contributes a Storage card to the admin dashboard:

  • Bar showing used / plan limit in MB
  • Progress turns amber at 70%, red at 90%
  • Upgrade button appears at ≥ 80%, links to your Flexweg billing page
  • Refresh button for manual re-check

Always-visible. The first thing you see on dashboard load.

Firestore document count card

Same plugin's Firestore card shows document counts per collection:

  • Posts (online vs draft)
  • Pages
  • Terms
  • Media
  • Users

Useful for spotting runaway growth (e.g. a stale media library, accumulated drafts).

Firebase Console

For deeper analysis:

  • Firestore → Usage tab — daily reads / writes / storage trend
  • Authentication → Users — actual user count, MFA status

Flexweg dashboard

Your Flexweg dashboard's monitoring tab — bandwidth, API requests, storage, all per-day.

When you hit a limit

Flexweg storage full

  • Symptom: 413 errors mid-publish; partial state on the public site
  • Recovery: upgrade your Flexweg plan (most pragmatic) OR delete unused media

Firestore read quota exceeded

  • Symptom: admin shows generic Firestore errors; live subscriptions stall
  • Recovery: switch to Blaze (most pragmatic; usually < $5/month for moderate sites) OR rate-limit admin operations

Firestore write quota exceeded

  • Symptom: post saves fail with Firestore errors
  • Recovery: same as reads — Blaze.

Firestore storage full

  • Symptom: writes fail with RESOURCE_EXHAUSTED
  • Recovery: clean up old data OR upgrade. Posts + terms are tiny; media metadata is small. Most sites won't hit this.

Cleanup tips

Delete drafts you'll never publish

The PostsListPage's filter lets you find every draft. Bulk-delete obsolete ones.

Delete unused media

The Media library's filter for "unused" finds media with no incoming references. Bulk-delete safely.

Check previousPublishedPaths

Posts whose deletion failed on a previous publish accumulate paths in previousPublishedPaths. Most clean up automatically on the next publish; persistent failures might indicate a Flexweg or rules issue.

Sitemap files for empty years

The flexweg-sitemaps plugin auto-deletes empty year files. If you see leftover ones (e.g. sitemap-2018.xml for a year with no online posts), run Themes → Regenerate site → Sitemaps to clean up.

Continue