Skip to content

Service

AI features users actually keep using

An assistant inside an app is a streaming interface, a backend that holds the keys, and a cost model that survives real usage. I have shipped that to hundreds of thousands of users and then rebuilt the backend behind it.

What this covers

  1. Streaming chat interfaces

    Token by token rendering, stop and retry, markdown and code blocks, conversation history that survives a bad network.

  2. Images and documents

    Image generation and analysis, document summaries, and the upload and progress handling around them.

  3. Server side that holds the keys

    Cloud Functions or a similar backend so provider keys never sit in the app, with server-sent events for streaming.

  4. Cost and abuse control

    App Check, rate limits and server-side purchase validation, so the bill follows paying usage rather than whoever finds the endpoint.

How we work

  1. Decide what the assistant is for

    One job it does well beats a general chat box nobody opens twice.

  2. Build the thin path first

    Prompt, backend and streaming interface end to end, before features pile up around it.

  3. Then harden it

    Abuse protection, quotas, purchase validation and monitoring, once the feature is worth protecting.

Where I have done it

  1. Oi AI Assistant, 225K+ users

    Freelance iOS developer on the app: streaming chat, image generation and multilingual support, for an app with 225K+ users authenticated through Firebase.

  2. Security review and new backend, 2026

    A security review followed by a Cloud Functions backend for the iOS and Android apps: server-sent events, App Check, server-side StoreKit 2 and Google Play Billing validation, and rate limits.

Questions I get asked

Which model providers do you work with?
The app should not care. The backend talks to the provider, so the model can change without shipping a new version of the app.
Can the keys stay out of the app?
They have to. Anything shipped inside an app can be extracted, so provider keys belong on a server that also enforces quotas.
How do you keep the cost predictable?
Rate limits per account, App Check so only your app can call the backend, and server-side validation of purchases before unlocking paid usage.

Related services

Have a project like this?

Book a 20-minute call and tell me what you are building. If I am not the right fit, I will say so on the call.

Book a 20-min call