00 · Hero
01 · frunt · main project
03 · Other work
02 · MGKFitness
05 · About
04 · How I work
06 · Contact

Matthew Kay

Kay
Matthew Kay357 × 446
frunt
The problem

Restaurants have their rules written down. Staff don't read them.

I saw it working behind a bar: training was a compliance module that ticked a box, and finding an answer meant flipping through spec sheets or asking a manager again.

What it does
  1. A manager uploads the documents the restaurant already has.
  2. frunt turns them into short courses on staff phones.
  3. Staff ask in plain words; every answer names the document it came from.

For independent restaurants · built and run solo · live since June 2026

frunthospitality.comOpen ↗
frunthospitality.com, the frunt website
Website · hover to scroll
frunt manager dashboard, home
Ask frunt: an answer about peanut allergen controls, citing three source documents
↑ Every answer cites its source
frunt documents library
frunt training courses
Manager web app · Home
01Ask

Staff ask in plain words, in the app or on WhatsApp. Every answer lists the documents it came from, so a manager can check it.

02Training

Short courses built from the restaurant's own documents, not a generic module. Each one finished is recorded, with the date it's due again.

frunt staff app, asking a question
frunt staff app, training
01Manager appLive

Documents in; cited answers and training out.

Next.js · Supabase pgvector · Claude · Inngest · Stripe
02Staff appLive

Ask, read, sign off and train from a phone, or ask on WhatsApp. On the App Store and Google Play.

Flutter · Firebase messaging
03WebsiteLive

Marketing site, pricing and ten UK-law guides, built to be found.

Next.js · structured data · llms.txt
04Admin consoleIn use

How I run the business: customers, revenue, AI cost per feature, health checks.

Stripe · PostHog · Sentry · GitHub + Vercel APIs
05Instagram studioLive

Claude proposes posts and I approve them; they render, schedule, publish and report back.

Instagram API · Inngest · Satori
06Outreach + analyticsIn use

Sourcing, email, calls and visits, with PostHog and Search Console showing what works.

Notion · Gmail · Vercel cron · Search Console
frunt
frunt staff appLive · actively updated
MGK
Fitness
Liftio 1.4 home screen
Liftio 1.4 · React Native
Liftio 1.4 workout tracking
Liftio 1.4 exercise detail with a progress chart
Lift 2.0 logging a workout
Lift · Flutter
Lift 2.0 plan
Run recording a run
Run · Flutter
Run training plan
Decision 0001 · accepted 17 Aug 2026

Liftio is replaced, not relaunched.

"Retiring a live record to avoid an untidy string is paying a real cost for a cosmetic one."

MGKFitness
LiftLive · actively updated
RunLive · actively updated
mgkfitness.mgkcodes.comOpen ↗
mgkfitness.mgkcodes.com, the MGKFitness website
Website
01RunLive

Running tracker with an AI training coach.

Flutter · GPS · shared design system
02LiftLive

Strength log with a coach of its own. The rebuild of Liftio.

Flutter · shared design system
03Backend + AI coachLive

One account across both apps. The coach plans around your whole week.

Supabase · Edge Functions · OpenRouter · RevenueCat
04WebsiteLive

Scroll film, waiting list, support and legal pages. No tracking, by design.

Next.js 16 · Replicate clips
05SocialIn development

Posts drawn in Remotion from the site's own words, published through the Instagram API.

Remotion · Instagram API
06Release opsIn use

Store listings and submissions run from Claude Code; builds on Codemagic.

App Store Connect · Google Play · Codemagic
Other
Work
Ledger finance dashboard
Ledger · web appBusiness finance dashboard with AI transaction entry.
MSA architecture portfolio
MSA · client sitePortfolio for an architecture student.
Red Cross Reigate pub site
Red Cross · client siteLanding page for a pub in Reigate.
YouTube clone home feed
YouTube clone · practiceFull-stack video platform with auth.
Netflix clone home
Netflix clone · practiceState management, layer by layer.
FootyScores app, live Premier League scores
FootyScoresLive scores, React Native + Node.
About
Me

Building things has always been how I think. Before I knew what programming was, I was pulling things apart to see how they worked.

I run MGKCodes, the studio behind frunt and MGKFitness.

Gym
01Gym
Golf
02Golf
Gaming
03Gaming
MGKCodes
MGKCodes · the studio
behind frunt + MGKFitness
How I
Work
01Plan

Every screen laid out on one board, each with what it's for.

e.g. Lift screen board, v11
02Decide

Big calls written down with the reasoning, so they can be checked.

e.g. Decision 0001
03Build

AI does the typing. My own skills library sets how it works.

e.g. github.com/MattKay02/skills
04Check

Screens checked by eye, design reviews, a build check on every PR, and most of my skills.

e.g. 19 findings, 30 Sept review
05Ship

Store submissions with a written record of what went out.

e.g. Run 1.0, 2 Oct 2026
  1. Inthe running app
  2. Doesevery screen, in reading order
  3. Outone board that updates in place
Plan · Product MapSource screen-board

Lays every screen of an app on one board, each with what it's for.

Tested · loads right 2/2
  1. Inreal screens, type and marks
  2. Doesoptions rendered in Remotion
  3. Outside by side on one page
Decide · Motion DesignSource motion-sketchbook

Sketches design options as films and stills, so the choice is made by watching.

Tested · loads right 2/2
Decision records

Every big call written down: what I chose, the obvious alternative, what it costs, and what would change my mind.

Open source8 Claude Code skills

How the AI works for me is written down as skills: procedures with the checks built in. Anyone can install them.

npx skills add MattKay02/skills
8 of 8 testedgithub.com/MattKay02/skills
A real walk of the CV viewer on matthewkay.dev, 6 Oct 2026: six numbered screenshots (opened, scrolled to the end, dark theme, a phone opening the /#cv link first, the standalone page) and the one finding, a heavy focus ring on the phone close button.A real walk of the CV viewer on matthewkay.dev, 6 Oct 2026: six numbered screenshots (opened, scrolled to the end, dark theme, a phone opening the /#cv link first, the standalone page) and the one finding, a heavy focus ring on the phone close button.
Check · UI EvidenceSource ui-walk

Screenshots every state of a feature, in order, ready to flip through.

Tested · loads right 2/2
  1. Ina page or screen
  2. Doesseven axes, checked against the code
  3. OutP1, P2 and P3, with file:line
Check · UI ReviewSource page-audit

Reviews a page on seven axes and returns a ranked punch list.

Tested · loads right 2/2
  1. Ina Flutter change
  2. Doesan adb screenshot
  3. Outread back and checked
Check · Mobile QASource emulator-verify

Checks a Flutter change on the Android emulator by reading the screen back.

Tested · loads right 2/2
Lighthouse on matthewkay.dev, mobile, median of three runs (77, 78, 80), 6 Oct 2026: Performance 78, Accessibility, Best practices and SEO 100. Fix first: LCP 5.1 s, mostly the hero name waiting on its fade-in; defer 21 offscreen images (about 528 KiB); preconnect to the live skills data (about 330 ms).Lighthouse on matthewkay.dev, mobile, median of three runs (77, 78, 80), 6 Oct 2026: Performance 78, Accessibility, Best practices and SEO 100. Fix first: LCP 5.1 s, mostly the hero name waiting on its fade-in; defer 21 offscreen images (about 528 KiB); preconnect to the live skills data (about 330 ms).
Check · Web PerfSource lighthouse-audit

Measures a production build on mobile and says what to fix first.

Tested · loads right 2/2
The sweep on a test service with five planted silent failures, all five found. Top three of eight ranked findings: allergens show as none when the database fails; orders can get stuck, run twice or crash the queue; Download all orders stops at 1,000.The sweep on a test service with five planted silent failures, all five found. Top three of eight ranked findings: allergens show as none when the database fails; orders can get stuck, run twice or crash the queue; Download all orders stops at 1,000.
Check · ReliabilitySource silent-failure-sweep

Finds failures nobody is told about, ranked by who they hurt.

Tested · loads right 2/2 · task 0.92 vs 0.88
  1. Ina branch
  2. Doesa Codemagic build, confirmed first
  3. Outthe result and download links
Ship · Mobile CISource codemagic-build

Starts a CI build from the terminal and reports back when it lands.

Tested · loads right 2/2
Let's
Talk
mattykay2002@gmail.com
Matthew Kay
Product engineer

The tour, as text

Intro

Product engineer. I design and build polished apps, end to end.

The whole board

Everything I've built, laid out the way I work on it.

Scroll for the guided tour, or click any frame to jump straight to it.

frunt: the problem

Restaurants have their rules written down. Staff don't read them.

frunt turns a restaurant's own documents into staff training and instant answers. A web app for managers; a phone app and WhatsApp for staff.

frunt: the manager app

Managers bring the documents they already have.

frunt reads them, files them and turns them into courses, and a manager checks each one before staff see it. Use the tabs under the laptop to look through the screens.

frunt: sourced answers

Every answer shows where it came from.

Staff ask in plain words. frunt answers only from that restaurant's documents and cites each source, so a manager can check it.

frunt: the staff app

Staff get answers and training on their phone.

Two screens from the staff app, on the App Store and Google Play. Staff can also ask on WhatsApp, with no app to install.

frunt: the whole system

More than an app.

frunt is six parts I designed, built and run: two apps, a website, an admin console, an Instagram studio and an outreach engine.

MGKFitness: Liftio

Liftio. My first App Store app.

A gym tracker in React Native: 330+ exercises, progress charts, personal bests and cloud backup.

MGKFitness: the rebuild

Then I rebuilt it as part of something bigger.

Lift is Liftio rewritten in Flutter, one app in a suite with Run. I kept the old App Store listing instead of starting fresh: its reviews and history were worth more than a tidy app ID.

MGKFitness: the suite

Two apps that know about each other.

Log a run in Run and Lift sees it, so the coach plans around your whole week.

MGKFitness: the whole system

A suite, not two apps.

Two apps on one account and one backend, an AI coach, a website, a social pipeline and the release tooling around them.

Other work

Smaller builds, each made to learn something.

Client sites, experiments and practice projects. Hover a card to see it in colour.

How I work

I use AI to move fast. These are the checks that keep it honest.

Plan, decide, build, check, ship. Each step leaves something behind that you can look at, and under each one are the skills I built for it, loaded live from GitHub.

Install my skills: npx skills add MattKay02/skills (MattKay02/skills)

How I work: the checks

Most of my skills are checks.

Each one is tested: it has to load when it's asked for and stay out when it isn't. The pictures are real output, not mockups. Pick one to look closer.

About

I build things to understand them.

I run MGKCodes, the studio behind frunt and MGKFitness. Away from the desk: gym, golf and gaming.

Contact

Hiring? Let's talk.

CV (PDF) · GitHub · LinkedIn · X · MGKCodes · mattykay2002@gmail.com