Sizl: How we became the tech partner for the Chicago-based Dark Kitchen Network

About Project
This is the story of how to create a dark kitchen app for a fast-growing network offering food delivery and pickup in Chicago. It started with a complete rebuild of the existing platform and evolved into ongoing development of new features.
The product helped the company secure funding right after launch, and the company has continued to rapidly expand its coverage throughout the city. We're still actively involved in the development process, adding new features and ensuring the application runs smoothly and reliably.
Product Specifics
Dark kitchens are one of the fastest-growing segments in food tech. These are professional kitchen spaces without dine-in areas, designed exclusively for fast, streamlined delivery.
For customers, this means getting meals delivered in as little as 20-30 minutes. For businesses, the dark kitchen business model enables faster scaling, greater cost-efficiency, and the flexibility to quickly adapt to shifting demand. Kitchens are "dark" because they're not open to customers. Such apps allow users to order food online for delivery, without being able to walk into the restaurant.
According to Statista,the global dark kitchen market has already reached $58.61 billion, and by 2030, dark kitchens could account for up to 50% of the food delivery and drive-thru market.
Want to know more about 2025 food tech trends? Check out our full article
Goals and Solution
The first version of the Sizl app was built using Kotlin Multiplatform, a powerful but relatively uncommon technology that still lacks widespread library and package support. The change in CTOs also increased potential risks to product growth, including long-term maintainability, feature scalability, and quick iteration.
Our team was brought in to take on the challenge. Here's what we did:
- Rebuilt the entire dark kitchen app in React Native for better maintainability and faster feature deployment;
- Added two major features – Pick-up (for customer self-service orders) and Event Kitchen (for catering special event orders);
- Integrated analytics tools to provide visibility into user behavior and performance;
- Organized consistent design system;
- Adapted the platform to support multiple kitchen workflows, improving operational flexibility and conversion rates.
Find more formats to partner with our team
Key achievements
A few weeks after the new release, the Sizl team pitched the product to investors and successfully raised a seed round:
$3,6 M
total fundings
$12 M
post-money evaluation
Looking for a product team to bring your idea to life? Tell us about your project
How we met Sizl
We knew Alexey, Sizl's co-founder, before the project started. We interviewed him and planned to invite him to a roundtable discussion on food tech trends. Alexey had already successfully launched a large chain of Local Kitchen dark kitchens in a different region. His new project, Sizl, was developing quickly in the US market, but it encountered technical difficulties that could slow growth.
Looking for a team to rebuild Sizl, Alexey turned to our CEO, Maxim, for a recommendation. Since we had the necessary experience, food tech expertise, and technology stack, we agreed on terms and began developing Sizl.
Development Context
The beginning of development.
The state of the app
The Sizl team provided us with a fully functional backend and supporting documentation. Some background processes needed clarification, so we worked closely with the client to build a dark kitchen app.
From the beginning, the focus was on iOS, as the US market is primarily focused on this platform. We also completely reworked the design, because the initial version did not accurately reflect the app's actual functionality.
Development process
We gathered a team of three mobile developers to work on the project. One developer took care of the main tasks, while the other two joined us as needed. The team worked together on the main scope (menu and cart), which helped us consolidate all the expertise and knowledge on the project.
We organized the process according to Agile principles. First, we divided the functionality into four key epics: menu, authorization, cart, and support. Then, we broke them down further and prioritized them as user stories.
First, we rewrote the main user journey, from choosing a dish to placing an order. Other scenarios (such as password recovery or contacting support) were implemented later.
This approach helped speed up development and eliminate unnecessary steps. For example, we postponed editing the profile – the user can enter all the necessary contact information when placing an order.
In addition, by tracking story points, we knew exactly how much time was being spent on tasks of different sizes. This allowed us to regularly stay ahead of schedule and complete fixtures faster than planned.
Read more about our development approach
Common Monorepo
We use a monorepo for projects with multiple products and user roles. This structure works especially well for fast-growing ecosystems. That’s exactly what we set up at Sizl after the initial launch. The main customer app, the courier app, and the support tool all share a single codebase, yet they evolve independently.
Each app has its own folder, logic, and flows, but the architecture is unified. This setup enables us to reuse UI components, authentication logic, API integrations, and more. When a new feature is added to one product, it’s easy to adapt it for the others.
For instance, the upcoming support app will include a chat feature, and we will simply reuse the ready-made module from the customer app. The interface and logic will be the same, and we’ll be able to release it in just a couple of days.

This article goes deeper into how we structure monorepos
Design
Work on the application began with a complete redesign. There was no consistency between the mockups and the actual functionality: the interfaces in Figma often didn't match what the app had.
We updated the current screens and added missing states for checkout and display of the dark kitchen schedule, organized a full-fledged design system, and worked out the UX for two new features: self-checkout and event ordering.
We also created a guide for the dark kitchen marketing team on how to work with banners: we specified requirements for aspect ratio, text protection fields, and described complex cases where graphics and text are used together. See more of our UI/UX design cases here.
Core functionality
Let's take a look at the basic user flow, integrations with third-party services and ready-made solutions, as well as special features that make Sizl different from other dark kitchens.
Authorization

Delivery Time

Settings

Guest-mode
Previously, users had to register to access the menu, and the onboarding was complicated and overwhelming. We've simplified the process: with the "Explore Sizl" feature, customers can now browse the menu and explore popular items that are likely to be available at all stations.
It is not possible to place an order in guest mode. Users must choose the "Select delivery mode" option. At the same time, the delivery address can be specified even before registration, and after logging into the account it will be automatically retrieved and synchronized with the created account.
Delivery Format
There are two options available to the user for receiving the order – Delivery and Pickup. When selecting delivery, the system automatically calculates the approximate time based on the address provided and displays it at the top of the screen.
If the kitchen is already closed, the user will see this even before placing the order. He can also immediately switch to self-delivery mode and choose which address to pick up the purchase.
Analytics
To track how users download the app, we implemented scanning QR codes that contain links to UTM tags. A user is redirected to the App Store and downloads the app.
Here we use the Branch.io service to record the moment when the user clicks on the link and match it with the ID that appeared in the system after installation.
Then all the data from Branch.io is transferred to the Amplitude service, which is integrated with Meta Advertising Offices. This allows to track conversions across campaigns and understand exactly which channels are performing best. You can find more analytics collection tools we use in this article.

Foodclick: mobile app for reservations, pre-orders and cashless payments in restaurants
Read our case study on the development of the Foodclick
Kitchen
The menu is organized like a constructor: all dishes are grouped by categories called "shelves". For example, "Popular", "Breakfast", "Soups" and others. If the kitchen is temporarily out of service, the user will see a banner with a notification.
For some dishes there is a flexible customization. First, the user chooses the base, then adds additional ingredients, each of which affects the final cost. The system also offers upselling options, such as sauces, toppings, and other dishes that complement the main order.
Checkout
Once all the dishes have been added to the cart, the user has a few steps to go to checkout. In the US, it is common to leave orders at the door, so we have provided a separate field for comments and delivery requests.
Name and phone number are automatically taken from the account settings. Next, user needs to select the delivery mode: standard (no price is specified) or priority – with expedited delivery for $1. This is a little trick: in fact, both options are paid, but such a small difference in delivery motivates the user to choose the faster option, thereby increasing the average check. As a result, the customer gets a more convenient delivery format, and the business gets additional revenue.
When the kitchen is closed, the app displays the nearest available delivery time slot if a user tries to place an order.

Here you’ll find more nuances of food delivery app development
Additional Check
Because the availability of dishes in the Dark Kitchens format can change instantly, we added an additional checkout step immediately after a user confirms an order. The system sends a request to the backend. If some items are unavailable, a pop-up will appear with a list of unavailable dishes.
Sometimes users forget to update their address during checkout. That's why we send a warning if the current location differs by more than 500 meters from the location specified in the order.
More peculiarities of developing authorization and shopping cart update tools
Payment
To pay for an order, a user needs to link a card to the Sizl app. We also organized integration with Apple Pay to make the process as fast as possible. Users can also pay for part of their order with bonuses accumulated through the loyalty program.

In addition, we've added a separate screen with animation so the user can see that the payment is in process. There is also a cashless tipping option with fixed percentages to choose from.
Web payments. What do you need to know?
Read our articles about organizing online payments for your app
High Demand Mode
A special banner appears during peak hours to limit incoming orders and reduce the workload for kitchens and riders.

Delivery Status
Once the payment has been received, the user returns to the screen with the status. A map with the courier's movement is also displayed here, which is updated in real time.
If a user selects pickup, the app shows the distance to the station. When they arrive, they tap the "I'm here" button to notify the staff. Users can also choose to share their live location with the station for a smoother handoff.

Yapoki: mobile delivery app for the future of the Enterprise
Read our case study on app development for a fast-growing food delivery app
Event Kitchen
From yoga in the parks to festivals and large conferences, Chicago hosts many events every day. Together with Sizl, we have developed a special option for ordering food for attendees.
Event Setup

Ordering Meals

Order Pickup


Want to improve your app? Come for a consultation and we'll suggest ideas!
Max B. CEO
Menu Management
Menus are managed through the admin panel. Each station has a dedicated kitchen manager who can edit the menu categories, or product “shelves”. If certain ingredients run out, items can be instantly removed from the menu by marking them as out of stock.
Shelf Layout
Each station can customize the display of menu items: placing items side by side to encourage upsells, grouping sauces or sides with main dishes, or using different layout formats. For example, one card could be used for a breakfast builder, with smaller cards used for add-ons like sauces. The manager can also use filters to stimulate additional sales: when selecting the main dish, the user is automatically offered a drink that is most often ordered with it, based on analytical data.
Curated Dishes
The app’s home screen features collections curated by the station manager, such as "Popular," "New," "High Protein," "1+1," seasonal picks, and more.

Free Delivery Notification
When placing an order, users are shown how much more they need to spend to qualify for free delivery. This message appears automatically when the cart value nears the minimum threshold.
Promotions and Loyalty
We added several mechanics for promotions and bonuses to drive engagement and retention.
Discount Configuration

Emotica

Personalized Targeting
For marketing campaigns, we implemented push notifications with deep linking. When tapped, the user is taken directly to the relevant section of the app. Behind the scenes, we pre-process each push notification to verify if the offer applies to the user's selected kitchen. If the conditions match, the notification is shown, which improves targeting accuracy and reduces unnecessary notifications for users who wouldn’t benefit from the offer.

Additional Features
The role of gamification tools and customer support in ghost kitchen software.

Loyalty Program
Users receive 10% cash back on every order and can also participate in the referral program: points are awarded for invited friends and their first purchases. The accumulated points can be used to pay up to 50% of the cost of the next order.
For more loyalty program ideas and formats, click here.

Support Chat
Suggest point
If a user enters an address outside the current delivery zone, the app displays a screen with a button to submit a request to open a station in that neighborhood. This helps Sizl gather real customer demand data and prioritize where to expand next. As a thank-you, users will earn Emotica points for submitting a request.

Order Rating
After completing an order, users receive a push notification asking them to rate their experience across three categories: overall Experience, Delivery and Dishes. Each category can be rated from one to five stars. Based on the score, the app suggests specific areas for improvement. Users can also leave a comment, but all feedback is optional.

Testing
During the rebuild, we not only added new functionality, but also fixed many bugs that had accumulated in the previous version. For example, two images would come from the backend, but only one would be displayed. When selecting toppings and garnishes for dishes, some items were not displayed correctly.
Some parameters were ignored in the menu builder, which caused banners to not appear in the right sections or in the wrong colors. Push notifications did not arrive either. It turned out that the code on the iOS backend was written using different registers, which caused errors.
To track bugs, we connected Sentry. This service that logs all errors in the application. When a bug occurs, it is automatically registered in the system and the development team is immediately notified.
We talked about the importance of testing for mobile app development here
Used technologies
Frontend: React Native
Design: Figma
Additional services: Branch.io, Amplitude, Getstream.io, Sentry.io
Team






Timelines
The complete rebuild took 2.5 months. The menu and authorization modules were the quickest to rewrite. Most of the time was spent on the shopping cart logic. Another month was spent on full testing and debugging.
Over the next two months, we rolled out a major update to the app. We expanded the menu display settings, added the Giveaway section for Event Kitchen, and introduced Emotica points screens, promo configuration tools, full localization, and a number of other targeted improvements.
At the same time, we developed and released a separate riders app in just 2.5 weeks.
Now we are actively developing the product and working on a separate application for drivers. Implementing new features takes an average of 1-2 days. For a fast-growing company like Sizl, speed is critical. The company aims to reach a wide audience and optimize delivery costs, which directly affects revenue.
We are constantly looking for bottlenecks in the system and thinking through scenarios in which the application can best serve the needs of both the darkkitchens network and its users. All while minimizing the impact on the company's operational processes.
≈ 6
months
The essence of the project
Sizl is an example of dark kitsch with great potential that has every chance of expanding beyond Chicago to other cities and states in the US. As part of the project, we solved problems on three levels and provided various cloud kitchen benefits.
Business. We developed functionality useful to anyone working in the food delivery and subscription services industry. The application includes a convenient meal builder, combo sets, a quick checkout process, address management, a referral program, and gamification elements with built-in games.
Users. We created an intuitive app that allows users to order food quickly and effortlessly. The app is suitable for daily use as well as one-off orders, including event orders and corporate catering.
Technical team. We migrated the app from Kotlin Multiplatform to React Native, cleaned up the design layouts and built a stable architecture to provide a solid foundation for further development of the project. This allowed us to accelerate the introduction of new features.
The result is a flexible and scalable platform that supports rapid growth and business adaptation to changing market conditions.

Upcoming product enhancements
Here are some of the features we're currently working on
Group Ordering
Emotica rewards
Multilingual localization