Skip to main content
clg-storage-s3 · clg-storage-gdrive · clg-search-meili

Scale up when you're ready. Never before.

Crumina Civic runs entirely on your own server out of the box. These three provider plugins are drop-in replacements behind the core storage and search contracts — feature modules don't change a line of code when you swap them in.

Try Crumina Civic All modules
clg-storage-s3

Amazon S3 storage

A drop-in replacement for local file storage built on the AWS SDK. Downloads are served through presigned, time-limited URLs, so Crumina's visibility rules keep working — and nothing is ever publicly listable.

  • Presigned, time-limited download URLs
  • Optional KMS encryption for stored objects
  • S3-compatible providers supported via custom endpoints — MinIO, DigitalOcean Spaces
  • Built-in connection test and per-module storage usage dashboard
Explore the S3 plugin

Storage usage by module

Documents41.2 GB
Meetings (packets & video)13.6 GB
Feedback attachments2.1 GB

Setup wizard

  • Choose connection type — service account or OAuth
  • Upload credentials — encrypted with libsodium
  • Pick a Drive folder
  • Run connection test

Files stream through WordPress — visibility rules always apply.

clg-storage-gdrive

Google Drive storage

For agencies already living in Google Workspace. A guided setup wizard handles both service-account and full OAuth connection flows, and files are proxy-streamed through WordPress — never raw Drive links — so restricted documents stay restricted.

  • Service-account and OAuth flows with a guided setup wizard
  • Automatic chunked upload for large files
  • Proxy-streamed downloads so Crumina's visibility rules are always enforced
Explore the Google Drive plugin
clg-search-meili

Meilisearch

Fast, typo-tolerant search as a drop-in replacement for WordPress-native search. It ships with a civic synonym set out of the box — "ordinance" finds "law" and "regulation" — and if the search server ever goes down, the site automatically falls back to native search instead of breaking.

  • Civic-domain synonyms out of the box
  • Automatic fallback to native WordPress search if unreachable
  • Nightly reconciliation keeps the index in sync and prunes orphans
  • WP-CLI reindex command for manual rebuilds
Explore the Meilisearch plugin
Search

Searching “noise law” — also matching: ordinance regulation

Noise ordinance 2024-18

Documents · 12 ms

Quiet hours enforcement project

Projects · 12 ms

Communication roadmap

Planned email and SMS delivery integrations

Crumina Civic will extend its module-owned notifications through replaceable delivery providers. These are planned post-MVP capabilities, not features of the current release.

Planned

Transactional email services

Postmark or SendGrid will deliver operational messages created by Projects, Meetings, Documents, Feedback, and CRM without moving message ownership into the provider layer.

  • Accessible HTML and plain-text message templates
  • Delivery, bounce, and suppression status
  • Encrypted provider credentials and connection tests
  • Audit context for compliance-relevant messages
Planned

Opt-in SMS notifications

A provider-neutral SMS contract will support concise, time-sensitive public-service alerts. Bulk newsletters, unsolicited messaging, voicemail, and marketing automation remain outside this roadmap.

  • Explicit opt-in with stored consent history
  • Simple opt-out and channel preferences
  • Rate limits, quiet-hour controls, and delivery status
  • Audited sends without logging message secrets

Planned boundary

Feature modules decide when and why a message is sent. Delivery integrations only transport approved messages and return status, keeping consent, permissions, templates, and audit rules inside Crumina Civic.
Why this works

Contracts, not couplings

Feature modules talk to the core platform's storage and search contracts — never to a vendor SDK. That's why a provider can be swapped in production without touching Projects, Documents, Meetings, Feedback, or CRM.

What swapping a provider looks like

  • Install the provider plugin from the Modules screen — no server access needed.
  • Enter credentials once; they're encrypted with libsodium before storage.
  • Run the built-in connection test, then select the provider.
  • Every module keeps working — visibility rules, previews, and downloads included.
Try it

See the add-ons in action

Watch a demo agency swap file storage to S3 and search to Meilisearch — with zero changes to the feature modules.