Kinori LabsRequest a slot

Services · Mobile

Mobile apps for App Store and Google Play.

We design, build, and submit iOS and Android apps for founder led teams. React Native and Expo by default, native Swift and Kotlin when the product calls for it. One slot per app, six apps at a time across the studio.

What we ship in every mobile app

Sign in flow with email and a single OAuth provider, sized to the audience. Subscriptions through StoreKit 2 and Google Play Billing, wrapped in RevenueCat for entitlement state. A paywall that has been A/B tested against at least two variants before launch. Push notifications wired up with deep links into the right screen. Offline first storage where the product needs it, with conflict resolution thought through before the schema is locked. Crash reporting via Sentry, analytics through PostHog or a similar product instrumentation tool. App Store Connect and Play Console handed over to you, not held hostage.

We do not ship MVPs that "we will harden later." The harden later step is what kills consumer apps. The first build either survives a 4.5 star review bar or it does not ship.

Our default stack

Expo SDK 54 or newer with the new architecture, React Native 0.81 plus, TypeScript strict mode, Zustand or Jotai for client state, React Query for server state, Reanimated for any animation past a fade, and Tailwind via NativeWind where it makes the team faster. EAS Build for binaries, EAS Update for over the air JS bumps with proper channel separation between staging and production.

On the backend we typically pair the app with a Next.js and Supabase stack for auth, storage, and the API. If the app needs heavy real time features we add a small Node or Elixir service for socket handling. We do not ship Firebase by default because the lock in cost shows up later than founders expect.

When to use Expo vs native Swift and Kotlin

Expo for 80 percent of consumer and B2B mobile apps. The new architecture has closed most of the historic performance gap, EAS Build removes the worst of the Xcode and Android Studio pain, and OTA updates let you ship JS only fixes inside a day. Drop to React Native bare when you need a custom native module that does not exist in the community. Move to native Swift or Kotlin when the product is camera heavy, ARKit dependent, or has background work that fights the cross platform abstractions.

A subscription wellness app: Expo. A B2B field tools app with offline sync: Expo. A live video editor: native. We will tell you which bucket you are in on the first call.

How the slot engagement works

One slot per app. Each slot runs ten to sixteen weeks depending on scope. You get a dedicated product lead, a senior mobile engineer, and design hours folded into the build. We do not run more than six slots at a time across the studio. The current intake closes at the end of Q3 2026.

Payment is cash, equity, or a blend. We agree on the shape on the first call. There is no agency markup, no account manager layer, and no perpetual retainer after the app ships. If you want ongoing iteration we discuss a separate steady state engagement when you are ready.

What we do not do

Games. Crypto wallets. Regulated medical apps that need FDA clearance. Apps where the entire pitch is "AI but on phones" without a real user problem behind it. Anything that requires us to put our logo on a portfolio page. If your idea is outside that list, the form below is the right place to start.

FAQ

Common questions

React Native, Expo, or native?+

Default to Expo with the new architecture enabled. Drop to React Native bare workflow when we need custom native modules. Use native Swift or Kotlin only when the app has heavy platform specific work like ARKit, advanced camera pipelines, or specific background processing requirements.

Do you handle App Store and Play Store submission?+

Yes. App Store Connect setup, screenshots, privacy nutrition labels, age rating, Play Console setup, data safety form, and the first two review cycles are part of the engagement.

What about subscriptions and paywalls?+

We ship subscriptions through RevenueCat by default. It removes a class of bugs around StoreKit 2 and Google Billing edge cases and gives you a reliable subscription event stream. Paywalls are built in app, not through their hosted templates.

How long does a typical mobile app build take?+

A focused v1 with auth, subscriptions, push notifications, and three to five core screens takes ten to fourteen weeks. Larger apps with offline sync, complex onboarding, or social graphs take longer.

Do you support both phones and tablets?+

iPhone and Android phones by default. iPad and Android tablet layouts are scoped per project. We do not ship a tablet layout unless the product needs one.

Related

Keep reading

Next step

Building a mobile app this year?

Tell us what you are shipping, which platforms, and when you want it live. We reply from a real inbox within two business days.