
A home-cooked meals marketplace with Wolt delivery – selling your own food legally
Client: HomeChefs
Industry: Food Industry / FoodTech
We help catch bugs before release and reduce the risk of regressions. We write unit, integration and end-to-end tests for web and mobile applications, integrate them with CI/CD and run performance tests. We work with Jest, Cypress, Playwright and Appium, among others. If you need extra QA support, our testers can join your team directly.
Companies that trusted us
The basics
Automated tests are code that checks other code. Their purpose isn't to find bugs once — that's what people are for — but to make sure a bug that's been fixed doesn't come back, and that a change in one place doesn't break something elsewhere. The longer a product lives and the more people change it, the greater that value. Automation doesn't pay off everywhere. For a one-off campaign, a throwaway prototype or a screen that will change in two weeks, the cost of maintaining a test will exceed the benefit. Tests deliver the most where a bug is expensive and hard to notice: payments, permissions, calculations, integrations.
It's worth knowing the different types, because the cost depends on them. Unit tests check individual functions; they're fast and cheap to maintain. End-to-end tests go through the whole user journey in the browser; they give the most confidence and are the most expensive to maintain. A healthy test suite has lots of the former and few of the latter — the reverse ratio is a common and costly mistake.

Client: HomeChefs
Industry: Food Industry / FoodTech

Client: SkinApe
Industry: Entertainment / GameTech

Client: BlueApart
Industry: Food Industry / FoodTech
„Boring Owl met our expectations and delivered a high-quality frontend. We were impressed with the quality of the frontend delivered by a Boring Owl. It had very high google performance metrics and a general good feeling about UX.”
Jan Kamiński — VP of Sales, Applover
Review from Clutch
How we work
We start by analyzing the product, the deployment process and the places where a bug creates the greatest risk. Based on that, we set priorities — we don't write tests just to push up the code coverage figure. Then we choose the types of tests and the tools, prepare the first scenarios and integrate them with CI/CD. Tests can run automatically on code changes and before deployment, so the team learns about regressions sooner.
On your side, we need you to point out the business-critical processes and provide test data — ideally reflecting real cases, including unusual ones. On our side are choosing the tools, writing the tests, plugging them into the deployment process and maintaining them.
The timeline depends on the number of paths to cover and the state of the code — an application that's hard to test usually needs some small structural changes first.
Decisions
How much to test. We don't aim for 100% coverage at any cost. What matters more is whether the tests cover the areas whose failure would genuinely threaten the product or the business.
Proportions. Most tests should run close to the application logic, where they're fast and easy to maintain. We save end-to-end tests for the most important user journeys.
What about unstable tests? Flaky tests — tests that only pass some of the time — quickly erode the team's trust in the whole process. We diagnose and fix these cases instead of getting the team used to ignoring failures.
What not to do. Don't automate screens that are about to change. Don't test through the interface what can be checked at the logic level. And don't measure quality by the coverage percentage — measure it by the number of bugs that reached users.

Scope
We write unit, integration and end-to-end tests for web and mobile applications. We use Jest, Cypress, Playwright and Appium, among others, and integrate automated tests into the CI/CD process. Depending on the project, we also measure code coverage, prepare performance and load tests, and use TDD or BDD where they add real value.
If you need extra skills on your team, we can provide QA support on an outsourcing basis. The tester joins your processes and works alongside your development team.We write tests in TypeScript and recreate test environments in Docker — the same dependency versions as in production, with no "works on my machine".
Test pyramid
We build test suites following the test pyramid: lots of fast unit tests, a layer of integration tests and fewer end-to-end tests for the most important journeys, such as logging in, making a purchase, paying or submitting a form. We integrate tests with CI/CD so that every significant change can be verified before deployment. This way, the team learns about a regression while fixing it is still relatively quick and cheap.

Performance testing
We test performance with scenarios based on real traffic: the visit profile from analytics, the seasonal peak multiplied with a safety margin, measuring response times and how the database behaves under load. That's how we've prepared online stores for seasonal peaks — bottlenecks (N+1 queries, missing indexes, cache that needs rebuilding) show up in the test environment, where fixing them costs the least.
For front-end measurements, we use the same metrics as Google: LCP, CLS and INP on mobile devices. We catch performance regressions in CI before they reach users.
We report in a way that lets the issue be reproduced straight away — steps, environment, test data — and regressions go back into the automated suite so the same bug doesn't come back twice.
We design and develop custom solutions for restaurants, food manufacturers, restaurant chains and FoodTech platforms.
Food Industry / FoodTech ↗
FAQ

We design and build custom web applications - from an MVP that lets you quickly validate an idea to large platforms and systems developed over years. We build both the front end and the backend, APIs, databases, admin panels and integrations with external systems. We work with Next.js, React, Node.js, NestJS, Python, PostgreSQL and MongoDB, among others. We create solutions tailored to a specific business process: SaaS applications, internal systems, sales platforms, websites, marketplaces and CMS systems.
Learn moreWe design UX/UI for web and mobile applications and B2B systems - from analyzing user needs and early wireframes to the finished interface and a design system in Figma. We don't design screens in isolation from the product. We look at user journeys, analytics data and technical constraints to create a solution that's easy to use and can be built efficiently. After the product launches, we can come back to heatmaps, session recordings, analytics and user interviews, so that the next changes are driven by data, not assumptions.
Learn moreWe design and build online stores and e-commerce platforms tailored to your sales model and business processes. We work with off-the-shelf solutions as well as headless architecture and custom sales systems. We build e-commerce for B2C and B2B sales, large product catalogs, multiple markets and marketplaces. We integrate stores with ERP, WMS, CRM, PIM, payments and logistics, and design product configurators and custom purchase flows. We also take care of performance, technical SEO and preparing the platform for seasonal traffic peaks.
Learn more