Hello folks 👋
I’m building again. It feels fantastic, and I can get into deep flow for long stretches (I thought flow was just “different” for me since I haven’t felt it in years). But part of building in the open means bringing you all along with me, which means I need to pull my head up and tell you what I have been up to.
I’m building an AI-powered infinite choose-your-own-adventure story generator. I have a fully functioning prototype app and will be testing it with a small group of friends and family starting today. Once / if I have more confidence in what I am building (on the order of weeks), I will open signups to this group first.
I have no idea if this is “the thing,” but I am learning so much and having a blast. I might as well lean in. 🤠
Feb 23 ‘23 Status Update
Success Metrics - N/A for now
Reminder: one goal for Q1 was to decouple myself from pursuing vanity metrics, so I’m holding off on setting metrics for now.
Quick Updates and Lessons Learned
I did not win the AI Art contest. If you recall, from the last update, I entered an art contest. It turns out there were 1700+ submissions, and I did not win (my #1 and #2 submissions). I don’t regret entering, but I’d be lying if I wasn’t a little bummed to give up the dream of becoming a wildly successful rookie artist. 😝
I learned how to build an app (but more on that later).
Where I could use your help
Do you know of any products in the generative AI space for kids? I’ve been pointed at https://www.koalluh.com/ and https://www.twobulls.com/projects/the-magic-storybook so far and looking for more examples.
Does anyone have any thoughts on deciding how much to invest in myself? I need to come up with a figure to put in my bank account to “fund” the activities of Running Towards XYZ now that there’s a bit of cost to the operation. I also need to figure out how to think through bootstrapping vs. pursuing VC funding if any idea takes off. Is there a best practice for a tipping point?
Info Diet
When looking for choose-your-own-adventure UI patterns, I came across Florence, an interactive story about first love by the lead designer of Monument Valley. It’s BEAUTIFUL and made me feel some feels.
With all the dialog about the tech side of Large Language Models, I thought this was a great counterpoint on what it’ll take to “win” in the generative AI startup space: The Biggest Bottleneck of LLM startups is UX.
The Return of the Garage Innovator ↩️💡
Last newsletter, I put out a call for opinions on how to build an app. Thanks to those of you who responded! I couldn’t do this thing without the feedback from you all. 🙏
This newsletter update summarizes what I learned (in case you want to do something similar someday) and reflects on what it means for innovation in light of the state of tools. For some of you who have stayed on top of new technology and/or the Cloud Computing wars, this all might seem obvious. But if you are like me (been at a big tech company and studied programming 10+ years ago), the following might blow your mind a little. At least it blew my mind a lot in the last 2.5 weeks. 🤯
So let’s start there: 2.5 weeks ago, I didn’t know how to build a web app. One reader suggested, “I take the Paul Graham approach: use what you know and what you can be productive in the fastest. Building something from scratch is hard enough, don't add a new language and ecosystem to it.” Great advice, but I didn’t know much beyond passing familiarity with Python and JavaScript. My most serious coding project in the last decade was the NFT project I built on my maternity leave, which ultimately resulted in a 400-line contract.
Note: This next part gets a little jargon-y. Feel free to skim and re-engage in the bolded takeaways section.
Readers suggested several good routes:
Python + Flask + Bootstrap. It was noted that deployment was going to be a little rough.
MERN stack (MongoDB + Express + React + Node.js). Lots of great Udemy Courses here (React, HTML/CSS, and Full-stack). Very popular in the industry.
Not knowing which direction to go, I spent Monday, Feb 6, going through this Flask tutorial (it seemed reasonable), followed by the 1-hour React + AWS tutorial. The latter got me hooked.
Within the first 5 minutes, they had me with a continuously deployed web application auto-synced to a GitHub repository. While it wasn’t quite an hour for me (I had to install several dependencies in my local development environment and got stuck at least seven times), by the end of Monday, I had a deployed React web app with email login, a backend database, and storage for user uploads.
I dug in a bit more; this tutorial was an onramp to a service called Amplify. It’s a well-packaged (although not completely flexible) system that enables users to develop web and mobile applications with many convenient functions. It has many pre-built UI components, an integration with Figma to auto-create stylesheets, and a suite of backend API tools to make it easy to plug into AWS’s other products.
But I had to move beyond the tutorial and build something. I’ve wanted to create this infinite choose-your-own-adventure app since I realized ChatGPT would be great for telling kids stories (the way my mom used to at bedtime; she would always make it conversational and ask me to fill in the blanks). ChatGPT has some limitations, and after 5-6 story steps, it always wanted to end the story for me. But I knew I could wrap up GPT-3 with a little polish and make the app I wanted to.
I found this excellent explainer about using an AWS Lambda function to make calls to OpenAI and make that Lambda function into a proper API. I quickly found the limits of React’s state management and opted to integrate Redux (video and quickstart). Meanwhile, I’m having a proper laugh because a) after years of working as the Lead for Grasshopper, I finally understood what my engineering team was talking about and b) now I viscerally understand why they hated too many meetings (I’m sorry!).
My proof-of-concept started to grow, so I needed different subpages, and I also needed to start storing data to persist between sessions. I’ll be honest, I lost a couple of days to dead-ends. But I did take a fascinating detour into single-table design with DynamoDB (I’d only studied relational databases in college, so this was another 🤯). I ultimately ended up brute-forcing my way through a multi-table design with Amplify + their GraphQL API integration, and these resources were helpful.
Whenever I got stuck, I would start on Google, but I also found that searching directly on YouTube for tutorials was a treasure trove. Stack Overflow has brilliant and helpful people doing god’s work. And a lot of people upload sample projects to GitHub. For the first week, I decided to track how many times I got frustratingly stuck. My counter got up to 58. But another way to look at it is: that’s 58 times that I solved a frustrating problem. Both sides of the same coin. 🪙
So what was my takeaway? Note: For the no-jargon folks, re-engage here 🙂
I got from 0 → a fully functioning web app leveraging Large Language Models (LLMs) in 2.5 weeks with no prior app-building experience. As Web 2.0 exploded, it became harder and harder to build professional-looking software experiences. Then as Artificial Intelligence became a significant differentiator, it became even more difficult for a small player to compete with the big guns.
Today, almost all the tools have been democratized. I can be a one-person shop and get a prototype product in the hands of users. It’s more about what I choose to build than if I can. I imagine many talented folks are realizing what they can build on their own. “Building it in your garage” felt like a bygone era, but I think these new tools can reinvigorate the tradition of garage innovators… and I’m so excited to see what people will come up with.
In closing, these last few weeks have been freeing. With the ability to quickly manifest product ideas into applications, I realize that generating a paycheck for myself isn’t a pipedream. I could freelance prototype, keep building things for myself, or even sell the projects I’m less fond of on platforms like Acquire.com. I’m unsure what’s next, but I know I have options.
P.S. Hit me up if you have any building pointers to share with the Running Towards XYZ community.
Hey Laura,
I tried building something similar, although with a no code platform. I am proficient in javascript and python but the overhead(environment, database, hosting) of building an app was daunting so I decided to try no code platforms.
I came across thunkable on linkedin and decided to give it a shot, here is my app: https://x.thunkable.com/copy/d17e72f6c8f24acf2ea98b002f470b5e . I built the app using the free version and was able to get it running within a day. Although it does not store any data or have a login page it does the job.
I have some thoughts on what the next steps should be and would love to chat if you are open to it.
By the way, I am a Googler and I was one of the early testers of Grasshopper :)