Proposals answered within 2 business days
All case studies
Mobile appsAuditSecurity

Health app taken over, with a new product catalogue and 47 languages

Client: Health and nutrition startup, a subscription app on iOS and AndroidIndustry: Healthcare20 October 2026
Results
languages in the app
47
product search time in the new catalogue
2.3 s → 77 ms
downtime when moving production to the new release
11 s

Challenge

The app had paying users and was growing fast, while the previous contractor was leaving. The audit showed 8 backend outages in half a year without a single alert, no database backups, no tests or automated deployments, and no persistent logs, so server errors could not be investigated. It was not even certain which version of the code was running in production.

Users reported that the scanner and search did not find food, and former contractors still had access to the infrastructure.

Approach

We started with a read-only audit: app code, backend, server and payments. On that basis we arranged work packages in order of risk. We checked every claim from the audit before writing code. One of them, about missing refund handling, turned out to be false, so an unnecessary module was never built.

Production follows a simple rule: every change has a way back and a data backup, and we approve every operation separately. Measurements on the live database are made only in read-only transactions.

Implementation

We cut off the access of former contractors, took over the deployment repository and fixed a dozen server and API security problems. The audit of payments and login produced 24 reports, of which 6 were real after verification. Among them: registration in imperial units was practically impossible, and a network error logged out a paid account.

We rebuilt the product catalogue from scratch as our own index combining open food databases and reference tables, with Polish lemmatisation, synonyms and typo correction. We prepared the localisation into 47 languages with strict validation of keys, variables and plural forms.

Results

A product search that used to take over 2 s and gave a wrong result now takes 77 ms. The app runs in 47 languages. Moving production to the new release in August cost 11 s of downtime, and after the October release the server logged not a single 5xx error.

The backend has 859 tests and the app 2,530. In that time the base grew from about 700 users in May to over 10k accounts at the beginning of October.

How it is built

App
Flutter with Clean architecture and Bloc, subscriptions through RevenueCat, install attribution, notifications and crash reports in Firebase. Staged releases in the App Store and Google Play.
Backend
NestJS with Prisma and PostgreSQL, BullMQ queues on Redis, Docker containers behind Cloudflare. Database migrations are strictly additive, with a backup before every release and measurements taken in read-only transactions.
Product catalogue
A custom Elasticsearch index combining open food databases and nutritional reference tables. Polish lemmatisation (Morfologik), a PL-EN synonym dictionary and typo tolerance.
AI
Meal photo analysis by a vision-capable model, with cost limits and error monitoring. Data transfers outside the EEA are limited to the AI provider and described in the GDPR documentation.
Security
Former contractors' access revoked, dev and prod environment secrets separated, access control on admin endpoints and the queue dashboard, and fixes for findings from the server and API audit.
Testing and localisation
859 backend tests and 2,530 app tests, with an API probe before and after each release. Translations into 47 languages are checked automatically for a complete set of keys, variables and plural forms.

Technologies

  • Flutter
  • NestJS
  • Prisma
  • PostgreSQL
  • Elasticsearch
  • Redis
  • BullMQ
  • Firebase
  • RevenueCat
  • OpenAI
  • Cloudflare
Case studies

More case studies

Real estate

AI sales assistant platform for property developers, powered by live inventory

A chat on the developer’s website answers questions about available flats and prices using live data. In a test of 106 scenarios, the number of answers containing invented facts fell to zero.

View case study
Education and personal development

AI coach on WhatsApp with participant memory and handover to humans

A thirty-day programme run as a WhatsApp conversation, with the author’s knowledge base and a memory of each participant. AI resolved 92% of cases without human involvement, and difficult conversations went to the coaches.

View case study
Real estate

Sales and after-sales system for a developer, with 3D walkthroughs built from floor plans

An offer generator with open tracking, a defects dashboard with the statutory 14-day deadline, complaints with a phone line, and 360° walkthroughs generated automatically from floor plans for 81 of 82 flats.

View case study
Real estate

Automated system for statutory reporting of flat prices to dane.gov.pl

An audit of 612 files against the act and the ministry template, a fix to the generator at the source, and automatic upload of 409 overdue resources to a portal that has no write API.

View case study
Construction

Public tender analytics platform with a competitor relationship graph

The application combines data from the Public Procurement Bulletin, KRS, GUS and the VAT White List. It shows who is bidding, at what price and how they are connected, instead of manual searching before every tender.

View case study
Technology

Kubernetes platform with GitOps and image signing for 32 applications

We are moving several dozen applications from a single server to a Kubernetes cluster with Git-based deployments, a security policy and backups whose restoration we check every week.

View case study
Media

AI short-video factory with human approval in a mobile web app

Script, illustrations, voiceover, subtitles and render in a single pipeline. A person approves every episode in a phone app, and publishing runs in scheduled slots.

View case study
Customer service

Voice AI assistant for a helpline, with a custom audio pipeline for Polish

A phone line where the caller talks to an AI. We rebuilt the whole audio path so that conversation in Polish flows, and the system detects the end of an utterance by meaning, not by silence.

View case study
Hospitality

Video menu platform for restaurants with HLS streaming and QR codes

A guest scans a code at the table and sees short videos instead of a list of dishes, with no app to install. Video in three quality levels, data isolation for each restaurant and a database restore verified in practice.

View case study
Pharma

Analytics dashboard for a group of e-prescription online shops, with no patient data

The dashboard collects orders from many shops in real time, while patients' personal data never leaves the shops. Privacy by design from the first version.

View case study