<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/a-webgpu-cat-puzzle-game-shipped-in-three-days-on-expo-with-an-ai-agent-as-the-qa-team-srsz0ocwz" -->

---
title: A WebGPU cat puzzle game shipped in three days on Expo,...
description: A developer built Purrkour, a cat puzzle game rendered entirely with WebGPU inside an Expo app, going from first commit to App Store-ready in three days. The...
canonical: https://daily.dev/posts/a-webgpu-cat-puzzle-game-shipped-in-three-days-on-expo-with-an-ai-agent-as-the-qa-team-srsz0ocwz
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: A WebGPU cat puzzle game shipped in three days on Expo, with an AI agent as the QA team | daily.dev
og:description: A developer built Purrkour, a cat puzzle game rendered entirely with WebGPU inside an Expo app, going from first commit to App Store-ready in three days. The...
og:url: https://daily.dev/posts/a-webgpu-cat-puzzle-game-shipped-in-three-days-on-expo-with-an-ai-agent-as-the-qa-team-srsz0ocwz
og:image: https://api.daily.dev/og/posts/sRsZ0oCWZ.png
og:image:alt: A WebGPU cat puzzle game shipped in three days on Expo, with an AI agent as the QA team
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# A WebGPU cat puzzle game shipped in three days on Expo, with an AI agent as the QA team

**[Expo Blog](https://daily.dev/sources/expo-blog)** · 8 min read · 0 upvotes · 0 comments

## Summary

A developer built Purrkour, a cat puzzle game rendered entirely with WebGPU inside an Expo app, going from first commit to App Store-ready in three days. The game uses no image files, 3D models or audio files, instead generating everything procedurally with TypeGPU shaders. It runs on Expo SDK 57 with the React Native New Architecture, holding 120fps. To test it, the author used Claude Code with Argent to drive the iOS simulator and Chrome, adding a debug bridge that exposes board coordinates and game state since the WebGPU canvas has no accessibility tree for the agent to read.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://expo.dev/blog/purrkour-webgpu-typegpu-game-expo-three-days>

## Questions this post answers

### How do you let an AI coding agent test a game rendered entirely in a WebGPU canvas with no accessibility tree?

Add a debug bridge object exposed on the global scope in development builds, such as a '__purrkour' object with a 'cellScreen' function that runs the same camera projection as the renderer to return exact screen coordinates for any board cell, plus a 'state()' function to read live game state. An agent can then combine this with a BFS solver's next move, tap the coordinates, and verify the result instead of guessing positions from screenshots.

_Developers wiring agent-driven QA into a canvas-based app can find similar workflows on daily.dev._

### Can TypeGPU shader code run unchanged on both web WebGPU and React Native via react-native-webgpu?

Yes, the same TypeScript function compiled by TypeGPU to WGSL runs on WebGPU in the browser and on react-native-webgpu (Dawn) on device, with no separate shader code paths. A lighting function written once with the 'use gpu' directive produced identical rendering in Chrome and on iPhone in a shipped game called Purrkour.

_Teams evaluating a shared TypeScript renderer for web and native track real-world cases like this on daily.dev._

### What Expo SDK version and React Native architecture are needed to use react-native-webgpu and react-native-audio-api together without workarounds?

Expo SDK 57 running on React Native 0.86 with the New Architecture lets react-native-webgpu and react-native-audio-api, both New Architecture native modules, work together alongside Reanimated 4 and Worklets without workarounds, since all of those require the New Architecture to function.

_Developers planning a New Architecture migration can follow compatibility reports like this on daily.dev._

## Similar posts on daily.dev

- [A 30,000-line Rust GPU engine on Expo, and 120,000 installs without ads](https://daily.dev/posts/a-30-000-line-rust-gpu-engine-on-expo-and-120-000-installs-without-ads-guctqmtmu) · Expo Blog · 12 upvotes · 0 comments
- [App.js 2026, TypeGPU Shaders, and Singing Can’t Stop at 1 AM in Kraków](https://daily.dev/posts/app-js-2026-typegpu-shaders-and-singing-can-t-stop-at-1-am-in-krak-w-vptljm0tx) · ITNEXT · 0 upvotes · 0 comments
- [We don't need no stinkin' tensor library](https://daily.dev/posts/we-don-t-need-no-stinkin-tensor-library-ju38win9x) · Hacker News · 0 upvotes · 0 comments

---

Tags: [#typescript](https://daily.dev/tags/typescript), [#react-native](https://daily.dev/tags/react-native), [#claude-code](https://daily.dev/tags/claude-code), [#webgpu](https://daily.dev/tags/webgpu)

[View this post on daily.dev](https://daily.dev/posts/a-webgpu-cat-puzzle-game-shipped-in-three-days-on-expo-with-an-ai-agent-as-the-qa-team-srsz0ocwz)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"A WebGPU cat puzzle game shipped in three days on Expo, with an AI agent as the QA team","url":"https://daily.dev/posts/a-webgpu-cat-puzzle-game-shipped-in-three-days-on-expo-with-an-ai-agent-as-the-qa-team-srsz0ocwz","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/a-webgpu-cat-puzzle-game-shipped-in-three-days-on-expo-with-an-ai-agent-as-the-qa-team-srsz0ocwz"},"datePublished":"2026-10-31T15:28:18.408Z","dateModified":"2026-10-31T15:28:47.325Z","description":"A developer built Purrkour, a cat puzzle game rendered entirely with WebGPU inside an Expo app, going from first commit to App Store-ready in three days. The...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/20b92e783a51bd6152292c925149d847?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/20b92e783a51bd6152292c925149d847?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Expo Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Expo Blog","logo":"https://media.daily.dev/image/upload/s--E7LK6L3y--/f_auto,q_auto/v1774179051/logos/expo-blog?_a=BAMAMiWQ0","url":"https://daily.dev/sources/expo-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/a-webgpu-cat-puzzle-game-shipped-in-three-days-on-expo-with-an-ai-agent-as-the-qa-team-srsz0ocwz","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"typescript,react-native,claude-code,webgpu","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Expo Blog","item":"https://daily.dev/sources/expo-blog"},{"@type":"ListItem","position":3,"name":"A WebGPU cat puzzle game shipped in three days on Expo, with an AI agent as the QA team"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/a-webgpu-cat-puzzle-game-shipped-in-three-days-on-expo-with-an-ai-agent-as-the-qa-team-srsz0ocwz#faq","mainEntity":[{"@type":"Question","name":"How do you let an AI coding agent test a game rendered entirely in a WebGPU canvas with no accessibility tree?","acceptedAnswer":{"@type":"Answer","text":"Add a debug bridge object exposed on the global scope in development builds, such as a '__purrkour' object with a 'cellScreen' function that runs the same camera projection as the renderer to return exact screen coordinates for any board cell, plus a 'state()' function to read live game state. An agent can then combine this with a BFS solver's next move, tap the coordinates, and verify the result instead of guessing positions from screenshots. Developers wiring agent-driven QA into a canvas-based app can find similar workflows on daily.dev."}},{"@type":"Question","name":"Can TypeGPU shader code run unchanged on both web WebGPU and React Native via react-native-webgpu?","acceptedAnswer":{"@type":"Answer","text":"Yes, the same TypeScript function compiled by TypeGPU to WGSL runs on WebGPU in the browser and on react-native-webgpu (Dawn) on device, with no separate shader code paths. A lighting function written once with the 'use gpu' directive produced identical rendering in Chrome and on iPhone in a shipped game called Purrkour. Teams evaluating a shared TypeScript renderer for web and native track real-world cases like this on daily.dev."}},{"@type":"Question","name":"What Expo SDK version and React Native architecture are needed to use react-native-webgpu and react-native-audio-api together without workarounds?","acceptedAnswer":{"@type":"Answer","text":"Expo SDK 57 running on React Native 0.86 with the New Architecture lets react-native-webgpu and react-native-audio-api, both New Architecture native modules, work together alongside Reanimated 4 and Worklets without workarounds, since all of those require the New Architecture to function. Developers planning a New Architecture migration can follow compatibility reports like this on daily.dev."}}]}
```

