lark studio

    The original concept was simple: have a user answer some questions about their startup and get ChatGPT to generate a custom, acerbic response.
    I started writing a basic HTML website, as I last did circa Geocities 1999. Pretty soon I came to a question about the form tag, which I plugged into ChatGPT. Lo and behold, it generated a huge batch of code for me in a few seconds. The
💡
moment. After that, I leaned fully into Code Copilot to build and help me deploy the site.
    One of my early discoveries was that ChatGPT needed context for the answers I was sending (i.e. the questions). This is obvious when you think about it, but the form tag is built for a human receiver and therefore doesn't do this automatically. What's more, the AI often needed some interpretation of those questions. For instance, 4/5 times it understood that by 'incubator' I meant 'a tech incubator.' But sometimes it would quip about chicken eggs. I wanted to ask another question about how many hours the user spent watching Y-Combinator vids on YouTube each week—the joke being that it's easier to consume content about startups than it is to actually build one. Unfortunately, ChatGPT didn't understand that watching-not-making was bad, and it would recommend the user watch more videos. In the end, to give full context for this question took more tokens than the payoff was worth. Moves like that changed the vibe from roast to potatoes.
    I sent a working version to Jake, who recommended I add some style and, for fun, a tool tip. I grumbled to myself even as I knew he was right. A few hours later and not overthinking any of the AI-recommended style decisions, I landed on a professional-enough looking website. In response to blandifying the form and site, I should have meanified the model. But in the end, form matched function.

Takeaways: There is no substitute for starting. Then, once you get it working, take the time to add a little polish/pizazz.

  • Month: January
  • Tools: Code Copilot, OpenAI (platform), Gemini, Firebase, Sublime, Javascript, HTML, CSS
  • Product: startupconsult.biz

    While I chewed on another web-based idea, I decided to attempt an iPhone app. That's one of the more interesting things about AI codegen: you're not limited to programming with the same language, framework, or platform you know. By this point I had been introduced to Cursor and it was getting a lot of buzz, but I wanted to write in Xcode so I could take advantage of its #Preview features. So I ran both programs side-by-side and just pasted code between the two. If inelegant, it worked.
    I explored a few related product ideas without finding a decisive direction. But my key learning came when Chris Winslett put out a memo at Innovation Depot about a developers Show and Tell. I asked if I could come, even though I'm not a developer, and he kindly said Yes.
    Then, as soon as I set this deadline, I snagged on something, progress stalled, life interrupted the flow. A week passed with no work done and I had to decide: push or bail. The night before dev Show and Tell, knowing that I was barely invited in the first place, I stayed up late choosing a clear parti for the app, reducing functionality to bare usefulness, and making sure it worked.
    At the meetup, I was the only non-engineer. Everyone else had years of experience and presented work in the weeds of their discipline, language, etc. But when it came my time to share, I plugged in my laptop, ran the simulator, and seemed to surprise everyone (including myself). With the demo over and energized by our lively discussion about AI codegen, I decided to shelve this project because there was (and is) much I wanted to learn outside the narrow constraints of Apple, iPhone, and SwiftUI. To finish and launch meant going through the Apple store rigmarole, and I wasn't ready for that. Plus, my next app idea was already on deck.

Takeaway: There is no substitute for finishing, even if the project is not done-done.

  • Month: February
  • Tools: XCode, Cursor, SwiftUI
  • Product: incomplete

    We all have an itch to build the Instagram killer, don't we? I started with the question: could I recapture the community elements of OG Flickr and the pure fun of early Insta, and get people to pay for it?
     There are really two questions here: one about the code and one about the business. To code first: I was now using Cursor exclusively, and having run through a process outlined here with Claude Sonnet 3.7, I wondered if it was better to start from scratch or have the AI build a clone and then remove the parts I didn't want. I tried both and must say that building from scratch seems to be the better approach. You're going to fight complexity and technical debt either way, but debugging is a whole lot easier when you know every piece that's been built.
    As far as the business is concerned, there are a number of mobile and web apps that seek to overthrow Instagram. None is a dominant alternative, and that should tell you something.
    After about 10 hours of work, I launched on Firebase and asked my friend, Cary, to join. He immediately had a sign up problem that was fixed when he restarted his browser. His problem, not mine, but still my problem. I soon added a few more friends who were willing to play along. For simplicity's sake, I built the prototype without explicit following-follower relationships. Therefore, all posts went to a single feed to which everyone was a contributor. Out of this decision, an interesting visual conversation emerged: what Jared called a game of Cadavre Exquis. The app was functional and fun.
    I then had a decision to make: facing the technical challenge of implementing a typical follow-feed system, given what I had observed about the business models of other Insta-clones, and considering the sunk cost of my time, this seemed to be a reasonable off-ramp. I don't like the term 'MVP' but I do like the alternative 'SLC': Simple, Lovable, Complete. For me, it checks all three. And naturally, I was already thinking about a new challenge.

Takeaways: Sometimes the other players in a market can save you a lot of time, effort, money, and social capital. Building an audience around a product is as important as the product itself.

  • Months: March & April
  • Tools: Cursor IDE, Claude, Firebase, Typescript, HTML, CSS
  • Product: a celluloid finch

    This website is a blob, but reflection through writing has always been a valuable exercise for me.
    Consider the following: having built a few projects wholly with AI codegen, it's a lot more fun to code and debug manually, use old-fashioned Google searches, and reuse code from previous projects to solve new problems, and then to lean on Claude for flair. I think that's the right order of operations.
  • Month: April
  • Tools: Sublime, HTML, CSS, Javascript, Google, Claude
  • Product: when you're done reading, press 'reset'
  Lark Studio is the product development hobby of Rob Culpepper(email him). In his day job, Rob is a professional photographer(1, 2). Here, he explores and builds prototypes for startup ideas with the following guidelines: each project must be fast, finite, and fun to make.
© 2025 Rob Culpepper