All products

Our products

Prompzy. Designed, engineered and operated by Vervain Tech.

Prompzy is a Vervain Tech Ltd product, taken in-house from concept to public release on Google Play and the App Store. It is a live, multi-platform marketplace with real-time scheduling, card payments and merchant payouts, and it demonstrates the standard of engineering we bring to every client engagement.

Prompzy app icon
A Vervain Tech product

Prompzy

Book appointments and shop local, anywhere in the world.

AndroidiOSWeb7+ languages
QR code linking to https://prompzy.comScan to open Prompzyprompzy.com
3Platforms from one Kotlin Multiplatform codebase
7+Languages, including right-to-left Arabic
2Business models: service shops and product shops
GlobalLocal-first marketplace with worldwide reach

The problem

Independent businesses still take bookings by phone and message, and sell only to passing trade. Customers ring round for availability, wait for replies, and have no reliable way to discover, trust or pay small sellers beyond their own street. Booking and shopping live in separate apps, and the tooling that large retailers take for granted is out of reach for a barbershop, a clinic or a corner shop.

The solution

Prompzy brings services and products into one marketplace. Customers book any professional against live availability, reschedule or cancel in a tap, and shop real businesses near them or worldwide with secure card payment, collection or delivery, order tracking, deals and loyalty rewards. Businesses get a complete storefront: services, products and inventory, staff and schedules, bookings, payments, deals and transparent payout tracking.

Why it matters to clients

Prompzy is a production system, not a demo. It proves that we can take a product from discovery and design through multi-platform engineering, payments integration, store compliance, release automation and live operations. The same team, practices and platform choices are available for your project.

Sectors served

Two shop types, service-based and product-based, cover the full spectrum of local commerce.

Personal care and wellbeing

Barbers, hair and beauty salons, nail and grooming studios, massage, fitness trainers and gyms.

Health and clinical

Dentists, clinics, physiotherapists, pharmacies, vets and pet groomers.

Trades, repair and automotive

Mechanics, electricians, plumbers, gas and lift engineers, phone, computer and appliance repair.

Professional and creative services

Tutors, photographers, tailors, cleaners, caterers and event professionals.

Food and grocery retail

Mini marts, supermarkets, grocers, butchers, bakeries, farm shops, farmers and producers.

General and specialist retail

Electronics and phone shops, clothing and modest-fashion boutiques, hardware, florists, bookshops, beauty suppliers.

Independent sellers

Sole traders and micro-businesses selling to a local or global audience without their own e-commerce stack.

Multi-site and staffed businesses

Team and enterprise plans with per-provider calendars, delegated collection and staff payment routing.

Architecture and design patterns

The engineering practices that keep Prompzy maintainable at scale, and that we apply to client systems.

Clean, multi-module architecture

Presentation, application, domain and data layers in separate Gradle modules with shared business logic across Android, iOS and Web. Feature modules own their screens and contracts; platform code is limited to thin adapters.

MVI with unidirectional data flow

Every screen has an explicit State, Intent and Effect contract. ViewModels reduce intents to immutable state, side effects are typed, and Compose renders from a single state object, which makes behaviour predictable and fully testable.

Offline-first, write-through caching

Reads come from a local Room database first, with delta sync against the backend using last-updated timestamps. Every mutation writes through the cache before reporting success, so the app stays fast and consistent on poor connections.

Repository and data-source pattern

Remote and local data sources sit behind repository interfaces injected with Koin. Platform-specific SDK failures are translated at the boundary into a typed domain error vocabulary, with no catch-all exception handling in business logic.

Denormalised, scalable data model

Firestore documents are shaped for the queries the app makes. Server-side fan-out keeps denormalised copies consistent, composite indexes are versioned with the schema, and a cross-repo schema contract keeps client and backend aligned.

Documented decisions

Architecture Decision Records cover offline caching, Stripe separate charges and transfers, and notification orchestration. Runbooks, go-live checklists and per-feature smoke-test documents accompany every release.

Testing strategy

Quality is enforced as a policy, not left to chance. A feature is not done until its tests pass.

Unit tests

Every ViewModel, mapper, use case and pure function has unit tests targeting 100% line and branch coverage, including empty, null, error and concurrency edge cases. Coroutine flows are asserted with Turbine; dependencies are mocked with Mokkery.

Integration tests

Repository, cache and sync paths are tested end to end against in-memory databases and backend emulators, covering delta sync, write-through invariants and cross-user data isolation.

Instrumented UI tests

Every UI surface has Compose UI tests on real Android devices and emulators with mandatory full coverage of its states, plus Espresso where platform views are involved.

Smoke and contract tests

Each feature that crosses the backend boundary ships with a smoke-test document defining its input and output contract, executed against the test environment before release.

Adaptive and accessibility checks

Screens are verified across phone, tablet, foldable flip and book postures, in portrait and landscape, in light and dark themes, and in right-to-left languages.

Continuous integration

Lint, static analysis, unit and instrumented tests run in GitHub Actions and Bitbucket Pipelines on every change. Fastlane builds signed releases and uploads them to both stores, with Crashlytics monitoring in production.

Architecture and technology

Every item below is in production in Prompzy today. This is the platform expertise available to our clients.

Client platforms

  • Kotlin Multiplatform
  • Compose Multiplatform
  • Android
  • iOS with Swift interop
  • Web via Kotlin/Wasm
  • Desktop (JVM)

UI and design system

  • Material 3 Expressive
  • Adaptive layouts and window size classes
  • Navigation 3
  • Foldable and large-screen postures
  • Localisation, 7+ languages, RTL
  • Accessibility

Application architecture

  • Clean architecture, multi-module
  • Koin dependency injection
  • Coroutines and Flow
  • Ktor networking
  • kotlinx.serialization
  • Room and SQLite offline cache
  • Encrypted preferences

Backend and data

  • Firebase Authentication
  • Cloud Firestore with security rules
  • Cloud Functions in TypeScript
  • Cloud Storage
  • Supabase
  • Cloud Messaging push
  • Google Maps Platform geocoding and distance

Payments and commerce

  • Stripe Payments
  • Stripe Connect payouts
  • Subscriptions and tiered plans
  • Refunds and split settlement
  • ML Kit QR scan-to-collect
  • Deals and loyalty engine

Quality, security and delivery

  • Unit, integration and instrumented tests
  • Crashlytics monitoring
  • App Check and biometric sign-in
  • Fastlane release automation
  • GitHub Actions and Bitbucket Pipelines
  • Store listing and compliance kits
PaymentsCard data handled by Stripe. No card numbers touch our servers.
PrivacyPublished privacy policy, account deletion flow and App Store nutrition labels.
SecurityFirestore rules enforced server-side, App Check, encrypted local storage.
OperationsCrash reporting, release runbooks, go-live and smoke-test checklists.