Kahero Apps

Timeline

Dec 2019, Initial Build

Jan 2020, Feature Growth & Iteration

Jan 2022, Stability & Maintenance

My Role

Main Developer

Overview

Kahero started as a point-of-sale (POS) system for small and medium-sized enterprises (SMEs). It was designed to simplify business operations for shops with limited resources — both financially and technically. What began as a lightweight alternative to bulky POS systems quickly evolved into a growing suite of tools for everyday entrepreneurs.

POS Interface

Screenshot from the Google Play Store listing. All rights and trademarks belong to their respective owners.

Download on the Play StoreDownload on the Apple Store

Purpose & Context

Our initial goal was simple: make sales processing reliable and accessible — even in places with weak internet connectivity. The first version of Kahero tackled that with an offline-capable POS, Firebase-backed data, and a mobile-first experience.


But as real customers began using it, the feedback pushed us further.

They wanted:

  • Deeper business insights
  • Inventory flexibility
  • Employee accountability
  • Online selling channels

Kahero started to shift — from a POS app into a business operations platform.

Product Expansion

📊 Kahero Analytics

For many shop owners, printing receipts wasn’t enough — they needed visibility. What’s selling, what’s stalling, and what inventory is running low?

To solve that, we built a companion app — Kahero Analytics — connected to the same Firebase project. It visualizes daily sales, product performance, and revenue breakdowns.

Analytics Interface

Screenshot from the Google Play Store listing. All rights and trademarks belong to their respective owners.

Download on the Play StoreDownload on the Apple Store

🕒 Shift Management + Time Tracking

Employees could clock in and out, but owners had no easy way to match that against shift schedules. We expanded the employee module into a shift management system that tracked scheduled vs. actual hours worked — complete with summaries.

We used Firebase Auth for role separation, and Firestore rules to ensure data privacy between roles.

🧮 Inventory Bundling

For businesses dealing with raw ingredients (e.g. cafés, restaurants), we introduced inventory bundling — allowing items to be composed of smaller tracked units (like 1 burger = 1 bun, 1 patty, 1 sauce). This let them auto-decrement stock as bundles were sold.

💸 Money Manager

Some users asked for a way to track expenses and revenue outside the POS flow — petty cash, supply purchases, delivery fees. So we added Money Manager, an income/expense tracker that integrates with the same business profile.


It let owners quickly see where their profits were going, without needing to leave the app.

Money Manager Interface

Screenshot from the Google Play Store listing. All rights and trademarks belong to their respective owners.

Download on the Play StoreDownload on the Apple Store

🛒 Online Store + SMS Ordering

During the pandemic, physical selling slowed. We responded by building a simple online store experience, directly integrated with their existing product catalog.


Customers could order via a unique link, and they would receive an SMS confirmation on their phone.

My Role

I was the main developer across the suite:

  • Flutter for mobile apps
  • React for the web-based back office
  • Firebase as the real-time database and auth backend


I designed and built flows for:

  • Checkout
  • Shift tracking
  • Inventory and bundles
  • Analytics dashboards
  • Online store order processing


I also handled CI/CD for releases and internal testing pipelines with Codemagic.

Challenges & Solutions

🔄 Offline Support

Some stores operated in areas with intermittent signal. I used Firebase’s offline capabilities and transaction queuing to ensure sales could be recorded offline and synced automatically later.

🖨️ Thermal Printing

We had to support a wide range of thermal printer models, many of which caused instability and crashes. I forked the original Flutter plugin and rewrote parts of the Android native code and Dart logic using method channels, leading to significant improvements in stability and print performance.

👥 Multi-role Access

Managing access across different roles — like owners, cashiers, and inventory staff — was a challenge. Instead of setting up individual accounts and emails for each user, we let store admins register employees directly in-app and assign them unique PINs. These PINs acted as lightweight credentials, streamlining login and permission control.

Outcome

  • Kahero suite is actively used across the Philippines and expanding.
  • Helped SMEs reduce sales reporting time by 60%+.
  • Sales report and shift tracking became the top-requested features.
  • Offline-first architecture increased reliability in remote areas.

Lessons Learned

This wasn’t just a POS app. It became a toolkit for small businesses trying to digitize.


I learned how to:

  • Listen to user pain points and design features around real workflows
  • Balance Firebase performance with cost and reliability
  • Build a product that grows organically based on feedback

It also shaped how I think about frontend roles — not just writing UI, but deeply understanding the problem you're solving.