Introduction
Velocity was a mobile app for cognitive training in amateur athletes. Mini-games, leaderboards, unlockable rewards, friend and global rankings, analytics per game. It scaled to roughly 10,000 users over two years of nights and weekends and shipped multiple versions before running out of money. Hundreds of thousands of lines of code. Then it died.
The experiment in this article: how close can you get to that same product in a single afternoon using AI? The platform under test is CREAL (a vibe-coding tool built for teams), and the answer turns out to be — surprisingly close. Not pixel-for-pixel, not at App Store quality, but a functioning web app with games, leaderboards, profiles, persistent data, and team permissions in a few prompts.
📚 Table of contents
- The original Velocity app — what we’re trying to reproduce
- Why CREAL instead of a generic builder
- Integrations and plugins (including Figma)
- Writing the first prompt — the brief that actually matters
- What the build phase looks like under the hood
- First version: leaderboards, profiles, games
- Iterating with a single prompt
- Dashboard, data schema, and code export
- Sharing with a team — viewer, user, granular permissions
- What this means for solo founders in 2026
- Common mistakes and best practices
- Frequently asked questions
🎮 The original Velocity app
Velocity ran multiple mini-games designed to train cognitive skills relevant to amateur sports: reaction grids, task switchers, target practice. The features that took the most time to build:
- Multiple game modes, each with its own scoring logic and analytics view.
- Live-updating leaderboards (friends, global) with consistent ranking under concurrent writes.
- Unlockable shoes and items gated by performance milestones.
- Per-user profiles with stats, recent activity, personal bests.
- The whole thing wired to a backend that handled 10K users without melting.
The mental model for the rebuild: produce a web version that hits the same feature checklist, even if it doesn’t ship to the App Store. The goal is to compare effort, not platforms.
🤔 Why CREAL specifically
CREAL is positioned as a vibe-coding platform built for teams — not just for solo prompters. The pieces that matter for an experiment like this:
🧩 Integrations on tap
GitHub, MCP servers, a marketplace of pre-built apps, and a Figma plugin (set up via API key under Builder Integrations) that lets the model read your designs and build straight from them.
👥 Permissions for teams
Viewer, user, full / read-only / personal-data access. Clone toggle. Marketplace publishing. Built for handing something off, not just for solo experimentation.
The marketplace also doubles as a sanity check — you can browse other people’s builds (animated games, crypto runner clones with global leaderboards) and see what the platform actually produces in practice before writing your own prompt.
📝 The brief that does the heavy lifting
The single biggest lever on output quality is the initial prompt. A one-line “build me a cognitive training app” produces a toy. A long, structured brief produces something close to a real product. The version used here was several paragraphs — the original Velocity pitch translated into a structured spec: target users, feature list (activities and challenges, live-updating leaderboards, profile stats, friend / global ranking, unlockables), tone, and explicit non-goals.
🪄 Generate the brief with another LLM
Don’t hand-write the prompt cold. Hand a one-paragraph description to ChatGPT or Claude and ask for a structured product brief in the format the builder expects. Edit, then paste into CREAL. This single move bumps the result quality more than any platform feature.
On submission, CREAL prompts you to toggle the integrations the app will need (GitHub here), and turns the brief into a product spec it shows back for approval before generating any code.
🔧 Inside the build phase
What’s interesting under the hood is that CREAL spawns sub-agents for distinct concerns — one for the database, one for integrations, one for UI. You see each sub-agent’s prompt and result stream in real time, which is half debugging tool, half learning material.
Total build time for an app this size: a handful of minutes. The first version came out with:
- A working leaderboard view (some text styling needed work).
- A default profile populated with stats.
- Multiple game modes, each playable — reaction grid, task switcher, etc.
- Persistent scores writing to a database it provisioned automatically.
- A recent-activity panel and per-game personal-best tracking.
Quality call: the games were rougher than the originals (one had a duplicate-event bug on completion), but the system as a whole — including a global leaderboard that actually updated — held together.
🔁 Iterating with single prompts
Fixing the rough edges took natural-language requests. “Seed the database with multiple test users so I can see what the leaderboards look like with real data. Also clean up the contrast on the headers.” A minute later: more data in the database, more entries on the leaderboard, a fix to the duplicate-event bug.
Every iteration is versioned. The dashboard tracks them, and the GitHub integration pushes commits, so you can roll back if a change makes things worse.
📊 Dashboard, data schema, and code export
Under the Pro tier you get a real data view: every table the AI provisioned, the rows it’s
storing, and the option to edit data inline. You also get the full source: open main.tsx in
the in-platform editor, or pull the whole repo from GitHub.
- Data schema — entities, fields, relationships.
- Content browser — rows across each entity, switchable from a dropdown.
- Code access — read or edit any file directly in the platform.
- Clone & duplicate — spin up a forked copy without breaking the original.
The platform stays out of your way once you want to drop down to code. That’s the key difference between a vibe-coder you can grow with and one you outgrow in week three.
👥 Sharing & team permissions
Inviting a teammate is one click. Pick a role:
Viewer
Sees the project, can’t change anything. Best for stakeholders.
User
Same control as you (the default) or anything you scope down via Advanced.
Granular
Full access, read-only, limited edit, or personal-data only (CRUD on their own records).
Cloning can be toggled off per role — useful when you don’t want stakeholders walking away with the codebase. There’s also a shareable public link and a one-click push to the marketplace if you want to let anyone clone it as a template.
🎯 What this means in 2026
Two years of part-time work to reach a 10K-user MVP. A working web facsimile of the same product in under an hour. Three observations worth taking seriously:
- The bottleneck has moved. It’s no longer typing code. It’s knowing what to build, writing a tight brief, and iterating fast.
- Solo founders compound differently. A two-person team can validate four ideas in a month instead of two ideas in a year.
- Polish is still manual. Game feel, accessibility, micro-interactions, and edge-case handling still need real attention.
This isn’t a story about replacing engineers. It’s a story about removing the cost of being wrong. Failed startups in 2023 took years to die. Failed startups in 2026 die in a weekend, which means you get more weekends.
✨ Best practices & common mistakes
✅ Do
- Generate the initial brief with an LLM, then edit.
- Connect GitHub from the start so every iteration is recoverable.
- Use the data schema view to debug — the answer is often in the data, not the UI.
- Lock down permissions before sharing with stakeholders.
❌ Don’t
- Submit a one-line prompt and expect a polished product.
- Skip the spec preview — that’s the cheapest place to catch a misunderstanding.
- Treat the first build as final. Plan for two or three iteration passes minimum.
- Hand external viewers User access by default. Default to Viewer.
Related reading: AI coding tools worth learning in 2026 — Blitzy enterprise AI coding agent — remote software engineer job roadmap