The whole product, running in your cloud.
Links, analytics, engagement, revenue and data all run inside your perimeter, on infrastructure you operate. Events land in your own databases. grovs staff have no access to them.
grovs · production
AWS · eu-central-1 · your account
10M+
end users in production
100K+ req/s
designed to scale out
MIT
open-source core you can read
0
grovs staff with access to your data
One deployment, inside your perimeter.
Your apps and website talk to grovs on your servers. grovs writes to your databases. The only outbound calls are the ones on the right, and you configure each one.
- 1Apps, emails and QR codes call grovs on your own domain.
- 2grovs writes every event to your Postgres and ClickHouse.
- 3Outbound calls go only to the services you configure.
Same images, any cloud.
grovs ships as versioned Docker images and three standard data stores. Nothing in it depends on one provider, so it runs wherever your other services run.
AWS · eu-central-1
Your account
grovs app services
Containers or VMs in your VPC
Postgres
Amazon RDS or your own
ClickHouse
Self-managed or a managed ClickHouse
Redis
ElastiCache or your own
- App services
- Containers or VMs in your VPC
- Postgres
- Amazon RDS or your own
- ClickHouse
- Self-managed or a managed ClickHouse
- Redis
- ElastiCache or your own
- Images
- Amazon ECR
- Sign-in
- Your IdP over OIDC
Same images on every cloud. Use the managed services you already run, or your own.
Deploy it your way.
Your platform team picks the tool. Each one deploys the same versioned images against your Postgres, ClickHouse and Redis.
Terraform
Modules that provision a production setup in your account: networking, services, data stores and load balancing. Works with OpenTofu.
module "grovs" { source = "grovs/selfhosted/aws" version = "2026.10.2" region = "eu-central-1" domain = "go.yourbrand.com" }
Same images, same data stores, same upgrade steps.
Built to scale out.
The app services hold no state, so you add capacity by adding instances behind your load balancer. Events go to ClickHouse, which is built for billions of rows.
Built for peaks
100,000+
requests / second, scaled out
Start
One instance of each service
Grow
Several app instances behind a load balancer
Large
App instances across zones, dedicated ClickHouse
Stateless app servicesScale out
Links, SDK and API traffic. Add instances to handle more requests; any instance can serve any request.
Redis
Hot link lookups and rate limits, so a link open never waits on the main database.
Postgres
Links, campaigns and settings. Small, and easy to back up.
ClickHouse
Every event, stored by column. Built for very large tables and fast queries over them.
Start
Pilots, staging and smaller apps
Grow
Production apps with steady traffic
Large
National-scale apps and campaign peaks
How deployment works.
- 1
Pull the images
Copy the versioned Docker images into your own registry.
- 2
Provision
Use Terraform, Helm, Docker Compose or Ansible, in any cloud or your data centre.
- 3
Connect your stack
Point grovs at your Postgres, ClickHouse and Redis, and sign in with your SSO over OIDC.
- 4
Upgrade on your schedule
Each release ships with upgrade steps. Backup and restore are covered in the runbooks.
- Infrastructure as code
- Terraform, Helm, Docker Compose and Ansible
- Runbooks
- Backup, restore and day-to-day operations, documented
- Releases
- Versioned releases with documented upgrade steps
- Data stores
- Your Postgres, ClickHouse and Redis
- Identity
- Your SSO over OIDC, user provisioning over SCIM
- Capacity
- Stateless app services that scale out to 100,000+ req/s
Run it like your other services.
Upgrades, backups, monitoring and sign-in follow your rules, not ours.
Upgrades you schedule
Each release is a versioned image with written upgrade steps. Nothing updates itself.
Backups you own
Postgres and ClickHouse are yours, so they follow your backup policy. Restore steps are in the runbooks.
Your monitoring
Health checks and logs go to the tools you already use.
Your sign-in
SSO over OIDC with Entra, Okta, Ping or Google, and user provisioning over SCIM.
Planning a self-hosted rollout?
Sizing, a security review or a pilot? Talk to our team.
Where each product keeps its data, and what leaves.
Everything below lives in your cloud. The right column lists every flow of product data out of your perimeter. You configure each one.
Links
- Data lives in
- Your Postgres + ClickHouse
- Leaves your perimeter
- DNS records for your custom link domain
Analytics
- Data lives in
- Your ClickHouse
- Leaves your perimeter
- No product data
Engagement
- Data lives in
- Your Postgres + ClickHouse
- Leaves your perimeter
- Push payloads to APNs / FCM for delivery
Revenue
- Data lives in
- Your Postgres + ClickHouse
- Leaves your perimeter
- Receipt checks with the App Store / Google Play
Data
- Data lives in
- Your ClickHouse, streamed to destinations you choose
- Leaves your perimeter
- Only to destinations you configure
Updates arrive as images you pull from your registry; nothing is pushed into your deployment. This table covers product data. Operational monitoring settings are covered in the security pack.
Community or Enterprise.
Start with the open-source core. Move to Enterprise when you need engagement, revenue, SSO and an SLA.
Both editions run on your servers, with your data stores. Enterprise adds the rest of the product and the guarantees around it.
Community
Free
Open source (MIT)
Enterprise
Annual licence
Per deployment, flat price
Products
Deep linking and custom domains
Analytics and CSV export
Engagement
Revenue
Event stream
Security and support
SSO and SCIM
Audit log
Patch and support SLA
Security pack, BAA and DPA
Identity, audit, open source, vendor continuity and compliance notes. Architecture supports HIPAA · BAA available.
Questions, answered.
Something else? Talk to an engineer.
Can grovs staff see our data?
No. Events land in your own databases, on infrastructure you operate. grovs staff have no access to them.
What product data leaves our network?
Push payloads to APNs / FCM, receipt checks with the App Store and Google Play, DNS records for your link domain, and the event-stream destinations you configure.
How do updates work?
Versioned releases with documented upgrade steps. You pull the images into your registry when you are ready; nothing is pushed into your deployment.
Which databases do we need?
Postgres, ClickHouse and Redis, run by you.
Is there a free, open-source edition?
Yes. Community is MIT-licensed and covers deep linking, custom domains, analytics and CSV export.
How much traffic can it take?
The app services are stateless, so capacity grows with the instances you add. The design scales out past 100,000 requests per second, and we size the deployment for your peak with you.
Do we have to use AWS?
No. grovs is a set of Docker images plus Postgres, ClickHouse and Redis. It runs on AWS, Azure, Google Cloud or in your own data centre.
Your first link, live this afternoon.
Install the SDK, connect your domain and send a link that opens the right screen. Start free on grovs Cloud, or run the same stack in your own.
Compare plans$0up to 10K monthly users
- Sign up and add the SDK
- Your first link live the same day
- Flat yearly price as you grow
Flat licencea year, in your cloud, no metering
- AWS, Azure, GCP or your data center
- Deployment help from our engineers
- Your SSO, your database, your rules