How we work
A clear process, a senior team and engineering habits that keep products fast, secure and easy to change.
// Merchant app: refresh the order list the moment an order changesconst channel = supabase.channel(`orders:${storeId}`) .on('postgres_changes', { event: '*', table: 'orders' }, () => queryClient.invalidateQueries({ queryKey: ['orders', storeId] }) ) .subscribe()// Notify the rider assigned to the orderawait notify(rider.id, { title: 'New delivery job', priority: true })Our process
Six steps from idea to launch, and beyond
Select a step to see what happens and what you receive.
Step 1 of 6
Discover
We start by understanding the business: who the users are, what success looks like and what has to be true on launch day. You get a written scope you can hold us to.
What you receive
- Goals and success measures
- User roles and key journeys
- Written scope and milestones
Engineering practices
Habits that keep products healthy
The same practices run through every project we take on, from a company website to a multi-app marketplace.
Code review on every change
All work happens in Git. Changes are proposed as pull requests and reviewed before they are merged.
Separate environments
Development and production run on separate projects, so new work is proven before it touches live users.
Security in the data layer
Row-level security and role-based access are enforced in the database, not only in the app.
Secrets kept out of code
Keys and credentials live in managed environment settings, never in the repository.
Monitoring after release
Crash and error reporting with Sentry, so problems surface quickly and fixes ship fast.
Fast and accessible
Optimised images, lazy loading and accessible markup, checked on phones as well as desktops.
Technology
A modern, proven stack
Tools we use in production today. We choose what fits your product, not what is fashionable.
Mobile
- React Native
- Expo
- TypeScript
- TanStack Query
- Zustand
- React Native Maps
Web
- React
- Next.js
- Vite
- Tailwind CSS
- Material UI
- Framer Motion
Backend and data
- Supabase
- PostgreSQL
- Laravel
- Node.js
- Prisma
- Edge functions
Cloud and delivery
- Vercel
- Laravel Cloud
- GitHub
- App Store Connect
- Google Play Console
Integrations
- Firebase
- Sentry
- Stripe
- GCash and Maya (PayMongo)
- Charts and reporting
Working with us
What you can expect
Good software comes from good collaboration. Here is how we keep you in the loop from day one.
One point of contact
A named lead who knows your project and answers your questions.
Working software, early
You try real builds during the project, not only at the end.
Decisions in writing
Scope, priorities and changes are written down and agreed.
Your accounts, your product
Store listings, domains and cloud projects can be set up under your own company accounts.
Have a product in mind? Let’s build it together.
Tell us what you want to build. We will reply with next steps, a suggested approach and a timeline.