I am launching a new app today: Codescribble. Codescribble is a basic shared text editor. Two or more people can open the same file and work on it at the same time, like a basic Google Doc. This focuses on quickly getting you and collaborators on the same document quickly.
Feel free to give Codescribble a try. It’s live now, and I’d love to hear your thoughts!
In this article, I wanted to introduce Codescribble and walk through my development process. As the title implies, I used LLMs extensively, and they ended up causing a significant amount of frustration as I struggled to unwind the mess they made . The title is a little punchy, but in practice I attempted to use it with a technology I didn’t understand, leading to frustration and a few more grey hairs.
Why Codescribble?
Codescribble isn’t the first app in its class. I use Codeshare at work quite often for interviews, but I find the site unstable (there is nothing worse than it crashing during an interview). I wanted something I would have more control over and something that could be available when needed. I also thought that Codeshare’s pro version is quite expensive and the free version is ad-supported, so I wanted to do something cheaper. So while this isn’t an innovative solution, it is something I actually wanted to exist as I haven’t been able to find a suitable existing solution.
I came into this with a few goals:
-
Build my own Codeshare
-
Do it as quick as possible using LLMs
-
Create a cheap pro version
The Vision and Implementation
I decided to build the entire application using TypeScript for both frontend and backend, with Claude 3.5 Sonnet and Cursor as my primary development partner.
I wrote surprisingly little code myself. Instead, I provided Claude with a detailed requirements file outlining my vision, and let the AI handle the implementation details. It required me to prompt multiple times to get little bits done.
The early development process was straightforward: query Claude, test the result, repeat. This loop worked well in my local environment, and Claude handled about 80% of the implementation effectively. The AI understood my requirements and translated them into functional code with minimal intervention.
I want to emphasize that I had a working prototype with Claude basically without writing a single line of work.
Poor Quality Code
The real challenges emerged during deployment. After a few hours of work, I had what I considered to be a feature complete prototype and wanted to throw it up on the internet. Doing so revealed significant oversights. I’m quite underwhelmed with a number of the basic mistakes and shortcomings that were left in the code. Examples:
-
Hardcoded localhost references scattered throughout the code