Skip to content

Services & Costs — Platform Overview

Executive Overview — decision-maker summaries · Environment Inventory — all config keys

Audience: Management, finance, compliance, IT.
Last reviewed: August 2026 · Prices are indicative (USD list prices ≈ EUR at current rates; verify in each vendor dashboard).


Monthly cost summary

CategoryServicesEst. fixed/monthVariable
Hosting (production)Render (frontend, backend, Postgres, docs)~€90–127
Hosting (staging)Render staging stack~€25–47
Storage & CDNCloudflare R2 + DNS~€0–5R2 egress/storage
EmailResend€0–20Volume above free tier
AI inferenceAnthropic API and/or OpenRouter€0–200+Token usage
AuthMicrosoft Entra ID (Azure AD)€0*Included in M365 if licensed
Source controlGitHub (MQA-Group)€0–16Team plan if branch protection needed
DomainsHostinger / registrar (mqa.group)~€1–3Annual fee ÷ 12
Monitoring (recommended)Better Stack / UptimeRobot + Sentry€0–20Paid tiers optional
KYC (optional)OpenSanctions API€0–50Depends on plan/volume

Typical production run (no staging, moderate AI): ~€100–160/month fixed + AI/email variable.

Full stack (prod + staging + monitoring + GitHub Team): ~€160–240/month fixed + AI/email variable.

Live vs. blueprint (Aug 2026): Render dashboard shows mqa-docs still as free static site. Blueprint/render.yaml targets Starter (~$7/mo) for HTTP Basic Auth via DOCS_PASSWORD — add ~€7/mo prod (+ ~€7 staging) after that deploy.


Service inventory

Hosting — Render (Frankfurt, EU)

ServicePlanRoleEst. cost
mqa-frontendStarterReact SPA~$7/mo (~€7)
mqa-backendStandardNode/Docker API~$25/mo (~€25)
mqa-postgresPro 4 GBPostgreSQL 18, HA, PITR~$55–85/mo (~€50–80)
mqa-docsStarter (blueprint) · Static (live until deploy)VitePress + Basic Auth (docs.mqa.group)$0 live · ~$7/mo after Node deploy
Production subtotal~€90–127
Staging servicePlanEst. cost
mqa-frontend-stagingStarter~€7
mqa-backend-stagingStarter~€7
mqa-postgres-stagingBasic 1 GB~€15–20
mqa-docs-stagingStarter (blueprint) · Static (live)Docs preview from develop
Staging subtotal

Details: OPS-ECOSYSTEM · STAGING-STATUS


Storage & DNS — Cloudflare

ProductUsageEst. cost
R2 (mqa-media)Media Hub, backups (planned)Free tier: 10 GB storage; then ~$0.015/GB-month
DNS (mqa.group)Hostinger — CNAMEs for portal, api, docs, stagingRegistrar ~€1–3/mo; records on Hostinger
Cloudflare DNS zonemqa.group zone migration to MQA orgStill pending ⚠️ (see migration doc)
R2 egressPublic CDN URLsOften $0 via Cloudflare; check dashboard

Status: R2 on MQA org account ✅ · DNS zone migration to MQA org still pending ⚠️

Details: CLOUDFLARE-MIGRATION


Email — Resend

TierLimitPrice
Free100 emails/day, 3,000/month$0
Pro50,000 emails/month$20/mo
ScaleHigher volumeCustom

Production sender: governance@mqa.group (and aliases system@, support@).

Used for: Approvals, auditor invitations, password reset, compliance notifications — see RESEND.

Env: RESEND_API_KEY on mqa-backend (Render secret).


AI — Anthropic, OpenRouter, Claude subscription

ProviderPurposeBilling
Anthropic APIDirect Claude inference in productionPay-per-token (pricing)
OpenRouterOptional unified API; model switchingPay-per-token + small markup (pricing)
Claude Pro / TeamDeveloper chat at claude.ai~$20–30/user/mo — not the app API bill

The portal uses ANTHROPIC_API_KEY or OPENROUTER_API_KEY (OpenRouter wins if both set). Typical models: Claude Sonnet 4 / 4.5.

Rough AI spend: Low internal use ~€5–20/mo; active AI editing across teams ~€50–200+/mo — set budget alerts in Anthropic/OpenRouter dashboard.

Details: AI-SERVICES · AI Content Editing Architecture


Authentication — Microsoft Entra ID (Azure AD)

ItemCost
OAuth / SSO for portalUsually included in Microsoft 365 / Entra ID P1 licenses already held by MQA
App registrationNo extra fee

Env: OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET, OAUTH_TENANT_ID, OAUTH_REDIRECT_URI

Optional fallback email via Microsoft Graph (MICROSOFT_SENDER_EMAIL) — no separate vendor if M365 licensed.


Source control — GitHub

PlanCostNotes
Free (private repo)$0Current — CI via Actions (2,000 min/mo free)
Team~$4/user/moRecommended for enforced branch protection on main / develop

Details: GITHUB-FLOW


Domains — Hostinger / registrar

DomainPurposeEst. cost
mqa.groupProduction + staging subdomains~€10–40/year (~€1–3/mo)

DNS records: portal, api, docs, staging.* — see OPS-ECOSYSTEM.


ServiceFree tierPaid (indicative)Status
Better Stack / UptimeRobot1–50 monitors~$7–20/moTODO
Sentry5k errors/mo~$26/mo TeamTODO
Render built-inMetrics, deploy emailsIncluded✅ Active

Details: MONITORING


Compliance & integrations (optional)

ServiceEnv keyEst. costStatus
OpenSanctionsOPENSANCTIONS_API_KEYFree tier / paid API⚪ Optional KYC
Anthropic usage capsApp config✅ Configurable in portal

PriorityServiceWhyEst. add-on cost
P1Staging (Render)Safe releases before production~€25–40/mo (deployed ✅)
P1Automated monthly DB backup → R2Disaster recovery~€1–5/mo storage
P1DNS on MQA Cloudflare orgOwnership, offboarding$0
P2Uptime monitoring (Better Stack)Outage alerts to IT€0–20/mo
P2SentryError tracking before users report€0–26/mo
P2GitHub TeamEnforced PR + CI on main~€4/user/mo
P2Resend ProIf email volume exceeds free tier$20/mo
P3Separate staging AI keyLimit prod AI spendUsage-capped key
P3OpenRouterModel flexibility, single billingVariable

Open items: OPS-ROADMAP


Environment variable quick map

ServiceKey(s)Where set
Render PostgresDATABASE_URLAuto from Render
AnthropicANTHROPIC_API_KEYRender secret
OpenRouterOPENROUTER_API_KEY, AI_MODELRender secret
ResendRESEND_API_KEYRender secret
Cloudflare R2R2_*Render secret
Microsoft OAuthOAUTH_*Render secret
Sentry (future)SENTRY_DSN, VITE_SENTRY_DSNRender

Full list: ENV-INVENTORY


DocumentContent
RESENDEmail setup, domains, templates
AI-SERVICESAnthropic vs OpenRouter vs Claude subscription
OPS-ECOSYSTEMArchitecture diagram
EXECUTIVE-OVERVIEWPer-topic summaries for approvers
MONITORINGUptime & Sentry setup

Update this page when adding a vendor, changing Render plans, or renewing annual contracts.