Skip to content
PeakUp ikonuClient work2026

PeakUp

Fitness studio management and member tracking in one app.

iOSAndroidWeb
Let’s build something like this
PeakUp interface 1
PeakUp interface 2
AppAMG / 26
Project
PeakUp Training Studio
Our role
Product · Mobile development · Admin panel · Release
Duration
3 months

01 / Behind the product

A real need. A considered solution.

01

Challenge

The studio’s live app was unusable; bookings ran over messaging, payments and measurements were tracked by hand. The client handed over a 19-item request list and treated every item as an acceptance criterion: trainer ratings, bulk messaging, a six-stage analysis, post-tax figures, cancellation reasons, package-expiry reminders and more. A rewrite from scratch, keeping only the logo and colours from the old code.

02

Approach

Member, trainer and owner experiences live in one Expo app, with a Next.js 16 panel for the owner. A shared package carries zod schemas and business rules (VAT, absences, package deductions), so client and database validate the same rule. Cash payments carry no VAT, POS payments a panel-configurable 20%. The six-stage analysis is a flexible template: stages and fields are edited from the panel without code changes.

QR class check-in, a document gate that blocks package purchases without a tablet-signed contract and PAR-Q, automatic class closing, AI member summaries and reports, automatic messages: 15 Edge Functions. Europe/Istanbul in every layer; cron jobs and triggers authenticate Edge Functions with a shared secret.

03

Result

Live on iOS and Android as the 2.0.0 update to the existing store listing. 36 database and RLS tests, contract checks and unit tests run under one pnpm dogrula command; nothing deploys unless it is green. The closing audit was run by seven independent reviews, and no finding was closed without a test written to catch it.

03 / Scope & details

The details make the experience.

  • 01

    Member, trainer and owner in one app; 19 client requests as acceptance criteria

  • 02

    QR class check-in, signed contract and PAR-Q document gate

  • 03

    Six-stage analysis template and an exercise library

  • 04

    Cash / POS payment split with panel-configured VAT

  • 05

    36 database and RLS tests, 15 Edge Functions

Class schedulingMember & package managementWeekly class calendarSession bookingMeasurement & package tracking

Technology

React NativeExpoTypeScriptNext.jsSupabase

INSIDE THE PRODUCT

The engineering behind the interface.

Systems we built and concrete problems we addressed in this project.

01

Business rules in one package, validated in two places

@peakup/shared carries the VAT, absence and package-deduction rules; the same rules are also enforced by database CHECK constraints and rules_test.sql. The closing audit found the VAT rate validated in no layer at all, and it was closed in three layers at once.

02

The document gate

belge_kapisi_baslangic takes now() at migration time: members registered before it are exempt, later ones cannot buy a package or class without a signed contract and a valid PAR-Q. Documents are sealed by belge-muhurle, the question dictionary is versioned, and a signed document stays bound to its version.

03

Cron → Edge shared secret and health

pg_cron and triggers authenticate Edge Functions with a shared secret in the x-peakup-cron header; edge_cagri_sagligi(24) reports the last 24 hours of 401/5xx and the panel’s system status card shows the same data. Missing vault secrets make cron jobs throw; nothing dies silently.

Your idea could be next.

What could we build for you?

From a first release to a growing platform. Let’s plan the design, development and launch together.

Tell us about your project

From Türkiye to the US, UK, Australia and everywhere in between.