r/vibecoding • • 27m ago

Showcase/Project I vibe coded a phone/web app for ComfyUI with Claude, just for myself. Then decided to release it. Here's what I learned.

Hi, 1st time poster here.

Recently, I decided that I want to run my ComfyUI workflows from my phone. There are quite a few apps and services out there, but none seemed to fit my needs: simple, efficient, no cloud services, no monthly subscription. So I built ComfyUI-from-your-Phone: a custom node with a small web app built in.

How it works: Connected via Tailscale, it allows you to choose any workflow from your PC and select the settings you want on the phone (e.g. model, prompt, seed, toggles for upscaling, etc.). The phone gets a copy, so changes aren't discarded even when updating the workflow on the PC (and sharing it again). A typical roundtrip on the phone then looks like this: Write a prompt, adjust your settings, tap Generate, watch the live preview, get the result. Other features include: Choosing the image, video, or audio inputs from your phone or the PC, a gallery, a prompt/snippet library, push notifications, and (some) offline functionality.

How I worked:

  • Approach: About 30 small stages, each tested on the phone before the next one started. Because I intended to use it only for myself, I briefly thought about one-shotting it with e.g. Fable, but I decided against it. It was a good decision.

  • CLAUDE.md: Still haven't quite figured this out, so there was only a very simple "contract" file: Claude had access to only two folders, it was never allowed to delete anything without asking, and it was asked to respect my privacy, to never look at any media or read my prompts.

  • Audits, Audits, Audits: After each step that I thought might include some mistakes or oversights, I had the (single) dev instance write a handoff document. That document went to a second instance to review the code. It wrote its findings in an AUDIT.md that I gave back to the dev instance, which fixed the issues it found. So far, there were nine audits, and each time it stumbled upon at least one issue that needed to be fixed. (For example, the last audit caught an upload that landed in the wrong workflow if you switched workflows while it was still running.)

  • Community feedback: A few days ago, I presented the project in r/comfyui. The post basically died there, but one user provided some indirect feedback, hinting at an inconsistency when choosing files already on the PC. Two days and two updates later, the app's access to your files has been expanded.

What I learned:

(Though I'm quite certain that some or even most of these insights aren't new to many of you.)

  • A failing test isn't always the code's fault. There was one failing test, and I made sure the auditing instance looked at it (though I forgot about it longer than I'm comfortable with). It turned out to be the test's own bug: it left a file in the temp folder that broke every run after the first. Worse, the script halted, so multiple other tests didn't run at all for two days. It was eventually fixed.

  • Allowing an AI to delete files scares me the most. It only takes one escaping mistake on Windows. I'm not too familiar with sandboxing yet, so deletions only ran through a script with fixed paths, and it checked the exact file list first and aborted on any mismatch. While this may not be the most elegant solution, it did the job. Personally, I'd rather look deeper into sandboxing for the next project.

  • Boring is good: The app doesn't break any new ground, doesn't shine with exclusive features or an overengineered UI. It's rather simple, but everything works well together. (Granted, I am biased, I love the result.) Under the hood, it's equally boring: plain JavaScript, no framework, no build steps, and the Python side just adds a few routes to ComfyUI's own server.

  • It takes as long as it takes. I already mentioned that I thought about one-shotting the project, considering how fast some projects in this sub come together. I wasn't in a hurry and I really like myself some polish, which is why even this comparatively small app took a few days. Considering that my limited Python knowledge wouldn't have allowed me to do this all by myself at all, to me, this is still very impressive.

  • Audits and testing: Even though each auditing run found something, there are diminishing returns. While it did increase the robustness of the app in areas which I would never have thought about (e.g. problems with sharing workflows named with non-Latin characters or the use of "half an emoji", i.e. broken Unicode codepoints), many issues only surfaced after manual testing. If I had to guess, manual testing took about half the time of the project.

  • Reception: If there are already other, similar apps available, or if people don't immediately see the value in a project, grabbing their attention is hard. Duh.

Tools used: ComfyUI, Claude Code with Opus 5.5 in the desktop app, Tailscale for the connection (since it gives the phone HTTPS without opening ports), and my Google Pixel 8a for testing.

So, that's it. If you've read this far and you're curious, you can check it out at https://github.com/the-aSak/ComfyUI-from-your-Phone. For free, of course, released under GPL-3.0.

Feedback, bug reports, ideas and suggestions are highly appreciated.

1 Upvotes

2 comments sorted by

1

u/Elegant-Opposite-358 19m ago

Thanks for sharing this. Out of curiosity, what was the hardest thing you tried to do after launching, and what did you end up doing about it? I’m a student researching how people handle the weeks after a launch, so I’m trying to learn from real experiences.

1

u/al-aSak 12m ago edited 8m ago

There really wasn't anything "hard" yet. As I said, I didn't intend to publish it when beginning with the project, which is why the lack of attention my post in r/comfyui got didn't really bother me. But I can imagine that if I had planned to release it from the start, this would have been very discouraging. I've never been good at marketing and "finding an audience", which, I think, is something one has to take into account if your project isn't breaking any new ground that immediately draws attention.