Inspiration

Coffee shops look calm from the customer’s side of the counter, but behind every cup is a tightly connected production system. Ingredients must stay stocked, machines must remain productive, orders must keep moving, and every purchasing decision can create—or solve—the next bottleneck.

That tension inspired Tapuchino. I wanted to create a coffee-shop game where growth feels earned. Players begin behind the counter, grinding beans, brewing coffee, and serving customers themselves. As the café expands, they unlock new equipment and recipes, hire employees, train managers, and automate work they previously performed by hand.

The player’s role gradually changes from barista to business owner: first learning how every station works, then designing a café that can operate without constant intervention.

What it does

Tapuchino: Idle Cafe Tycoon is a cozy management game that combines an active production loop with idle automation.

Players can:

  • Grind beans, prepare drinks, and serve waiting customers.
  • Operate multiple machines simultaneously.
  • Identify and manage production bottlenecks.
  • Unlock 17 recipes supported by multi-stage ingredient chains.
  • Purchase and upgrade specialist café equipment.
  • Manage inventory, deliveries, and supplier contracts.
  • Hire employees and assign them to workstations.
  • Recruit and train managers to improve automation.
  • Complete goals and collect rewards.
  • Progress through 15 café levels.
  • Expand into cafés with distinct city identities.
  • Earn limited offline income while away.

Every product moves through a connected production chain. Ingredients are reserved as soon as a machine begins working, preventing the same resources from being spent twice. Each machine completes its cycle using elapsed-time calculations and produces its output exactly once—even when several stations are operating at the same time or the application resumes after an interruption.

Customers create demand, inventory limits production, and deliveries keep the café supplied. More advanced recipes earn greater revenue but require additional ingredients, equipment, and coordination.

The result combines the immediate satisfaction of running a busy service with the longer-term challenge of building an efficient, increasingly automated coffee business.

How I built it

I built Tapuchino with React Native and Expo, allowing me to share one codebase across mobile platforms while retaining access to native integrations.

The gameplay simulation is implemented as pure TypeScript and kept separate from the interface. Production, customer demand, resource flow, rewards, progression, staff automation, and offline earnings can therefore be calculated deterministically and tested without rendering the game.

The project uses:

  • Zustand as a single sliced state store.
  • MMKV for fast local persistence.
  • break_infinity.js for resources that can exceed ordinary number limits.
  • Elapsed-time calculations instead of counting timer callbacks.
  • Exactly two simulation ticks: production and economy.
  • Reanimated and Skia for responsive motion and game-feel effects.
  • Expo Updates with storefront-specific update channels.
  • Native integrations for analytics, crash reporting, notifications, advertising, reviews, and purchases.

Tapuchino currently supports game and store content across 23 locales. I also built automated publishing pipelines that validate localized descriptions, keywords, feature bullets, screenshots, feature graphics, icons, and store-specific dimensions.

The same Expo project supports distribution through Google Play, the Apple App Store, RuStore, and the Amazon Appstore while preserving the configuration required by each storefront.

Challenges I ran into

One of the hardest problems was making concurrent production reliable. Every workstation must operate independently, reserve its required resources immediately, reject additional input while busy, and finish exactly once. This behavior must remain correct even when the application pauses, the device clock changes, or a timer callback arrives late.

Moving production rules into pure engine functions and deriving progress from elapsed time made overlapping machine cycles predictable and testable.

Offline progression created another challenge. I wanted returning players to feel rewarded without allowing offline earnings to replace active café management. Tapuchino therefore uses capped offline windows and reduced efficiency. Players can extend those windows through limited passes, but active play, equipment upgrades, and careful production planning remain valuable.

Responsive layout was also demanding. Tapuchino presents workstations, inventory, customers, navigation, management tools, contextual panels, and animated feedback on devices with very different dimensions and aspect ratios. The production line still needs to remain understandable while management panels and overlays are active.

Multi-store distribution introduced a different kind of complexity. Google Play, the Apple App Store, RuStore, and Amazon have different requirements for billing, advertising, reviews, updates, metadata, and media assets. I created explicit distribution-aware configuration so that one storefront’s build cannot silently inherit another storefront’s behavior.

Localization also extended far beyond translated interface strings. Store descriptions, release notes, keywords, screenshots, feature graphics, and promotional assets all required localized content, correct dimensions, and automated validation.

Accomplishments that I’m proud of

I’m especially proud that Tapuchino’s café behaves as a connected system rather than a collection of unrelated buttons. Every action affects another part of the business, and every meaningful upgrade creates, reveals, solves, or automates a bottleneck.

Other accomplishments include:

  • Building a reusable workstation model for manual and automated production.
  • Supporting overlapping machine cycles without duplicate costs or rewards.
  • Expanding the game from a grinder, brewer, and counter into a multi-stage café economy.
  • Creating a clear progression from hands-on barista work to business management.
  • Implementing recipes, specialist equipment, staff, managers, suppliers, deliveries, goals, rewards, offline earnings, and multiple cafés.
  • Giving each city its own visual identity and café state.
  • Supporting game and store content across 23 locales.
  • Supporting multiple mobile storefronts from one Expo project.
  • Automating the validation and publishing of localized store metadata and media.
  • Building a high-signal test suite for gameplay, persistence, progression, timers, rewards, purchases, and storefront assets.

Most importantly, Tapuchino now delivers the transformation that originally inspired the project: players begin by preparing every cup themselves and eventually watch a business they designed operate on its own.

What I learned

I learned that idle mechanics are most satisfying when automation replaces work the player already understands. Hiring an employee feels more meaningful after the player has personally operated that employee’s workstation and experienced the bottleneck they resolve.

I also learned that bottlenecks provide a strong design language. An idle brewer, an overflowing queue, an empty ingredient slot, or a delayed delivery can communicate a problem without lengthy instructions. Upgrades then become understandable business solutions rather than arbitrary numerical increases.

On the engineering side, keeping gameplay logic outside React components was one of my most valuable decisions. Pure functions made resource flow easier to reason about and allowed me to test edge cases that would have been difficult to reproduce reliably through the interface.

Elapsed-time simulation proved equally important. Timer callbacks are not reliable clocks, particularly on mobile devices where applications frequently pause or move into the background. Storing timestamps and reconciling elapsed time gave me more predictable production and offline behavior.

Finally, I learned that mobile distribution is part of product development—not merely the final upload step. Storefront differences affect purchases, advertising, updates, reviews, localization, metadata, screenshots, and even which features should appear in a particular build.

What’s next for Tapuchino: Idle Cafe Tycoon

My next priority is to deepen and polish the progression from active barista to café manager. Employees, managers, training, automation, recipes, suppliers, offline earnings, and multiple cafés are already implemented. The next step is to make the choices within those systems more distinctive and strategically meaningful.

I plan to:

  • Expand and rebalance café progression.
  • Add stronger specialization and trade-offs to employees and managers.
  • Improve supplier, delivery, and inventory decisions.
  • Introduce more locations with distinctive visual identities.
  • Strengthen onboarding and make bottlenecks easier to recognize.
  • Add more animation, audio, and tactile feedback.
  • Continue improving localization and storefront support.
  • Use player feedback to tune pacing, rewards, and long-term goals.
  • Introduce an achievement system for production milestones, business growth, efficient management, and long-term mastery.

Built With

Share this project:

Updates

posted an update —

New version released (1.5.1)

  • Added new localizations, Mr. Luwak now speaks 23 languages.
  • Implemented new quick events - serve quickly and earn rewards.
  • Tablet scaling fixed
  • Added an ability to cancel contracts if you don't need them anymore
  • Cafe level-ups now show what is unlocked on a new level
  • Added city-specific recipes
  • Bug fixes

Log in or sign up for Devpost to join the conversation.

Submission history