Product · An option, never a requirement
Aspian Cloud governs changes wherever you deploy, so nobody has to move. Cells are for organisations whose data must stay in one jurisdiction, or who want us to run everything. Each cell holds apps, databases, logs and backups in one country, and keeps serving if our control plane is unreachable.
Lagos
For Nigerian data. Backups go to a second Lagos facility.
Abuja
For Nigerian data, close to federal government. Backups stay in Nigeria.
London
For UK data. Backups go to a second UK provider.
European Union
For EU data, or workloads with no residency requirement.
Your data centre
The same cell installed on your hardware, run by Aspian.
A residency report lists every volume, backup and artifact with its location. Any processing outside the jurisdiction, such as messaging providers, is named on the sub-processor list.
Aspian Cloud/Kestrel Pay/payments-api
payments-api
Stored in LagosSynthetic demo dataCard payments and refunds for merchants
Awaiting approvalProduction change: Add partial refunds to payments
T. Adeyemi and K. Okafor were notified on WhatsApp at 10:31. You asked for it, so you can’t approve it.
Production
Healthy- Server response, p95, last hour
- 138 ms
- Current deployment
- Fix settlement CSV export, 4 Nov
- Domains
- payments-api.apps.example
- Source
- main @ 9c1e7b2
Recent deployments
View all
Add partial refunds to payments
main @ a81d03f
Production
Awaiting approval0 of 2 approvalsToday 10:31
Add partial refunds to payments
feat/partial-refunds @ a81d03f
Preview
ReadyMasked seed dataToday 09:58
Fix settlement CSV export
main @ 9c1e7b2
Production
CurrentCanary passed4 Nov
Resources
payments-db
Postgres 17, high availability
HealthyDrill passed 3 days ago
sessions
Valkey 8
Healthy12% memory used
alerts
Messaging
HealthyWhatsApp, then SMS
Agents
Coding agent key owned by D. Eze, expires 28 Nov
1 blocked attempt this week: a production database change after reading logs. It went to approval instead of running.
An illustrative project overview on a dedicated cell, where production changes need two approvers. The company, app and people are fictional.
The everyday work stays one step.
A deploy to a preview, a scale within budget or a release rollback runs straight away and is logged. Nobody waits for an approval to try something out.
- Deploy from GitHub
- Connect a repository and push. Builds run on our servers, so a slow connection never stalls a release.
- A preview for every branch
- Each pull request gets its own address, seeded with masked or synthetic data. Real personal records stay in production.
- Domains and certificates
- Add your own domain. Certificates are issued and renewed for you.
- Logs and metrics
- Stream logs from the dashboard or the terminal, and watch response times and errors per release.
Deployments / dpl_8kd2
Add partial refunds to payments
HealthyProduction change with a database migration, requested by D. Eze
Built
10:32, 1 min 08 s
- Built from main @ a81d03f on our servers, not a laptop
- Image signed by the Aspian pipeline
Checks passed
10:33
- Software bill of materials generated
- Vulnerability scan: 0 critical, 0 high, 2 low
- Secret scan clean, image signature verified
- Migration adds one field and changes no existing rows
- Down-migration tested; verified backup from 10:15 is the fallback
Approved by 2 of 2
10:42 and 11:05
- T. Adeyemi, passkey on phone
- K. Okafor, passkey on laptop
- Both approvals bound to plan 7d3a9c…41fe
Migration applied
11:06
- Added payments.refund_amount
- 0 existing rows changed
Rolled out
11:06 to 11:21
- Canary: 10% of traffic for 10 minutes, error rate 0.2% against a 2% limit
- The canary would have rolled back the release if errors rose; the migration stays
- Then 100% of traffic
Healthy, and evidence recorded
11:21
- Server response p95: 142 ms
- Change added to the Trust Page with both approvers
Every deploy is one record, from commit to healthy.
The build, the checks, the approvals, the migration and the rollout sit on one timeline. When something goes wrong, you can see what happened without asking around.
Rollback says what it doesn’t undo
One step restores the previous release: app code and environment variables, with no approval needed. A release rollback does not reverse a database migration. Each migration ships with a tested down-migration, run as its own approved plan, and a verified backup is the fallback.
Managed Postgres and Valkey, with backups you’ve seen restore.
A database you can’t restore is a liability. So the platform tests recovery on a schedule, weekly and signed, and keeps the signed result where you, your board and your auditors can read it.
| High availability | Postgres runs on CloudNativePG with a standby replica and automatic failover. |
|---|---|
| Point-in-time recovery | Restore to a chosen moment. Backups are kept in a second facility in the same country as your app. |
| Restore drills | Weekly and signed on dedicated cells, and on a schedule you set on shared ones. Each drill records the data loss, the restore time and whether checksums match. |
| Governed access | Read-only and scoped to one database by default. Writes to production go through a plan and an approval. |
| Valkey | For caches, sessions and queues, in the same project, with its own tools. |
payments-db
PassedRestore drill, 3 days ago
- Data lost
- 48 s
- Time to restore
- 9 min 12 s
- Checksums
- Match
Only images our pipeline built and signed can run.
Every push goes through the same checks, in the same order. If a step fails, nothing reaches the cluster.
1
Build
On our servers, from the commit you pushed.
2
Bill of materials
Every package in the image is listed.
3
Vulnerability scan
A critical finding fails the build, unless waived with an expiry date.
4
Secret scan
A key or password left in the code fails the build.
5
Sign
The image is signed with the pipeline’s key.
6
Admit
The cluster refuses unsigned images and images signed by any other key.
From your terminal, or from your coding agent.
The aspian CLI covers the daily work. The MCP server lets AI coding agents do the same, under the same rules as your staff.
- aspian login
- Sign in to your Aspian Cloud account.
- aspian deploy
- Deploy the current branch. Add --prod to request production.
- aspian logs
- Stream logs for an app and environment.
- aspian rollback
- Return to an earlier release in one step.
- aspian env
- Set environment variables. Secret values are write-only.
- aspian db
- Open a scoped, read-only database session.
- aspian export
- Start an export of your project.
mcp session, key owned by D. Eze
Read customer contentagent read_logs payments-api --since 1h
312 lines returned, session marked as having read logs
agent create_plan "add index on incidents.created_at"
plan 3HX9-02LM, risk class: production change
agent apply_plan 3HX9-02LM
! refused: 403 SESSION_TAINTED
approval requested from T. Adeyemi and K. Okafor
agent deploy --preview feat/refund-index
✓ preview ready, no approval neededEvery MCP tool has a risk class, and the class decides who must approve it. Reads and reversible changes run straight away. Database migrations and settings changes in production always need a person’s passkey.
Once an agent has read logs or customer data, anything it plans for production needs a person’s approval. Agents can use a secret but never see its value.
A spend cap that never deletes your data.
At the cap, non-production apps pause and the owner is alerted on every channel. Production keeps running on a reserve of up to 20% above the cap for the rest of the billing month. If the reserve is used up, production scales down to its minimum size and new deploys wait for the owner to raise the cap. The most you can be billed for usage in a month is your cap plus 20%, and billing never deletes data.
Spend this month
82% of cap
Cap set by the account owner. The most you can be billed for usage this month is the cap plus 20%.
When the cap is reached
- Previews and stagingPaused
- OwnerOn every channelAlerted
- ProductionOn a reserve of up to 20% above the cap, for the rest of the monthKeeps running
- If the reserve is used upProduction scales to its minimum; new deploys wait for a higher capMinimum size
- Databases and backupsNever deleted
Start an export in one step.
Your project comes out in formats other platforms and your own team can run. We test the bundle by booting it on a clean machine with no Aspian components.
- Terraform
- The infrastructure your apps need, as code you can apply elsewhere.
- Helm charts
- To install your apps on any Kubernetes cluster.
- Docker Compose
- To run your apps on a single machine.
- Database dumps
- Standard Postgres dumps you can restore with ordinary tools.
Secrets come back as a list of keys to re-enter, never as values. Credentials, DNS and third-party services still need transition work, and the bundle lists what’s left to do.
How we test the way outEverything in one place, with nothing to bolt on.
The features teams expect from the best developer platforms, plus the controls and evidence regulated organisations need. Choose a group to see what it covers.
GitHub, GitLab and Docker images
Deploy from a repository or a prebuilt image.
Server-side builds
Builds run on our side with a shared cache, so a slow connection never matters.
Monorepos
Point each service at its folder; only what changed rebuilds.
Preview for every branch
Seeded with masked or synthetic data, asleep when nobody is using it.
Canary releases
Send a slice of traffic first. If errors rise, the canary rolls back the release automatically.
One-step rollback
Return to any earlier release. A release rollback does not reverse a database migration.
Config as code
Describe services in a file in your repository, or manage them with Terraform.
Deploy hooks and webhooks
Trigger deploys from anywhere and get told when they finish.
What cells cost
Hosting in the country you choose: shared cells billed on usage, or a dedicated cell from ₦6,500,000 / £9,500 a month on a 12-month term. Shared cells are billed on usage, by the hour:
- Compute in Lagos or Abuja
- ₦12.50 per vCPU-hour, ₦6 per GB of memory an hour
- Compute in London or the EU
- ₦5.50 per vCPU-hour, ₦2.75 per GB of memory an hour£0.012 per vCPU-hour, £0.006 per GB of memory an hour
- Postgres storage, backups included
- ₦350 per GB a month£0.30 per GB a month
- Volumes and object storage
- ₦150 per GB a month£0.10 per GB a month
- Outbound data
- ₦60 per GB£0.04 per GB
- Build minutes
- ₦10 a minute£0.005 a minute
Your spend cap
- At the cap, non-production apps pause and the owner is alerted on every channel.
- Production keeps running on a production reserve of up to 20% above the cap for the rest of the billing month, so a live app never goes down because of billing.
- The most you can be billed for usage in a month is your cap plus 20%. Billing never deletes data.
Cells come with the change control of the tier you choose. See pricing.
Need your data to stay in one country?
Tell us where it must live and what runs on it. We’ll show you the residency report before you commit.
Ship like a startup. Prove it like a bank.