Meeting software for governments
The public record, made public.
Agendas, minutes, every member’s vote and every meeting’s recording, as records anyone can search, cite and download. Acta Publica replaces Granicus with open-source software your government owns, on accounts your government controls.
- No licence fee. Hosting from $200 a month, support from $500, migration under $5,000.
- Search finds the moment it was said and plays the recording from there.
- Votes come from the clerk’s record, never from AI.
- Built to WCAG 2.2 AA on every page, with no tracking scripts.
City Council
Regular meeting
Item 9.4(a) · Community Development
Adopt the Riverfront Specific Plan and certify its environmental report
| Member Alvarez Mayor | Aye |
|---|---|
| Member Brooks Vice Mayor | Aye |
| Member Chen | No |
| Member Dorsey | Aye |
| Member Ellis | Aye |
…the plan opens the riverfront to housing, and I want the trail access written in before we adopt it.
Automatic transcript · Speaker labels subject to review
Start where you are
What matters to you most?
Pick one. Each goes to the part of this page that answers it, with the figures from our first build.
- CostNo licence fee, no annual escalator, nothing to pay to leave.How it’s cheaper →
- SpeedSet up in days, recordings playable minutes after a meeting.How it’s faster →
- SearchSearch what was said, by meaning, and land on the moment.How search works →
- Open dataEvery vote, item and transcript as data, in open standards.What you can download →
- AccessibilityWCAG 2.2 AA on every page, packets included.How it’s accessible →
Pay for the work, not for permission.
Acta Publica is open source under the GPL, like Drupal itself. There is no licence, no seat count and no module price list.
You pay for three things: hosting, support from people who answer the phone, and moving your records in, once. Hosting runs on your own accounts at the providers’ prices. When a contract ends, the code, the data and the accounts are already yours.
| For | Price | What it covers |
|---|---|---|
| Licence | $0 | Open source, now and at every renewal |
| Hosting | $200–$400 a month | The site, video, storage, transcription and search, on accounts you own |
| Support | $500–$5,000 a month | Depending on your needs: from updates and help by phone to cover on every meeting night and new features |
| Migration | Under $5,000 once | Your agendas, minutes, votes and recordings moved out of the old system |
A year of hosting and support comes to $8,400 to $64,800, all in. For scale, Fresno’s 2025 Granicus renewal averages $87,486 a year.4
What the cloud services cost in practice
No escalator
Meeting systems are sold by subscription, and the price climbs. Royal Oak, Michigan’s 2023 agenda subscription rises 6 percent in each of years two and three.12 Fresno, California renewed Granicus agenda, minutes and video in 2025 for $262,458.80 over three years.4 Acta has no subscription to raise.
No module sprawl
Agendas, minutes, votes, video, transcripts, search, public comment, notices, boards and commissions, and the open API come in one suite. You switch on what you use; nothing is upsold.
Captions without a captioner’s invoice
Automatic live captions cost under $100 a year. A contracted human captioner costs $13,000 to $20,000. Whether to keep one is your accessibility policy’s choice, not a licence’s.
Nothing to pay to leave
The software is yours and the data is in open formats, so a change of support team or host needs no export project and no conversion fee.
Cloud figures are what our first build actually spent, from its ledger, at October 2026 prices: AssemblyAI for transcripts, Cloudflare R2 for storage and Cloudflare Stream for video.
Days to set up. Minutes to publish.
Acta is built on Drupal, delivered as recipes, and fed by importers that read the systems you have today.
The first build went from an empty site to a city’s whole voting record since 2018, every council recording back to 2008 and searchable transcripts in about a week. After a meeting, its recording plays and its transcript is published without anyone waiting on a vendor.
Imports you can run twice
Every record keeps the identity of its source, so importing again updates in place and changes nothing that did not change. A dry run shows what would happen first. That makes the move off a legacy system a rehearsal, not a gamble.
Proven on Granicus’s own formats
The first build reads IQM2 agendas and minutes and Granicus video, the two products Granicus is retiring: IQM2 customers must move by 30 September 2027.23 Importers for Legistar, PrimeGov and Swagit are designed on the same contract.
Nothing waits on a web request
Long work (transcribing a five-hour meeting, building a packet PDF, copying an archive) is sent to workers that report back when done. Pages stay quick and nothing times out.
Search as you type
Results arrive while the reader types, and every page works without JavaScript for the readers who need it to.
Find the moment it was said.
Search reads the transcripts, the votes and the agenda by meaning as well as by words, and a result opens the recording at the second it was said.
Ask “what did the Council say about the riverfront plan?” and the first result is the discussion itself, inside the agenda item where it happened, playing from that moment, even where those words were never used.
Meaning and words together
Semantic search over transcripts, votes and items is fused with keyword matching, so a search for an address or a resolution number still finds it exactly.
Filters people actually use
By date, body, member, how a member voted, result, split votes and topic. Every member has a page with their positions, motions and dissents.
A transcript that follows the recording
Each word lights up as it is spoken. Click a word, a time or an agenda item to jump there; share a link to the exact second. Speakers are named from the attendance and labelled as automatic until someone reviews them.
Bring your own AI
The site runs no chatbot. It publishes an MCP server, so a reporter’s or resident’s own assistant can query the record directly and cite it.
Every vote is data. All of it is yours.
Each member’s position on each item is a record of its own, linked to the official minutes it came from, and free to download without a key.
The data lives in your Drupal site, your video sits in your own Cloudflare account, and the master of every recording stays in storage you control. A delivery service is never the only copy.
Open by default, keyless
A documented REST API with OpenAPI, JSON:API, CSV, WebVTT and text transcripts. Newsrooms and civic developers need no permission and no account.
Described for machines
A DCAT-US catalog, a Frictionless data package, a dictionary of every field, schema.org JSON-LD on every record and a sitemap per record type. The design follows the FAIR principles.
Provenance on every record
Each vote says how it is known (a printed roll call, “unanimous ayes” with the attendance, or no roll call) and which parser read it. Every import is listed publicly: when, what changed, what did not.
Data-quality findings, in public
Where the source minutes disagree with themselves, Acta records the finding and links it to the page of the PDF rather than quietly picking an answer.
Accessible because it’s built that way.
Every page is built and tested to WCAG 2.2 AA, at desktop and phone widths, including the clerk’s tools.
The Department of Justice’s ADA Title II rule requires state and local governments’ web content, documents and video included, to meet WCAG 2.1 AA: by 26 April 2027 for populations of 50,000 or more, and 26 April 2028 for smaller ones and special districts.24 Agenda packets are where portals most often fall short. Acta publishes the packet as an accessible web page first.
The packet as a page
The agenda, then each item with its recommendation, fiscal impact, staff report and attachments, on one page with contents and a print stylesheet. A bookmarked PDF copy is built from it for those who want one.
Captions and transcripts on every recording
A captions track, a transcript that follows playback and keyboard-reachable controls. The player stays in view beside the transcript.
Meaning never carried by colour
A vote is a word with a tally, never green or red. Every state is written out: “Aye”, “Absent”, “Minutes approved”.
Private by design
Fonts, scripts and the video player are served from your own site. No third party learns who looked up which meeting.
What we won’t compromise
AI where it helps. Never where it decides.
Votes are never generated
Who voted how comes from the clerk’s record or the official minutes. Models transcribe, summarise and suggest topics, and everything they produce is labelled as automatic and kept out of the vote record.
Everything links to its source
Every vote, item and quotation points to the document or the moment it came from, and every import can be run again with the same result.
You control your data
Cloud services run in your own accounts, never ours. Masters of recordings and documents stay in storage you control.
Open source, built on Drupal
GPL code on the content system many governments already run for their websites, delivered as Drupal recipes. Any Drupal developer can maintain it.
Who you’ll work with
Real people. Real service. We pick up the phone.
Acta Publica is made by FivePaths, a small team of people you will know by name. The people who build it are the people who support it.
When a clerk calls, a person answers: someone who knows your site, your meetings and your deadlines. No ticket queue, no call centre, no account manager between you and the people who can fix it.
A person answers
Call or write and you reach the team that built your site, not a support tier.
Cover on meeting nights
Higher support levels include someone on call for every meeting, for when a stream or a posting deadline can’t wait until morning.
We learn how your office works
We sit with your clerk’s office before we configure anything: how agendas are made, who approves them, what the minutes must say.
Nothing hidden behind us
The code is open and the accounts are yours, so our service has to earn the renewal. You can always see what we did.
Everything in the suite
One suite, from the department’s request to the public record.
Fourteen Drupal modules and a transcription layer, each switched on by a recipe. “Running” means it runs on our first build; “In pilot” means it is built and tested and waiting on its first clerk’s office.
Running on the first buildIn pilot built, tested, not yet in daily use
The public record
Running- Meetings by body and year, with what can be watched, heard and read
- Every vote with each member’s position, the tally and how it is known
- Member pages: positions, motions, dissents, agreement and topics
- Bodies and seats: who holds each seat until when
- Topics over time, and public data-quality findings
- Upcoming meetings and the latest approved minutes on the front page
Recordings and transcripts
Running- Transcripts with speaker turns and member names from the attendance
- A player that highlights each word and seeks from a word, time or item
- Deep links to the second; WebVTT, text and JSON downloads
- Video on Cloudflare Stream in your own account; older meetings as audio
- Masters kept in your own storage, with checksums
- Your existing captions and index points imported
Search
Running- Semantic and keyword search fused over transcripts, votes and items
- Search as you type, with a no-JavaScript fallback
- Filters by date, member, position, result, split votes and topic
- An MCP server for readers’ own AI assistants
Open data
Running- REST API with OpenAPI, plus JSON:API and CSV
- Open Civic Data and Popolo mappings; 17 SKOS vocabularies
- DCAT-US catalog, Frictionless data package, field dictionary
- schema.org JSON-LD and sitemaps on every record
- Public import history: every run, what it changed
The clerk’s tools
In pilot- Agenda requests from departments, with review by head, counsel and clerk
- Review deadlines in working days, reminders and delegation
- The agenda builder with your numbering and posting-deadline checks (Brown Act 72 and 24 hours)
- The packet as an accessible page, shared before publication by expiring links, with a PDF copy
- Minutes written from what was recorded, in each body’s own wording
The meeting console
In pilot- Roll call, attendance over time and quorum by the body’s rule
- Motions from templates; results computed from the body’s voting rule
- Members vote from their own devices; the clerk records the roll call
- Consent calendars, voice votes, withdrawals and a speaker timer
- Nothing lost when the connection drops, nothing written twice
Public participation
In pilot- Written comment on agenda items, published by the clerk
- Requests to speak, listed in the console, never published
- Email notices when agendas or minutes are published, one-click unsubscribe
- Push alerts to phones and desktops, no app store and no account
- Boards and commissions: vacancies, applications and appointments
Moving in
Running- Importers for IQM2 and Granicus video; Legistar, PrimeGov and Swagit designed
- Dry runs before anything is written; re-runs change nothing
- Every source document kept with its checksum and the text that was read
- Recipes that set up a new government’s site in one step
How it compares
Acta Publica beside Granicus and the others.
What each product publishes about itself, checked in October 2026. Where a vendor publishes nothing, the cell says so rather than guessing. Numbered notes link to the sources below the table.
| Compared | Acta PublicaFivePaths | GranicusLegistar, Peak, OneMeeting | CivicPlusCivicClerk | DiligentBoardDocs, Community | eSCRIBEOnBoard |
|---|---|---|---|---|---|
| Licence | Open sourceGPL-2.0-or-later, on Drupal 11 | ProprietarySubscription; no source code found | ProprietarySubscription; no source code found | ProprietarySubscription; no source code found | Proprietary“A proprietary software application and platform”12 |
| Owned by | The government owns its copy; FivePaths supports it | Private equity: Vista Equity Partners and Harvest Partners3 | Private equity: Insight Partners11 | Private equity: Insight Partners15 | OnBoard (Passageways), backed by JMI Equity19 |
| Pricepublic examples | PublishedNo licence. Hosting $200–$400 a month; support $500–$5,000 a month; migration under $5,000 | Not published. Fresno, CA, 2025: $262,458.80 for a three-year renewal of agenda, minutes and video4 | Not published. Royal Oak, MI, 2023 quote: $19,042 a year plus $6,465 implementation12 | Not published; no city price found | Not published. Solana Beach, CA, 2025: $12,020 a year plus $2,600 setup20; Royal Oak, MI, 2023: $14,220 a year, rising 6% a year12 |
| Transcripts of recordings | Every meetingSpeaker-labelled, every word timed; about $0.30 an hour at cost | Third-party captioning, live or automated, billed by the hour in annual bundles5 | Built-in transcription in CivicPlus Video14 | Automated captions on the Pro tier16 | Automated captions and transcript with Webcasting Plus21 |
| Search what was said | By meaning and by wordsA result plays the recording from the second it was said | “Spoken word search” marketed1; GXA, a conversational agent over agendas and votes, in 20266 | Not found | Searchable captions16 | Video indexed to agenda items21 |
| AI and the record | Labelled, never in votesAI transcribes and names speakers; votes come only from the clerk’s record | AI agent answers questions over Legistar records6 | AI assistant drafts agenda items and minutes from staff notes13 | AI-supported minutes drafted from captions, Pro and Plus tiers17 | AI minutes from the live transcript, in beta21 |
| Each member’s vote as open data | Keyless API and CSVEvery position linked to the minutes it came from | Legistar Web API publishes votes by person; some clients require a token; 1,000 rows a query7 | Not found | Not found | No official API found |
| Open standards | Built inOpen Civic Data and Popolo mappings, DCAT-US, Frictionless, schema.org, SKOS | Open Civic Data through third-party scrapers (Councilmatic) | Not found | Not found | Not found |
| Where the video lives | Your own accountCloudflare Stream in the government’s account; masters in its own storage | Granicus encoder or managed service (Swagit)1 | CivicPlus Video14 | YouTube embed, or BoxCast on higher tiers16 | eSCRIBE webcasting; YouTube or Vimeo streaming |
| Accessibility claim | WCAG 2.2 AAEvery page tested at two widths; the packet is an accessible page | WCAG 2.2 AA “wherever possible”; no public VPAT found8 | No public statement found | PDF-to-HTML add-on, which “does not guarantee” WCAG 2.1 AA18 | Public site aligned with WCAG 2.1 AA; PDF packets may need remediation22 |
| When the contract ends | Nothing to exportYou already hold the code, the data and the accounts | Varies by contract: export, then deletion after 60 to 90 days910 | Not found | Not found | Not found |
| Run it anywhere | YesAny Drupal host, any Drupal developer | Vendor-hosted | Vendor-hosted | Vendor-hosted | Vendor-hosted |
Competitors’ features change often, and several of the AI features above shipped in 2026. If something here is out of date, tell us and we will correct it.
Sources
- Granicus: Operations Cloud
- Granicus acquires Rock Solid (OneMeeting, formerly PrimeGov; Swagit), 12 October 2022
- Yahoo Finance: Granicus’s private-equity owners, March 2025
- City of Fresno, item 25-1219: Granicus renewal, 25 September 2025
- Granicus: video captioning product sheet
- Granicus: innovation and product updates, 2026
- Legistar Web API: reference and examples
- Granicus: corporate accessibility statement, March 2025
- City of San Leandro: Granicus agreement, data at termination
- City of Santa Ana: Granicus agreement, data at termination
- GovTech: CivicPlus and Insight Partners, 2021
- City of Royal Oak, MI: agenda software quotes and eSCRIBE agreement, 13 November 2023
- GovTech: CivicPlus AI tools for meetings, January 2026
- CivicPlus: CivicPlus Video
- Insight Partners: acquisition of Diligent, 2016
- Diligent: livestreaming public meetings, 27 January 2026
- Diligent: AI-supported minutes, 12 February 2026
- Diligent: DocAccess
- JMI Equity: OnBoard acquires eSCRIBE, August 2021
- City of Solana Beach, CA: eSCRIBE staff report, 2 July 2025
- eSCRIBE: live transcription and AI minutes (beta)
- eSCRIBE: public site accessibility statement
- Granicus: IQM2 and NovusAGENDA end of life
- US Department of Justice: ADA Title II web rule, first steps
If you are leaving Granicus
The ten most-reported complaints, and what Acta does instead.
Collected from review sites, council records and vendor notices in October 2026. Some come from competitors’ marketing, and we say so.
Cost, unpublished pricing and yearly increases · council records4, Granicus’s captioning terms5
Prices are published on this page. No licence; hosting bills to your own accounts; support is a fixed monthly contract.
Slow or weak support · Capterra customer-service rating 2.7 of 5
You call, a person who knows your site answers. And because the code is open, you can always change who supports it.
Workflow glitches and stalled approvals · Capterra reviews
Reviews run in a fixed order with working-day deadlines, reminders and delegation, and the console keeps every action until the server has it.
Forced migrations off retired products · Granicus’s end-of-life notice23
Nothing to retire you from: you hold the code. Acta imports IQM2 and Granicus video today, with dry runs.
Heavy implementation · comparison site, Granicus
Recipes set up a site in one step. The first build had a city’s full record online in about a week.
A dated interface · a competitor’s comparison
Designed around the reader’s question, on a phone first, with the record as plain words.
Module sprawl and upselling · Granicus’s product sheet
One suite. Video, transcripts, search, comment and notices are recipes you switch on, not add-ons you buy.
Unreliable streaming · City of Dixon, CA staff report
Cloudflare Stream in your own account, on Cloudflare’s network, with your YouTube stream as a fallback.
Inaccessible agenda packets · a competitor’s article
The packet is an accessible web page first, tested to WCAG 2.2 AA; the PDF is a copy built from it.
Restricted data access · developers; older, since improved7
A keyless API, bulk downloads and open standards, with no write access to separate from read.
White papers
On government, AI and the software it runs on.
Opinion pieces from the people building Acta Publica. In preparation.
-
Policy
The Future of Government with AI
Where models make public work faster and fairer, where they must never decide, and how to tell the difference before a vendor does it for you.
Coming soon
-
Strategy
How to Navigate an Unknown Future
The tools change monthly. Why governments need independent AI expertise at the table, and what to ask of the people they bring in.
Coming soon
-
Economics
The End of Expensive Software and Services
When building and maintaining software costs a fraction of what it did, licence fees and annual escalators stop making sense. What replaces them.
Coming soon
-
Practice
Accessibility and Open Data: What Custom AI-Built Sites Can Offer
Sites built to the standard from the first line, records published as data by default, and why custom no longer means costly.
Coming soon
-
Trust
Deterministic First: Keeping AI Out of the Vote Record
Why who voted how must come from the clerk and the minutes, and how to label everything a model touches.
Coming soon
-
Ownership
Who Owns the Public Record?
Contracts, exports and cloud accounts: what a government should hold the keys to, and what happens when it doesn’t.
Coming soon
See it working
Bring us your hardest question about your record.
We’ll show you a full city’s record in Acta Publica: its votes since 2018, its recordings back to 2008, and search that lands on the moment.
Acta Publica is designed, built and supported by FivePaths, a Drupal and AI studio.