Vol. I · No. 579Rochester, New York, Thursday, September 24, 2026Mobile AI · Page B10
All workSection B · Page B10

Mobile AISecondScreen

Every Icon on This Homescreen Started as a Sentence

A phone homescreen where every icon is a mini-app that Claude wrote and a build server compiled from a plain-English description.

Graphic5 steps
  1. DescribeA plain-English prompt plus a style
  2. GenerateClaude returns a React + Tailwind file tree as JSON
  3. ValidateNode-only modules are blocked before building
  4. BuildExpress + Vite compile it into one HTML bundle
  5. RunStored in SQLite, opened in a sandboxed WebView with the native bridge
What happens inside SecondScreen, in order.Graphic: The Sahil Bachu

SecondScreen is an app for building apps. You describe what you want, pick a style, and a new icon shows up on your homescreen. Tap it and it runs like a real app, because it is one.

A lot of the tools I'd want on my phone are too small and too specific for anyone to ship as a real app. They are also small enough for a model to write. The hard part is running them on a phone safely.

Tap it and it runs like a real app, because it is one.

The pipeline goes prompt, Claude, file tree, build. Claude returns a React project styled with Tailwind and DaisyUI as JSON. Before anything gets built, I validate it and reject Node-only imports like fs, http, child_process and axios, since they would never run in a WebView anyway. A stateless Express server writes the files to a temp folder, links a pre-cached node_modules and runs Vite with inlined assets and IIFE output. What comes back is one self-contained HTML string, with a 60 second build timeout. The phone stores that bundle in SQLite and loads it in a sandboxed WebView.

My favorite part is the bridge. Every mini-app gets a window.BRIDGE object injected before its content loads. Through it, an app can save and load data, query its own data in plain English (text to SQL), record from the mic and get a Whisper transcript, read and create calendar events, take a photo, and call AI verbs like summarize, classify, extract, plan and quiz. Everything is promise-based, so the generated code stays simple. On top of that sits a built-in assistant that answers questions across the data in every mini-app at once, with hard caps on how much context it pulls in.

It works end to end but isn't in any store yet. For that, I built a small proxy with Clerk auth, a token quota per 30 days and RevenueCat webhooks, and wrote an 11-phase plan for getting through TestFlight and onto the App Store. The homescreen already feels right: a draggable grid, swipeable pages and generated icons, each with its own palette, monogram and pixel pattern.

More from The Work

See all 25

On-device AI

A Voice Journal That Listens and Never Phones Home

A private self-reflection app that transcribes your voice notes, reflects on them and chats about them with models that run on the phone.

Record a vent, and [witness] transcribes it, pulls out a title, summary and insights, and lets you talk it through, grounded in your own past entries. Whisper and Qwen3 run on the phone, so your entries stay with you.

Continued on Page B13

Restaurant tech

A Restaurant iPad That Runs Its Own AI, Offline

An iPad demo that runs Llama 3.2 1B and Whisper on the device for order-taking, a menu kiosk and end-of-shift summaries.

An iPad demo of what on-device AI could add to a restaurant point of sale: voice order-taking with allergen alerts, a menu Q&A kiosk and shift summaries. Llama 3.2 1B and Whisper run locally, with no internet needed.

Continued on Page B22

Competitive Coding

Ranked Coding, With the AI Agents Allowed In

BeatCode tests whether developers can actually ship with AI coding agents, then rates them with Elo.

A competitive coding platform where you solve build and fix challenges with AI agents inside cloud sandboxes. A trusted grader scores the result and updates your Elo. Version 1 works, and version 2 is in progress.

Continued on Page B8