03 Mobile applications

An app nobody opens twice is not a product.

  • React Native
  • Expo
  • TypeScript
  • GraphQL
  • Elixir

Getting into the stores is the easy part. Staying on the home screen means an app that launches instantly, works on a weak connection, and survives the next OS update.

Start a project

Why it gets uninstalled

  1. 01 Slow to start, so people go back to the website
  2. 02 Useless the moment the connection drops
  3. 03 The Android version is an afterthought of the iOS one
  4. 04 An OS update breaks it and the original developer is gone

You need one codebase that treats both platforms as first class, works offline, and is still buildable in two years.

What you get

01

iOS and Android, one codebase

Both platforms ship together from the same source, so a fix is one fix — not the same work done twice at twice the cost.

02

Works without a connection

Data is stored on the device and synced when the network returns, so a tunnel or a weak signal does not stop the app working.

03

Push notifications that arrive

Delivery handled as a background job with retries, so a notification is not lost because a device was briefly offline.

04

Still buildable in two years

Conventional tooling and pinned dependencies, so an OS update is a scheduled task rather than a rescue project.

How we build it

How we deliver it
React Native / Expo
One codebase producing genuinely native apps on both stores, with native modules where a feature actually needs them.
Offline-first data
The app reads from local storage first and reconciles with the server afterwards, which is what makes it usable on mobile data.
Elixir / Phoenix backend
Real-time updates and presence over persistent connections, so live features hold up when thousands of devices connect at once.
GraphQL
The app asks for exactly the data a screen needs in one request, instead of several round trips returning fields it will never display — which is what keeps it responsive on mobile data.
Automated store releases
Builds and store submissions run from CI, so shipping an update is routine rather than a day of manual steps.

When to bring us in

Every project starts with a scoping call
  • Your users are on mobile and the website is not enough
  • You need the app to work where the connection does not
  • You are paying for two teams to build the same app twice
  • Your app was built once and nobody can update it now
  • You need push notifications people actually receive
  • The app must talk to systems you already run

Put it in their pocket.

Tell us who uses the app and where they use it. That decides far more of the build than the feature list does.

Start a project hello@elixiria.ma
enfrar