Everything Gemmein gives your app · web & mobile

Everything your app needs to be a business

Your website and your iPhone, Android and Mac apps, with customer sign-in, payments into your own Stripe, private data, automations, AI, email and one dashboard to run it all.

Build it as a website or an app

Website

  • Ask ChatGPT or Claude for it, in your own words.
  • Gemmein hosts it the moment your AI builds it, with a private preview that updates as you talk.
  • Put it live on your own web address when you’re ready.

Add Gemmein to ChatGPT

iPhone and Android apps

  • Ask a coding tool, such as Claude Code, Cursor or Codex, for an Expo app on Gemmein.
  • It gets the same sign-in, customers, saved data, credits and AI tools as your website.
  • You publish it to the App Store and Google Play with your own developer accounts.
  • Selling inside the app goes through Apple’s and Google’s stores, with RevenueCat, and each purchase reaches Gemmein.

Set up a coding tool

Mac app

  • Ask your coding tool for a Swift app on Gemmein’s Swift package. The same app can also run on iPhone and iPad.
  • The same account, customers and rules as your website.
  • Needs macOS 14 or iOS 17, or later.

How apps on phones work

Read this page

01

Your site, hosted

Your app is online from the moment your AI builds it. Try it on your phone, share it, and put it live when you’re happy.

  • A private preview that opens with its own link while you build.
  • One link to show a friend or a customer, which you can change any time.
  • Every version is kept. Go back to an earlier one in one step.
  • Your own web address, like www.yourshop.com.
  • Ask your AI to change a page: it reads the page as it is now, changes it, and your preview shows it.
  • Take the site offline whenever you want. Nothing is lost.

Gemmein hosts your frontend’s static files. Every publish lands on the Development site; the Live site changes only when you approve a promote.

  • Development: <slug>-dev.gemmein.dev, a private preview. Live: <slug>.gemmein.dev.
  • Publish from a computer with npx gemmein publish, or from a chat through the connector. Every publish answers PUBLISHED or FAILED.
  • Every version is kept: roll back on Development, promote any version to Live, download any version as a zip, or share the preview with one link you can change.
  • Up to 5 of your own domains per Live app, each added with its own approval. Two DNS records: a TXT at _gemmein proves the domain, and CNAME www → <slug>.gemmein.dev shows the site. The site is served at www; the bare domain forwards to it at the registrar. Gemmein sets up https.
  • Static files only (HTML, CSS, JavaScript, images, fonts), up to 25 MiB a file and 50 MiB a site. Server logic runs in a relay’s call to your URL or on your own server.
  • From a chat, your AI reads a file as it is now (site_read) before it changes it, then puts the changed file and publishes.
  • Taking the Live site offline keeps every version. The Live site and each of your own domains then show “This site is offline”, and the domain’s page reads Your site is offline.

Read the site guide

Rumi’s Kitchen · Your site

  1. Version 7Today, 14:02 · menu photosPreview
  2. Version 6www.rumiskitchen.co.ukLive
  3. Version 5Monday, 09:40 · opening hoursKept

Put version 7 liveShare linkGo back

02

Customers sign in

Customers sign in with a code sent to their email. No passwords to forget, and nothing for you to reset.

  • They stay signed in on up to 10 devices, and can sign any of them out.
  • If someone signs in from a new device or country, the customer gets an email straight away.
  • Customers can download their information or delete their account themselves.
  • From your dashboard you can look at any customer, pause them or sign them out.

Passwordless email-code sign-in on the web, in Expo and in Swift. Gemmein holds and checks every session.

  • g.auth.sendEmailCode() then g.auth.verifyEmailCode(); g.auth.currentUser() reads the session.
  • Up to 10 devices per person; an 11th sign-in signs out the oldest. g.auth.devices(), signOutDevice(id), signOutEverywhere().
  • A sign-in from a device or country the person hasn’t used before emails them, with a link that signs out everywhere.
  • g.account.export() returns the person’s data, once every 30 days. g.account.delete() erases them and sets their Stripe subscriptions to cancel at the end of the period.
  • Mobile SDKs keep the session in the device’s secure store. You can suspend a person or end their sessions from the dashboard.

Read the sign-in guide

rumiskitchen.co.uk

Rumi’s Kitchen

New sign-in to Rumi’s Kitchen from Safari in United Kingdom. Not you? Sign out everywhere.

03

Get paid

Built in with Stripe: subscriptions, one-off payments and credit packs, paid straight into your own Stripe account. Gemmein makes sure each person gets what they paid for.

  • Monthly or yearly plans, with a page where customers change plan, cancel or update their card.
  • One-off things to buy: a download, a guide, a pack of credits.
  • Credits for things people use up, like AI features.
  • Try every payment with test cards before you go live.
  • Refunds are made in Stripe, and a full refund takes the access back.
  • Use another payment provider? Connect it with an automation: when it tells Gemmein someone paid, Gemmein unlocks what they bought.

Stripe is built in, on your own Stripe account. Gemmein never holds or moves money: it receives Stripe’s events and records who holds what. Any other provider reaches Gemmein through a relay.

  • Connect Stripe with a restricted key: 5 permissions, plus 2 if you sell plans. It can’t pay out, refund or read cards.
  • Plans: Gemmein makes each plan’s Payment Link and the billing portal. g.subscriptions.plans(), checkout(), mine(), manage().
  • One-off products and credit packs: g.payments.products(), g.payments.buy(), g.purchases.mine(), g.credits.balance(). Product files up to 100 MB, or 500 MB for video.
  • Products and plans live in gemmein/payments.json; the CLI syncs them.
  • In Development, payments run in Stripe’s test mode with its published test cards.
  • A full refund in Stripe takes back that purchase’s access and credits; a partial refund doesn’t revoke anything on its own. App Store and Google Play purchases arrive through RevenueCat and a relay.
  • Another payment provider: you run its checkout, and its signed webhook reaches a relay. The signature is checked by its standard (Standard Webhooks, or a signature recipe: HMAC-SHA1, SHA-256 or SHA-512, Ed25519 or ECDSA P-256). A call that fails the check is refused, and a sender that doesn’t sign each event can’t grant anything unless you opt in. The relay then fulfils a product (its access and credits), grants a plan or access, or adds credits, so Gemmein enforces what each person holds.

Read the payments guide

rumiskitchen.co.uk/plans

Rumi’s Kitchensam@example.com

Single

£15 a month

4 meals a month

Choose

Family

£30 a month

10 meals a month

Subscribe

Checkout by Stripe · paid into your own account

04

Your data, kept private

Choose who can see each kind of information, in plain words like “each customer sees only their own orders”. Gemmein holds to that on every request, whatever the app does.

  • Private things stay private: one customer never sees another’s.
  • Public things, like your menu, anyone can read and only you can change.
  • Posts can appear at a set time and disappear later.
  • Photos, documents, audio and video follow the same rules.
  • As the owner, you see and can change everything from your dashboard.

Each collection has exactly one of eight safety rules, enforced on Gemmein’s servers on every read and write.

  • The rules: private, shared, admin_write, public_read, community, addressed, direct and app_only (only your dashboard, your server and relays reach it). The same on the web, in Expo and in Swift.
  • Options beside a rule only hide or order, never widen access: show and hide times (showFrom, showUntil, judged by the server’s clock) and rankable numbers ("rankable": ["score"], up to 3 number fields; each record carries its rank).
  • Fields are declared in the collection’s file. In Live, a write with an undeclared field is refused with an explanation; a new field goes through a promotion you approve.
  • Publishing (posts wait as drafts until you approve), open fields for likes, votes, polls and RSVPs (once per person), and messages to up to 20 people.
  • Files are stored with the record they belong to and read under its rule: up to 100 MB of audio, 500 MB of video.

Read the safety rules

Rumi’s Kitchen · Data

  1. OrdersEach customer sees only their ownPrivate
  2. MenuAnyone can read; only you change itPublic
  3. ReviewsAnyone reads; customers write their ownCommunity
  4. SpecialsShows Friday 17:00, gone Sunday 22:00Timed

05

Automations

Tell Gemmein what should happen when something happens, and it does it for you. No code.

  • When someone pays: give them access, add credits, send a thank-you email.
  • When another service you use sends news, like an online shop: act on it.
  • On a schedule, every hour or every day.
  • When something changes in your app, like a new order coming in.
  • If a step fails it tries again by itself, and you can see what happened.

A relay runs a list of Gemmein’s own actions when a verified webhook arrives, a schedule is due or a record changes.

  • Webhooks are checked by their signing standard, not by who sent them: Stripe’s format and Standard Webhooks are built in; any other sender is described by its algorithm (HMAC-SHA1, SHA-256 or SHA-512, Ed25519 or ECDSA P-256), its key, the signed text and where the signature sits.
  • Actions: fulfil or refund a product, grant or revoke access, grant or end a plan, add credits, write a record, email the person, call your URL with a signed request, run an AI tool.
  • A schedule has no person, so it can only write a record and call your URL.
  • A failed run retries six times over about a day, then waits for your replay. Events are kept for 30 days.
  • Relays run no custom code. Your own code runs on your server and is reached by call_url.

Read the relays guide

Rumi’s Kitchen · Relays

  1. When a plan payment succeeds

    Add 10 meal credits · email a thank-you

    Ran 2 min ago

  2. When a new order is created

    Send it to the kitchen printer

    Ran 9 min ago

  3. Every day

    Write tomorrow’s specials

    Next at 06:00

06

AI in your app

Any AI, built into your app: text, audio, images, video or your own pipeline. It runs on your own AI account, and customers pay in credits.

  • You set the price of each feature, like 2 credits for a quick summary.
  • Customers only use what they have paid for.
  • If the AI fails before answering, the credits go back.
  • See who used what, and what it cost.

An AI tool keeps its instructions, prompt, input rules and model on Gemmein’s server. Your app sends only the tool name and inputs.

  • Providers on your own keys: OpenAI, Anthropic, Google, Replicate, fal, ElevenLabs, Runway, Deepgram and AssemblyAI, for chat, image, speech, video and transcription, and any OpenAI-compatible chat provider (OpenRouter, Mistral, Groq).
  • Priced in credits per call, or per unit the provider meters (such as 1,000 tokens). Gemmein checks the inputs, the person, their access and their credits before the provider runs; a failure before any output refunds the credits.
  • g.ai.run() and g.ai.chat() from the app; every run is listed per person, and keeping prompts and answers is opt-in per tool.
  • Your own pipeline as a provider: an external tool sends your URL a signed run with the person, a credit ceiling and a deadline of up to 24 hours. Acknowledge within 10 seconds, then return the result or a failure.

Read the AI tools guide

AI tool · Describe a dish

Provider
OpenAI · your key
Who can use it
Family plan
Price
2 credits per use

sam@example.com used it · 2 credits · 18 leftDone

For example

  • Voice notesA plumber’s customers leave a message, and it’s written down.

  • PhotosA shop’s product photos become listings.

  • VideosA cooking course’s lessons, summed up.

  • Your own pipelineLong jobs on your own service, up to 24 hours, paid in credits like the rest.

07

Email and Inbox

Emails to your customers come from your own web address, and their replies come back to you.

  • Sign-in codes, receipts and updates, sent in your app’s name.
  • Customers write in, and their messages wait for you in one Inbox.
  • Reply yourself, or let your AI write the reply. Nothing is sent until you approve it.
  • A message left waiting reminds you.

Email sends from your own domain, and replies land in the dashboard Inbox as threads.

  • npx gemmein domains add yourdomain.com --email: the app sends from mail.yourdomain.com, and the CLI lists the DNS records to add.
  • Gemmein sends the sign-in codes and the purchase email with its receipt. g.notify(personId, { subject, text, key }) emails one person; the key stops a retry sending twice. Templates live in gemmein/emails/.
  • One person at a time: broadcasts and group sends are not part of Gemmein.
  • From a chat, the connector reads the Inbox (live_inbox) and drafts a reply (inbox_reply); you approve the exact text in your browser before it is sent.

Read the email guide

Rumi’s Kitchen · Inbox

Sam · 10:12Can I move my delivery to Saturday?

Reply drafted by your AIOf course, Sam. Your delivery is now on Saturday between 5 and 7pm.

Approve and sendEditWaiting for you

08

Run the business

One dashboard shows every customer, every payment and anything that needs you.

  • See who signed up, who pays and what you have earned.
  • Open any customer: what they bought, their credits and what they did.
  • Logs show everything that happened, newest first.
  • Ask your AI “how’s it going?” and it reads the dashboard for you.

The dashboard at app.gemmein.com has one page for each part of the business.

  • Pages: Overview, Inbox, Customers, Subscriptions, Get started, Data, Payments, Domains, Site, Relays, Emails, AI, Logs, Errors and Settings.
  • Errors groups every refused write by what went wrong, with the refusal message your app received.
  • From a chat, the connector reads Live without changing it: live_overview, live_people, live_revenue, live_subscriptions, live_records, live_errors, live_logs, live_usage, live_webhooks, live_emails and live_inbox.
  • Scoped, revocable secret keys let your own servers and scripts use the server API.

Read the dashboard guide

Rumi’s Kitchen · Overview

People312

Paying48

This month£1,140

1 customer message waiting for a reply

How’s it going?Good week: 6 new customers and 4 new Family plans. One message is waiting for you.

09

Safe by default

Nothing important changes in your live app without you saying yes.

  • Every change to your live app asks for your approval in your browser.
  • Going live is your approval, then paying for your plan. No code is needed.
  • Big changes after that, like putting a new version live, adding a web address or taking the site offline, also ask for a code we email you.
  • Each customer’s information is protected on our servers, even if the app’s code has a mistake.
  • Add an authenticator app to your account for extra protection.

Approvals, rules and secrets are enforced on Gemmein’s servers, never in the app’s code.

  • Each Live change is approved on its own in your browser. A change to one customer is the approval alone.
  • Going live is your approval, then paying for the plan, with no code. A plan you paid for first means going live is the approval alone.
  • A change to how the business runs (a promote or Live push, products and prices, a domain, email sending, Stripe, a Live secret key, deleting a collection, relay or AI tool, taking the site offline) also asks for the code Gemmein emails, and your authenticator code when you have set one up.
  • Your AI never sees Live secret keys. Settings → Approvals lists every machine and connector you approved; revoking one ends its access at once.
  • Every sign-in and change is in Logs. Data is encrypted in transit and at rest, with abuse and brute-force protection.

Read how it’s kept safe

app.gemmein.com/approve

Put version 7 live?

Your AI asked to put version 7 of Rumi’s Kitchen on your live site.

Code from your email

ApproveDeny

Only approve if you just asked your AI to do this.

10

Build with any AI

Use the AI you already use. Tell it what you want, and it builds your app with Gemmein.

  • ChatGPT or Claude: add Gemmein once, then just chat.
  • Coding tools like Claude Code, Cursor and Codex work too.
  • Websites, and phone apps for iPhone, Android and Mac.
  • When something goes wrong, the message says how to fix it, so your AI fixes it.

Gemmein is an SDK, a CLI, a hosted connector and one guide your AI reads first.

  • Chat apps (ChatGPT, Claude.ai, Lovable, Replit, Bolt, v0) add the connector at https://api.gemmein.com/mcp. It builds in Development and never sees a secret key. ChatGPT works on every plan, Free included.
  • Coding tools (Claude Code, Cursor, Codex) use the npx gemmein CLI, with a free local backend (npx gemmein dev) under the same rules as Live; syncing to the cloud is approved in your browser.
  • The guide your AI reads first: https://docs.gemmein.com/llms.txt.
  • SDKs: @gemmein/sdk for the web, @gemmein/sdk/expo for iOS and Android, and the GemmeinSwift package for iOS 17+ and macOS 14+.
  • Every refusal names what was refused and what to change, so your AI fixes the cause.

Read the quickstart

Rumi’s ChatGPTGemmein added

  1. Let customers order from this week’s menu and pay when they order.
  2. Done. Customers sign in, pick their meals and pay into your Stripe. I tested it with a test card.Version 8 · orders and payments

Pricing

Build · $0

One plan for your whole account. You pay when an app goes live — or buy ahead if you're ready.

Development, on your computer or in the cloud. No card until you go live.

Launch

$29a month

for your account

  • Up to 5 apps — any may go live
  • 50 GB of pooled file storage
  • Your live site, on your own domain

Pays for itself with about 3 customers at $10 a month, before fees.

Get Launch

Run a business Recommended

$79a month

for your account

  • Up to 10 apps — any may go live
  • 200 GB of pooled file storage
  • Your live site, on your own domain

Pays for itself with about 8 customers at $10 a month, before fees.

Get Run a business

Grow

$199a month

for your account

  • Up to 25 apps — any may go live
  • 500 GB of pooled file storage
  • Your live site, on your own domain

Pays for itself with about 20 customers at $10 a month, before fees.

Get Grow

Prefer to build first and pay when you go live? Or paste this into your AI.

Every Live plan includes

Build

  • AI tools for text, audio, images and video, on your own AI account
  • A chat assistant for your customers
  • One app on the web, iPhone, Android and Mac
  • Sign-in with an email code
  • Your own web address

Sell

  • Payments and monthly plans into your own Stripe, or another payment provider
  • Credits your customers buy and spend
  • Downloads only buyers can open
  • Emails from your own address

Run

  • A dashboard to run it all: people, payments, messages
  • Replies your AI drafts, you approve
  • A page for each customer: what they’ve paid, their credits and activity, with export or erase on request
  • Every change on the record: who did what, and when
  • Nothing goes live without your approval

How payments work

Plans are paid through Stripe.

Powered by Stripe

Every plan includes hosting: a private preview while you build, then your live site once you go live, on up to 5 of your own domains. Build with ChatGPT, Claude or a coding tool on any plan.

Every app runs on the web, iPhone, Android and Mac.

Need more storage? Add 50 GB for $5/mo on any paid plan, pooled across your account.

Need more than 25 apps? Talk to us

Compare plans

Feature Build$0DevelopmentStart building Launch$29a monthGet Launch Run a business Recommended$79a monthGet Run a business Grow$199a monthGet Grow
Your account
Apps ⓘUp to 3Development onlyUp to 5Up to 10Up to 25
People & sign-in
Active people ⓘTest membersFair useFair useFair use
Sign-in by emailed code✓✓✓✓
Up to 10 devices per person✓✓✓✓
New-device sign-in alerts✓✓✓✓
Your site
Hosted site ⓘPrivate previewLive siteat your gemmein.dev addressLive siteat your gemmein.dev addressLive siteat your gemmein.dev address
Your own domain ⓘ—Up to 5per Live appUp to 5per Live appUp to 5per Live app
Versions, rollback and share links✓✓✓✓
Take your site offline any time✓✓✓✓
Site trafficFair useFair useFair useFair use
Data & files
Pooled file storage1 GBDevelopment50 GB+50 GB packs, $5/mo200 GB+50 GB packs, $5/mo500 GB+50 GB packs, $5/mo
Data rules in plain English✓✓✓✓
Files under the same rules✓✓✓✓
File deliveryFair useFair useFair useFair use
Payments
Payments into your own StripeTest mode✓✓✓
Another payment provider that signs its updates✓✓✓✓
Credits for AI features✓✓✓✓
AI
AI tools on your own keys✓✓✓✓
Your own pipeline as a provider✓✓✓✓
Chat, images, audio and video✓✓✓✓
Pooled emails sent a month—Development10,00024,00070,000
Build with your AI
ChatGPT and Claude, through the connector✓✓✓✓
Coding tools on your computer ⓘ✓✓✓✓
Run your business
Dashboard, Logs and Errors✓✓✓✓
Logs & audit history30 days30 days90 days365 days
“Powered by Gemmein” brandingShownShownShownRemovable
Support Inbox, with AI replies✓✓✓✓
Emails from your domain✓✓✓✓
Ask your AI, via the connector✓✓✓✓
A Live app on your own domain—✓✓✓
Security
Each person’s data, enforced on our servers✓✓✓✓
Live changes wait for your approval✓✓✓✓
Authenticator app for your account✓✓✓✓
Every sign-in and change in Logs✓✓✓✓
Encrypted in transit and at rest✓✓✓✓

Development has caps on emails, uploads and AI calls.

Security isn’t an upgrade. Every plan gets all of it.

Protected

  • Each person’s data, enforced on our servers
  • Your AI never sees your Live secret keys
  • Every Live change waits for your approval
  • New-device sign-in alerts for your customers
  • An optional authenticator app for your account
  • Abuse and brute-force protection
  • Encrypted in transit and at rest
  • Every sign-in and change on the record, in Logs

How we keep it safe →

Active people are fair use on every plan — there’s no visible limit; we’ll reach out long before it could ever matter. Your payment provider and your AI provider bill you separately.

11

Questions and fit

Is Gemmein the tool that builds my website?

No. Your AI builds the app. Gemmein hosts it, on your own web address if you like, and runs everything behind it: customer sign-in, payments, your data and the dashboard you run the business from. If your app already runs somewhere else, it can stay there and use Gemmein for the rest.

Can I use it for an existing app?

Yes. First ask your AI to read your code and check it against the Gemmein docs. Before it changes anything, it should tell you what would change, what data would move and any gaps.

Can I connect any payment provider?

Stripe is built in: subscriptions, one-off payments and credit packs, paid straight into your own Stripe account. Any other provider connects through an automation: when its signed webhook tells Gemmein someone paid, Gemmein unlocks what they bought. Webhooks are checked by their signing standard, as described under Relays. The signature recipe shows how to check a provider’s own webhook docs.

Can I run custom functions?

Not on Gemmein. Relays run Gemmein’s own actions. Your own code runs on your own server and asks Gemmein’s server API who a person is and what they can access. A relay can send a signed request to your endpoint.

What should I check before choosing Gemmein?

Gemmein is for apps where people sign in with an emailed code: on the web, on iOS and Android through the Expo entry, and on iOS and the Mac through the Swift package. Social sign-in, dedicated Kotlin/Java SDKs, staff accounts and team seats are not available. You can sell digital products and subscriptions. Credits are prepaid. Each AI tool has its own credit price: per call, or per unit the provider meters, such as 1,000 tokens, an image or a second of audio. Postpaid token-based invoicing is not included.

Can I email everyone who uses my app?

Your app code or a relay can email one person at a time, with replies in the Inbox. Broadcasts and group sends are not available. Check the email guide and sending limits when you design your app.

Go deeper in the documentation

Add Gemmein to your AI. Then tell it what you want.

Building is free. No card until you go live.