Two apps live on Google Play

We build the apps small teams are told they can’t afford.

Leet Folks is a product studio in Agadir. We write one Kotlin Multiplatform core and ship it as a real Android app and a real iOS app — then take it through the store review, the privacy policy and the release track. When the work is on the web instead, it is Next.js, and it is fast.

3Apps built
2Live on Google Play
5Client engagements
18Modules in our largest app
30.4278° N, 9.5981° WGMT+1Scroll
01 — Products

Three apps we designed, built and published ourselves

They are how we learned what actually survives a store review — and what a codebase has to look like to still be pleasant at version four.

01 / maklafitOn Google Play

MaklaFit

Android · iOScom.leetfolks.maklafit

Nutrition and training, tracked in the language people actually eat in.

A calorie, macro and workout tracker sharing one Kotlin Multiplatform core across Android and iOS. Meals are logged against a 454-ingredient catalog searchable in English, French and Darija; packaged food resolves by barcode through CameraX and ML Kit.

Shared coreModels, repositories, database, network clients and every view model compile for both platforms; each app draws its own screens.
Ingredient builderCompose a dish from the catalog, weigh each line, set servings — calories and macros are derived rather than typed.
Maintainer toolingAn OCR capture tool for authoring the catalog ships only in debug builds, so release APKs carry neither its model nor its key.
  • Kotlin Multiplatform
  • Compose Multiplatform
  • SwiftUI
  • Room 3
  • Ktor
  • Koin
  • CameraX
  • ML Kit
MaklaFit daily dashboard showing calories, macros, water and body compositionMaklaFit meal logging screenMaklaFit progress and analytics screen
02 / nokhbaOn Google Play

Nokhba Player

Androidcom.leetfolks.nokhba

A million-channel IPTV player that refuses to run out of memory.

Conventional M3U parsers load the whole playlist into RAM and die somewhere past a hundred thousand channels. Nokhba streams entries straight into SQLite in bounded batches with a custom Okio parser, then pages them onto the screen — playlists past a million items scroll without lag.

Zero-OOM parserMulti-gigabyte M3U/M3U8 playlists parse without ever holding more than one chunk in RAM.
Every protocolHLS, DASH, SmoothStreaming, RTSP, MPEG-TS and progressive HTTP, plus first-class Xtream Codes login.
Instant searchSQLite FTS4 returns matches across hundreds of thousands of rows in under a millisecond.
  • Jetpack Compose
  • Hilt
  • Room + FTS4
  • Paging 3
  • Media3 ExoPlayer
  • Okio
  • OkHttp 5
  • Coil 3
Nokhba Player feature graphic
03 / rokhsatiIn development

Rokhsatiرخصتي

Android · iOScom.leetfolks.rokhsati

The Moroccan driving licence, taught and examined on a phone.

Exam preparation built to the NARSA curriculum: official training axes and chapters rendered by a block engine, driving lesson video with offline caching, and timed mock exams with scored explanations — fully bilingual in French and Arabic, right-to-left included.

Block content engineHeadings, rich text, tables, callouts, images, video and ad slots render from structured content rather than hardcoded screens.
Genuinely bilingualFrench and Arabic are parallel content tracks, with layout direction flipping to match.
Exam simulationTimed quiz sessions, scored results with answer explanations, and a history log that tracks improvement.
  • Kotlin Multiplatform
  • Compose Multiplatform
  • SwiftUI
  • Media3
  • Firebase
  • Google Mobile Ads
Rokhsati app icon

Screens under wraps until release

02 — Clients

Accountants, farmers, hoteliers, agencies

Different businesses, same brief: make it work, make it fast, make it yours to maintain.

01
FOMACOPAgriculture & export · Morocco

Rebuilt the corporate site off an ageing WordPress install, then migrated the hosting and closed out the findings from a full security pass — WPScan, SSL and network scans included.

Site rebuildHosting migrationSecurity audit
02
MASDACAccounting & tax consultancy · Agadir

A bilingual-ready marketing site for a chartered accountancy practice — services, company formation, testimonials and contact — built on the App Router with SEO and sitemaps wired in.

Next.jsSEOContent site
03
La Tour de ToileHospitality · Taroudant

A guesthouse site that had to sell the place: bungalows and suites, the infinity pool, Moroccan cooking and the Atlas view, shot and laid out for people deciding where to stay.

Next.jsPhotography-ledBooking funnel
04
YousMediaCreative agency

A portfolio platform for an agency that needed its own client work to look as good as the work itself — case studies, media handling, and the legal pages that come with running a real business.

Next.jsPortfolioStatic export
05
AtlasTechTechnology · Morocco

Brand and full-screen web experience, taken from identity design through to an interactive build.

BrandWeb experience
03 — Services

Four things, done properly

Rather than a list of everything we could theoretically take on.

01

Mobile products

One Kotlin Multiplatform core, two native front ends. Domain logic, persistence and view models are written once; Android gets Compose, iOS gets SwiftUI, and neither feels ported.

  • Kotlin Multiplatform
  • Jetpack Compose
  • SwiftUI
  • Room · Ktor · Koin
02

Play Store delivery

Getting an app finished is not the same as getting it published. We handle store listings, policy and privacy requirements, release tracks, monetisation and the review round-trips.

  • Store listings & assets
  • Policy compliance
  • Release tracks
  • AdMob integration
03

Web platforms

Marketing sites and content platforms on Next.js — fast, indexable, and handed over in a state your team can actually edit.

  • Next.js App Router
  • SEO & structured data
  • Content modelling
  • Vercel deployment
04

Rescue & hardening

Inherited a site nobody can maintain, or a stack that failed an audit? We take over legacy builds, migrate hosting, and fix what the scan report found.

  • Legacy migration
  • Security review
  • Hosting & DNS
  • Performance work
04 — Studio

How we work

Write the logic once. Draw the screens twice. Never ship a port.

The rule the studio runs on

Split the app before writing it

Cross-platform usually means one app and one compromise. We split it differently: models, repositories, the database, the network clients and every view model live in shared Kotlin and compile for both platforms. The screens are then written natively — Compose on Android, SwiftUI on iOS — so neither app behaves like a port of the other.

Settle the hard parts early

A playlist parser that streams into SQLite instead of into RAM. An ingredient catalog searchable in Darija, because that is what people actually type. Content stored as structured blocks so a curriculum can be edited without shipping a build. These are the decisions that decide whether an app is still good at version four.

Take it all the way through review

Finished and published are not the same milestone. Store listing and assets, the policy and privacy requirements, the release tracks, the monetisation, and however many review round-trips it takes — that is part of the job, not an afterthought handed back to you.

Hand over something you can build

Small engagements with one person accountable, and repositories your team can clone and build on day one. No private keys living on our laptops, no step that only works if we run it.

Got something that needs building?

Tell us what it is and roughly when you need it. We answer every message, and we will tell you plainly if we are not the right studio for the job.

Start a projector write to us directly
[email protected]
Based in Agadir, MoroccoWorking in GMT+1Reply within one working day