Built inMobitech
Kenya only
Send sign-in codes through your own Mobitech account. Add your API key and sender name under Authentication → Providers → Phone; we handle the rest, and a test button checks the key.
Product
Platform overview Integrations Verified, not claimed What isn't built yetSolutions
Mobile-first startups Agencies building for SMEs Fintechs & regulated teams What people buildMigrate
How a move works From Supabase From Appwrite From Firebase From AWS Amplify From any Postgres PricingDevelopers
Documentation Next.js quickstart JavaScript quickstart Changelog Support Contribute Platform statusCompany
Why we exist Customers Blog Partners Contact Sign in Start buildingPick the company you already use for SMS, payments or storage, add your key in the dashboard, and we take care of the rest: the sending, the callbacks, the retries. Where we run the service ourselves it says Built by AffinEQ. Sign-in providers like Google, GitHub and X live under Authentication, and frameworks and client libraries are in the documentation.
Built inKenya only
Send sign-in codes through your own Mobitech account. Add your API key and sender name under Authentication → Providers → Phone; we handle the rest, and a test button checks the key.
Built inKenya, Uganda, Tanzania, Rwanda, Nigeria and more
Send sign-in codes through your own Africa's Talking account. Add your username and API key; we handle the rest. Written to their documentation and not yet run against a live account: the test button will tell you.
Global
Send sign-in codes through your own Twilio account, for countries the local providers do not cover. Add your account SID, auth token and sender. Written to their documentation and not yet run against a live account: the test button will tell you.
PlannedNigeria and West Africa
Send sign-in codes through your own Termii account. Add your API key and sender ID; we handle the rest.
Kenya first · Built by AffinEQ
We send your codes and messages from our own account, so there is no provider to sign up with. Prepaid from your wallet: a message is paid for before it is sent and refunded if it fails. No free allowance on any plan.
Per message, prepaid; priced from the carrier's cost and shown before it is spent.
Africa · Built by AffinEQ
Send, receive and template messages over WhatsApp, and USSD for the feature phones that are still a large part of the market.
Per message or session, prepaid.
Kenya only · Built by AffinEQ
Take payments to your Paybill number: STK Push prompts and customer-initiated payments, with callbacks, receipts and reconciliation handled. Add your Daraja keys, shortcode and passkey; the money goes straight to you.
Kenya only · Built by AffinEQ
The same for a Till number: STK Push with the Buy Goods transaction type, callbacks and reconciliation handled. Add your Daraja keys, till number and passkey.
Nigeria, Ghana, South Africa, Kenya, Côte d'Ivoire · Built by AffinEQ
Cards, bank transfers and mobile money on your own Paystack account: charges, verification and webhooks handled. Add your secret key; the money goes straight to you.
Kenya only · Built by AffinEQ
Top up the prepaid wallet that pays for our managed services, straight from M-Pesa. It needs a Safaricom Paybill of ours, which is the owner's to obtain.
ExploringKenya only
Kenya's government services portal: Pesaflow payments (signed requests, a checkout, payment notifications) and single sign-on. Access is by onboarding with the eCitizen team; you hold the credentials and we handle the signing and callbacks once we have a sandbox. More
Global
Sign-in codes, magic links and password resets, sent through Resend.
United Kingdom · Built by AffinEQ
Files in a private bucket per project, with row-level policies, resumable uploads and signed links. The default; Storage → Settings says where your files are and lets you choose another location before you upload.
Included in your plan's storage quota.
Global
Point a project at a bucket you already pay for: AWS S3, Cloudflare R2, Backblaze B2, Google Cloud Storage (interoperability keys), MinIO or your own. The credentials are checked with a live round trip before they are saved.
European Union · Built by AffinEQ
Your files in our Cloudflare account, in R2's EU jurisdiction, one bucket per project, with no fee for downloads. Choose it under Storage → Settings once it is switched on. Or use your own R2 bucket today as an S3-compatible bucket.
Per GB-month, prepaid; no download fee. Provider list price $0.015/GB-month.
Cape Town and Ireland · Built by AffinEQ
Your files in our AWS account, in Cape Town (af-south-1) for data that must stay in Africa, or Ireland. One bucket per project. Or use your own AWS bucket today as an S3-compatible bucket.
Per GB-month plus downloads, prepaid. Provider list price in Cape Town about $0.027/GB-month and $0.15/GB downloaded.
Johannesburg and the Netherlands · Built by AffinEQ
Your files in our Azure account, in South Africa North (Johannesburg) for data that must stay in Africa, or West Europe. A container per project.
Per GB-month plus downloads, prepaid. Provider list price about $0.023/GB-month and $0.12/GB downloaded in South Africa.
Johannesburg and Belgium · Built by AffinEQ
Your files in our Google Cloud account, in africa-south1 (Johannesburg) or Belgium. One bucket per project. Or use your own bucket today with its interoperability (HMAC) keys.
Per GB-month plus downloads, prepaid. Provider list price about $0.023/GB-month and $0.12/GB downloaded.
Amsterdam · Built by AffinEQ
The cheapest place to keep a lot of data, in our Backblaze account. One bucket per project. Or your own bucket today.
Per GB-month, prepaid. Provider list price about $0.007/GB-month.
Global · Built by AffinEQ
pgvector is in every project from the start: store embeddings, build HNSW or IVFFlat indexes, and search by similarity through the API or an RPC.
Global
Keep your embeddings in Pinecone, a hosted vector database, instead of in the project's Postgres: add your API key and index. Most apps do not need it, since pgvector is in every project.
Global · Built by AffinEQ
Semantic search with no API key: a small model runs beside your database and turns text into vectors.
Per thousand texts embedded, prepaid, with a monthly cap.
Global · Built by AffinEQ
Text generation through a gateway, prepaid per token with a hard cap, so a runaway loop cannot spend your money in seconds.
Per token, prepaid, with a hard cap you set.
Nothing matches. Add one or tell us what you need.
eCitizen is Kenya’s portal for government services, and a real reason an app here might need to talk to the state. We have read the public material and not yet spoken to the people who run it, so this is research, not a promise.
There are two ways to get it here. Both start with a conversation.
A payment processor, an SMS gateway, an identity or government service, or a startup developers keep rebuilding. Apply to be an integration, as a Worker template or as a provider we build in.
Tell us which integration your app is waiting on. The order we build in comes from real apps, and an app waiting is the strongest signal we have.