The verdict in three sentences
For a government communications team, the main risk is not technical: it is publishing unapproved content on behalf of the state. A headless Sanity site with a 4-level workflow and full version history costs 150,000 to 300,000 CAD in Ottawa, security assessment and accessibility included. Well designed, it cuts the approval cycle from 5 days to 1, because each approver gets a notification and approves online instead of circulating Word files.
Why a headless CMS for a government website
In a traditional CMS, the public site and the admin interface live on the same server: a flaw in a plugin exposes everything. In a headless architecture, content is managed in Sanity, and the public site is built separately and served through a CDN. The attack surface shrinks sharply, and the site stays available during traffic spikes after an official announcement.
The second benefit is governance: Sanity lets you define roles, document statuses and a history of every change, with the person and the time.
| Workflow level | Role | Allowed action | Target delay |
|---|---|---|---|
| 1 | Communications writer | Create and edit a draft | Day 0 |
| 2 | Program manager | Approve technical substance | Under 4 hours |
| 3 | Director of communications | Approve form and tone | Under 4 hours |
| 4 | Minister's office | Final approval of sensitive topics | Under 8 hours |
| Publishing | Administrator | Go live, scheduled or immediate | Day 1 |
| Emergency | Minister's office | 2-level fast track, logged | Under 1 hour |
Routine content (job postings, notices, events) can follow a 2-level path, and only political announcements go up to the minister's office.
What the project costs in 2026
The budget depends on the number of content types, official languages (English and French are mandatory federally) and the online services to integrate. In Canada, the Standard on Web Accessibility and WCAG 2.1 AA conformance weigh heavily on design and testing.
| Item | 2026 range (CAD, excl. tax) | Comment |
|---|---|---|
| Discovery, information architecture | 15,000 to 30,000 | Workshops with branches |
| Design aligned with government identity | 20,000 to 40,000 | WCAG 2.1 AA |
| Sanity setup, roles, 4-level workflow | 25,000 to 50,000 | Email notifications, history |
| Public site development (Next.js), EN/FR | 45,000 to 100,000 | 15 to 25 templates |
| Content migration | 15,000 to 30,000 | News, PDF documents |
| Security assessment and penetration testing | 20,000 to 35,000 | Before go-live |
| Accessibility audit and user testing | 10,000 to 20,000 | Assistive technology tests |
| Total project | 150,000 to 300,000 | 4 to 6 months |
On top of this comes the Sanity licence: on the Growth plan, about 15 USD per user per month. With 12 users, that is 180 USD a month, or about 2,950 CAD a year. Hosting the public site on a CDN remains modest, from 100 to 400 CAD a month depending on traffic. Note that hosting choices must respect government data residency rules.
Points to watch
The first is data sovereignty: document where content is stored and plan regular exports. The second is continuity: the contract should include at least 12 months of support and handover of the source code. The third is adoption: if the minister's office keeps approving by text message, the workflow remains theoretical. Training and a dashboard of pending content solve this.
Mini case study
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Catherine, director of communications at a department in Ottawa, publishes about 30 pieces of content a month. Today, a news release takes 5 days to go out, and follow-ups take 3 hours of work per item, i.e. 90 hours a month.
With a 220,000 CAD project and a fully digital approval path, the delay drops to 1 day and follow-ups to 30 minutes per item: 75 hours recovered each month, or 900 hours a year. At 70 CAD per loaded hour, that is about 63,000 CAD a year. Above all, every publication is logged, which removes the risk of a release going out before approval.
FAQ
Why Sanity rather than WordPress or Drupal?
Sanity separates administration from the public site and natively handles roles and history. Drupal can run complex workflows too, but requires more server hardening and module maintenance.
How many users should we plan for?
A typical communications team has 8 to 15 accounts: writers, program managers, director, minister's office. At 15 USD per user per month, 15 accounts cost about 3,700 CAD a year.
Is the security assessment essential?
For a government site, yes. An assessment with penetration testing costs 20,000 to 35,000 CAD and should be repeated after each major release, usually every 12 to 18 months.
Can we publish urgently at night?
Yes, with a 2-level fast track reserved for the minister's office and logged in the history. Going live takes under an hour.
Is 4 to 6 months realistic in a department?
Yes, if a single owner is named on the client side and mockup approvals come back within 10 days. Without one, plan for 8 months.
Let's scope your project. Describe your branches, content types and current approval path, and we will price the full Sanity architecture (150,000 to 300,000 CAD) with a 4 to 6 month plan. Detailed quote within 48 h. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.