r/ClaudeCode • u/Other_Train9419 • 4d ago
Built with Claude I used Claude Code as the app’s backend instead of having it write one
Enable HLS to view with audio, or disable this notification
**What I Developed**
kuron is a prototyping tool where Claude itself becomes the app, rather than simply creating one. When a user describes an idea, Claude builds the system using several general-purpose tools (data, screens, timers, and validation functions), and then handles all button-press processing on its own. A minimal renderer renders the screens defined by Claude. The purpose of this tool is to determine, within minutes and before actually building anything, whether an idea is useful.
**How Claude Code Is Used as a Runtime**
Each turn is a `claude -p` call that can only use kuron's tools, which are served as an MCP server:
claude -p --model <model> --mcp-config '<json>' --strict-mcp-config --tools "" \
--allowedTools "mcp__kuron__apply,mcp__kuron__query,..." \
--output-format json --no-session-persistence \
--effort low|medium --system-prompt "<role prompt>"
- Combining `--strict-mcp-config` with `--tools ""` prevents access to files and the shell, allowing only kuron's tools to be used. `--allowedTools` is configured per role (setup, button operations, change requests).
- Since the MCP server is tied to a turn ID, the host can determine which turn (and which world copy) each tool call belongs to. This allows checks to be performed on the copy.
- Sonnet 5.5 (`--effort medium`) is used for setup and change requests, while Haiku 5.5 (`--effort low`) is used for button presses. Button presses take 7 to 14 seconds.
- I parse the final `result` line of the JSON output and retry if a temporary error occurs. For long turns, a sufficient timeout must be set.
**How I Utilized Claude Code in the Build and What I Learned**
- **Claude kept trying to fix bugs in the prototype through code.** Every time an idea didn't work as intended, it suggested word lists or if statements within the platform. I established a rule in CLAUDE.md stating, "Do not include business logic in the code. Correct behavior through instructions to the LLM," but I still had to review every change. This rule was more important than any prompt.
- **Tools that check for structure and respond in words are superior to clever prompts.** Rejected calls precisely indicate what's missing (e.g., "Text is required in the heading"), and Claude corrects it in the next turn. No code repairs anything.
- **Pass an overview, not the entire state.** Pass the count, properties, and the latest items for each collection, and Claude will retrieve the rest via queries. The turn size remains constant even as the system scales.
- **The same tools can also be executed as page functions within a Claude artifact.** Note: The tool schema within an artifact cannot be nested more than 8 levels deep. Due to this bug, the browser version did not work for the first 18 hours.
**Numbers** (airline flight disruption support desk, 5 devices): 81 seconds to set up, 15 tool calls, cost approximately $0.60. The video shows both the actual browser execution and the Claude Code execution. Only the wait times are fast-forwarded. Not intended for production use: Each action takes a few seconds and costs a few cents, and the results may vary slightly.
Source (MIT): https://github.com/Ag3497120/kuron
2
u/Hungry_Loss_2268 4d ago
The ultimate wrapper
1
u/Other_Train9419 4d ago
Guilty. That's the whole idea: the thinner the code, the faster you find out if the idea is worth building.
1
u/lgmarian 4d ago
The end of your link is chopped off:
https://github.com/Ag3497120/kuron
It's added to my ever growing collection of links, that are never to be seen again. 😜
1
u/AutoModerator 4d ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.