One builder,the whole stack.

I'm Piniel Chitemere. I design, build and run apps, marketplaces and audio tools, from the sketch to a live domain.

Built with

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Vite
  • Vercel
  • Expo
  • Kotlin
  • Progressive web apps

Eleven products, built and still running.

Every one is live, and every one was designed, written and shipped by me. Point at one to see it in colour, or open it for the whole story.

How the work gets made.

None of it is a mockup. It takes payments, syncs in real time, sends push notifications and runs on back offices I wrote, and I am the one who answers when something needs fixing.

  1. Design: It starts as a question.

    Who is this for, what do they already do about it, and what would make the switch worth making? Nothing gets drawn until that has an answer. A beautiful interface over the wrong idea is still the wrong idea, and it costs the most to find out last.

    • The problem, in one sentence
    • The screens that carry it
    • The name, the type, the colour

    Six identities, one family

    Wireless#7A3EF0
    Fresh#16A34A
    Beverages#D97706
    Motors#1D4ED8
    Eats#EA580C
    Mart#0D9488
  2. Build: One file at a time.

    The schema first, then the parts I am least sure of, then everything that hangs off them. No mock data and no placeholder copy: every screen is wired to the real database from the first day, so there is never a week spent making the demo true.

    • Schema and row level security
    • The hard parts first
    • Real data from day one
    schema.sqlsupabase/
    alter table public.orders enable row level security;
    
    create policy "customers create own orders"
      on public.orders for insert
      with check (user_id = auth.uid());
    
    create policy "read own orders or admin reads all"
      on public.orders for select
      using (user_id = auth.uid() or public.is_admin());
    
    create policy "admins update orders"
      on public.orders for update
      using (public.is_admin())
      with check (public.is_admin());
    

    The database refuses a write the app forgot to check.

  3. Ship: A live domain, not a demo.

    It goes out taking payments, sending mail, landing push on the right phone and reporting its errors somewhere I actually read. Launch is the day a thing starts being used, which is a long way past the day it starts working.

    • Real payments, real mail
    • Errors reported, not guessed
    • A domain of its own

    CTRL 0.1.0

    Released 6 October 2026

    • CTRL-Windows-Setup.exesha256 d061551bcb9bf501…97.9 MB
    • CTRL-Android.apksha256 16575029a95b288f…37.6 MB
    • CTRL-Android-32bit.apksha256 eb28c23eaa8c9e8a…35.0 MB

    The download links and the checksums on the site come from one release file, and the build fails if the two ever disagree.

  4. Run: The part after the launch.

    Every product on this page is still running, still being used and still being changed. I answer the support myself, which is how I find out what the next release is, and none of it gets handed to anybody.

    • Support answered by me
    • Watched, measured, fixed
    • Still shipping

    Every store answers from its own address

    hello@ctrl@wireless@fresh@beverages@motors@eats@mart@One inboxread and answered by me

    Mail to any address at chitemere.co.zw lands in one inbox, filed under the store it was sent to, and the answer goes back from the same address.

Let's build something. I answer everything.

A product you want made properly, a question about one of mine, or just hello. Write here, or use whichever of these suits you.

Piniel Chitemere

Piniel Chitemere

Independent software designer and developer

Live right now

Checking…

  • ctrl.chitemere.co.zw···
  • wireless.chitemere.co.zw···
  • amari.chitemere.co.zw···
  • app.chitemere.co.zw···
  • pinacel.chitemere.co.zw···
  • trooper.chitemere.co.zw···
  • pnkey.chitemere.co.zw···
  • signalscout.chitemere.co.zw···
  • wayfarer.chitemere.co.zw···
  • fresh.chitemere.co.zw···
  • rute.chitemere.co.zw···
  • beverages.chitemere.co.zw···
  • motors.chitemere.co.zw···
  • eats.chitemere.co.zw···
  • mart.chitemere.co.zw···

Timed from your browser.

Send a message

Goes straight to me. No list, no newsletter.

What is it about?

An address I can reply to, please.

A line or two about it is enough.