You Can Build an App in 60 Minutes with ChatGPT - Ep. 5…
A live podcast episode in which researcher Geoffrey Litt and host Dan Shipper build a working app together in under an hour using ChatGPT and Replit, demonstrating how AI tools can let non-programmers create and customize software. Topics include malleable software, who gets to build software, app scoping and complexity, the React/TypeScript/Tailwind tech stack, iterating on generated code, and integrating a GPT-4-powered feature via the OpenAI API.
# Channel Presentation Observations
## Video Overview
- **Title:** *You Can Build an App in 60 Minutes with ChatGPT - Ep. 5 with Geoffrey Litt*
- Episode features a **host (Dan)** interviewing guest **Geoffrey Litt**, researcher at **Ink & Switch**, and includes a **live collaborative app-building demo** using ChatGPT and Replit.
## Intended Audience
- **Dual-track audience: programmers and non-programmers.**
> "We'll try to make it so that if you're a programmer you can get a lot out of it and if you're not a programmer you'll be able to understand what's going on."
- **Non-technical viewers are explicitly reassured** that the tooling is approachable:
> "Anyone who's non-technical who's watching this... a Replit is like it's very templatized... everything that we've done so far is pretty natural language."
- The host references **aspiring builders** who are newly empowered by AI:
> "There are a lot of people who are within the horizon of being able to make stuff that don't know it yet."
## Claimed Scope
- **Episodic format:** This is "Ep. 5," and the host describes a recurring structure:
> "In most of these episodes what we're doing is we're going through historical chats and then... we both kind of interact with ChatGPT and we explore something."
- **Focus area:** Practical, detailed demonstrations of using ChatGPT for building software, tied to broader ideas about the future of software (malleable software, post-SaaS tools).
- **Adjacent projects the host claims:** The host states he teaches a course:
> "I teach this course called how to build an AI chatbot... we take people from not really being able to code to shipping an app in 30 days."
He also mentions having "wrote this article called what comes after SaaS" ~six months prior.
- **Interview history:** The host indicates returning guests and a back catalog ("I interviewed you... two or three years ago on Super Organizers"; references a recent episode with Linus Lee).
## Explicit Self-Description Evidence
- The host describes the podcast's own format as one where **ChatGPT itself functions as a participant**:
> "This podcast is sort of unique in that ChatGPT is its own... it's a guest in certain ways."
- The host frames the episode's goal explicitly:
> "In the process of building an app... people will be able to get just a little bit of an idea of what you mean by malleable software... and then two is they're going to be able to see what are the specific ways that you're using ChatGPT."
## Demonstrated Presentation Patterns (Observable, Not Claimed)
- **Live, unpolished demonstration style:** Real-time coding, errors, and fixes are shown ("we got an error... copy this error and paste it into ChatGPT"), with commentary that this is authentic:
> "This is how these things really go... it doesn't always work the first try."
- **Educational annotation:** Both host and guest pause to explain concepts for viewers (e.g., what an API key is, what Replit is, why pseudo-code planning matters).
- **Enthusiastic, accessible tone:** Host reacts with explicit wonder:
> "This is Magic like this is crazy... we have to stop for a second and just appreciate how Wild it is."
- **Ideological framing:** Recurring metaphors (hotel rooms vs. owning homes; "malleable software") position the channel within a broader software-philosophy conversation.
- **Closing call-to-discovery:** Episode ends with guest pointers (geoffreelitt.com; essay "Malleable Software in the Age of LLMs"), signaling a curation/synthesis role for the host.
## Summary of Identity Signals
| Dimension | Evidence |
|---|---|
| **Audience** | Both programmers and non-programmers interested in building with AI (explicitly stated) |
| **Scope** | ChatGPT-focused interview/demo series on AI-assisted software creation and its implications (Ep. 5; stated episode format) |
| **Host self-description** | Course instructor ("How to Build an AI Chatbot"), writer ("What Comes After SaaS"), repeat interviewer |
| **Demonstrated style** | Live collaborative building, error-recovery shown openly, conceptual framing with accessible metaphors |
# Delivery Observation: "You Can Build an App in 60 Minutes with ChatGPT – Ep. 5 with Geoffrey Litt"
## Format Overview
- **Two-speaker conversational podcast** with a live, screen-shared software-building demo embedded in the middle.
- Structure: cold-open teaser of the demo → host introduction → conceptual discussion → collaborative live build → wrap-up with calls to action.
- The transcript opens mid-action: *"why don't we just build something together all right let's see how it goes"* before rewinding to *"Jeffrey welcome to the show thanks so much it's good to be back."*
## Tone
- **Enthusiastic and spontaneous**, especially the host (Dan), whose reactions escalate in intensity:
> "oh my God look at that look at that"
> "this is Magic like this is crazy"
> "I'm like walking on air right now"
- The guest (Geoffrey Litt) matches the energy but pairs it with **analytical hedging**: *"I agree it's an it's a very exciting starting point"* immediately followed by *"we haven't solved all the issues yet."*
## Vocabulary & Recurring Phrases
- **"Malleable software"** — the guest's signature term, defined explicitly: *"software that works for us not for some product manager off in San Francisco."*
- The **hotel metaphor** recurs across both speakers: hotel room → apartment → house → "general contractor on staff" → *"imagine we all lived in hotel rooms all the time."*
- The guest repeatedly uses **"vibe"** and "feel" language: *"simple dark keynote presenter mode um Vibe"* — and the host validates the term: *"when you give it Vibe it like kind of knows to be fuzzy about it."*
- Repeated AI-collaboration framing: *"chat GPT is a muse not an oracle."*
## Teaching Habits
### Anchoring new concepts in analogies
- Hotel/home analogy for SaaS vs. owned software.
- Employee/manager analogy for when to ask the AI clarifying questions: *"if you're an employee and you have a a manager... it's that Dynamic."*
### Narrating the process aloud
- The guest explicitly teaches his workflow steps: *"so you get an initial idea from the user... part two is absolutely critical ask the user for clarification."*
- He explains his reasoning before acting: *"it's going to write the code"* preceded by *"we'll make a plan for how the code's going to work first that helps it generate correct code."*
### Surfacing failure modes deliberately
- Both speakers call out limitations as teaching moments rather than hiding them: *"that's actually the only way to learn"*; *"it sometimes is not going to solve every problem for you just some of the problems."*
### Welcoming non-technical viewers
- The host repeatedly reassures the audience: *"anyone who's nontechnical who's watching this... this might look complicated but a repet is like it's very templatized."*
## Communication Patterns
### Alternating enthusiasm and caution
- Nearly every excitement peak is followed by a scoping caveat:
- Host: "this is Magic" → Guest: *"I will note... we operated within a simple um starting point... we haven't solved all the issues yet."*
- The guest consistently **tempers scope**: *"no no we got to like we got to pair it back to like something that's useful that we can do in the time we have."*
### Interactive turn-taking during the demo
- Frequent short exchanges: *"do you want to try it... no no I want I want to do it okay yeah yeah yeah let's do it."*
- The guest **corrects gently and instructively**: *"you just copied some python code Dan and in JavaScript so that's a mistake"* → host: *"good note good note."*
### Filler density
- Both speakers use heavy **"um," "like," and "you know"** fillers, consistent with unscripted live conversation; the guest's are denser during technical explanations, e.g., the API-key discussion.
### Repeated rhetorical constructions
- The host uses **"like" as a generalizer** ("it's like staying at a hotel," "it's like a guest in in C in certain ways").
- Both use **"sort of"** as a hedge constantly: *"it's sort of like a shortcut,"*" *"it's sort of the right level of planning."*
- The guest repeats **"one thing"** / "one quick point" as a topic-entry device: *"one thing I love,"*" *"one quick plug I'll give."*
## Uncertainty Notes
- Timestamps are only coarsely available (10-second transcript indices); fine-grained pacing observations cannot be made.
- Speaker attribution is inferred from conversational context (host/guest alternation, first names "Dan" and "Jeffrey" used in dialogue); a few overlapping passages have ambiguous boundaries.
- The cold-open segment at the top appears to repeat later content (*"I'm gonna kick us off with my goal"*) — likely a teaser, but this cannot be confirmed from the transcript alone.
# Position & Reasoning Record: "You Can Build an App in 60 Minutes with ChatGPT — Ep. 5 with Geoffrey Litt"
## Participants
- **Geoffrey Litt** — researcher at **Ink & Switch**, an independent research lab; explores **malleable software** (identified in transcript via introduction)
- **Dan** (host) — podcast host; teaches a course called "How to Build an AI Chatbot"; wrote an article called "What Comes After SaaS" (identified via transcript self-reference)
---
## Core Positions
### 1. Malleable Software (Geoffrey Litt)
- **Definition**: "Computing environments where anyone can mold their own tools to their needs" — "we can all have the software that works for us, not for some product manager off in San Francisco."
- **Origin of the quest (~5 years)**: While at a startup building software for schools, Litt became "really bummed" that every teacher request (change a word, add a button) was refused — standard SaaS practice, but "it felt really strange" to him.
- **Key claim**: Programming was previously the bottleneck; generative AI "can kind of sometimes turn fuzzy ideas into code," creating a "shortcut through that impassible mountain."
### 2. The Hotel vs. Home Metaphor
- **Dan's framing**: Current software (Spotify, Gmail) is like a hotel room — identical for everyone, customizable only on the company's terms; his vision is more like **owning your own home** with power tools or "a general contractor on staff."
- **Litt's response and extension**:
- "I love that analogy" but it's "subtle in that sometimes hotels are fun."
- There's a full spectrum: hotel → rented apartment → buying a built house → building from scratch; "it's okay to at different times be on different points."
- **The pernicious part**: "If we all lived in hotel rooms all the time you would probably stop thinking about questions like what would be a better layout... those questions don't occur to me." Worst case: SaaS tools "subtly affect the way we think and we don't even realize it."
### 3. Agency and Constraints Beyond Code (Litt)
- Not all agency limits are technical: arriving at a hotel with a construction crew fails due to "a social agreement or legal framework" — similarly, software distribution and legal structures block modification even if you have dev capability.
- Central question he's working on: "How can we reorient the way software is distributed and constructed so that my personal dev team can actually do useful stuff for me" (e.g., browser extensions, forking open-source software).
### 4. Learning: Make First, Fundamentals Second
- **Litt**: "The way that I learn best has always been to make first and then figure out what I'm doing second." Rejects the dichotomous debate: fundamentals matter to go far, "but that shouldn't be a barrier to you doing anything." Got started in web dev by copy-pasting Rails apps without knowing Ruby.
- **On frustration drop-off**: Before, a missing semicolon could take three hours — "so demoralizing"; people without a friend/tutor drop off there. With ChatGPT, "the default flips to I have flow, I have momentum."
- **Dan's corroborating claim**: His course takes people "from not really being able to code to shipping an app in 30 days"; day-one working chatbots motivate learning fundamentals "connected to practice" rather than six months of abstract loops and if-statements. "There are a lot of people who are within the Horizon of being able to make stuff that don't know it yet."
### 5. ChatGPT as Muse, Not Oracle (Litt)
- "The moment for chat to get involved is not when the idea is fully formed... ChatGPT is a muse not an oracle."
- Like a designer/engineer: "the earlier you bring them in the more they can contribute to the ideas."
- **Iteration speed as the real superpower**: "It's not that chat always has the right answer — it's that getting a new alternative is much faster." Cites prototyping a game at a hackathon by iterating every ~5 minutes.
### 6. Scoping and the Hardest Unsolved Problem (both)
- **Litt's identified gap**: ChatGPT is "least well served" at helping non-programmers judge feasibility — "how hard is this going to be." Senior engineers push back ("Dan, that's not a good idea... let's try this other thing"); current tools don't do this.
- **Dan's agreement from teaching**: The practice is to "figure out what is the core smallest thing you can do"; the big failure mode is "they try to do something way too big at the beginning... and get lost in this rabbit hole." ChatGPT "lowers those iteration cycles."
- Applied live: Dan's idea of **real-time transcription fed into ChatGPT** was descoped as too big for the session; both agreed starting minimal (a clock app) and expanding.
### 7. Workflow and System Prompt Details (Litt)
His custom GPT setup and reasoning:
- **Constrained stack**: React + TypeScript + Tailwind, single file, for a pre-built Replit template.
- **Clarifying questions step**: "absolutely critical" — "we want to be in a conversation." Observed: ChatGPT is "really good at" asking clarifying questions but **poor at knowing when to ask vs. fill in itself** — "sometimes it'll just barge ahead too quickly and other times it'll be too conservative." Compared to an employee judging what to escalate to a manager.
- **Plan before code**: prevents it getting "stuck in weird corners"; planning should be calibrated to task magnitude, like human engineers.
- **Copy-paste to Replit is "duct tape"**: "obviously not how these tools should work in the future."
- **Hardcoding values**: time range hardcoded since it's a single-use app — "that's part of malleable software, we don't need extra stuff."
### 8. Observed Limitations (stated, not smoothed)
- The simple micro-app stack **doesn't save data** — Litt chose this intentionally to avoid complexity; notes are lost on reload until they asked ChatGPT to add localStorage.
- **API integration friction** (encountered live): ChatGPT elided "existing code" instead of full files; the OpenAI API call initially failed (missing package, env-var handling for browser vs. server, `dangerouslyAllowBrowser` flag, secret naming in Replit).
- **Security caveat**: hardcoding an API key means anyone with the shared Replit link could use it — "a big problem."
- **Litt's explicit qualification**: "This workflow... in my experience doesn't work that well for people who have zero programming experience yet."
- **Dan's counter-qualification**: Non-programmers *can* still use it — "it will take them longer and they will run into problems... it's sometimes not going to solve every problem for you, just some of the problems"; getting stuck for four hours is "actually the only way to learn."
### 9. Disagreement/Tension on Reading Generated Code
- Dan: "I never read this stuff I just copy paste and go."
- Litt (laughing): "I can read this but it's dumb I would rather just see what it did."
- Litt also noted background programming knowledge is "a huge accelerant" — e.g., catching Dan's accidental paste of **Python** API docs into a **JavaScript** project, and foreseeing the browser-vs-server API key issue.
### 10. Local-First and the Future Platform (Litt)
- Ink & Switch pioneered **local-first** software architecture — benefits: data privacy, ownership, and (key for this use case) making apps that store/sync data "literally... one line of code," no servers.
- Uses **Automerge** library; goal: AI-generated apps dropped into an environment gaining "authentication data sync data storage all out of the box for free."
- **Future direction he emphasized**: starting from scratch isn't always ideal — "often what I actually would prefer is to start with an app that someone else made that's almost right but I just need to make a small tweak." Future = "less starting over from scratch and more modding and remixing."
- Demonstrated: forking the Replit app so Dan could extend it in his own ChatGPT session.
### 11. Bespoke Micro-Apps vs. Finding Existing Software
- **Litt's claim**: "A lot of the time it's actually faster now for me to just make the thing that has the tiny features I need than to... Google which one is the best and learn how to use it." Values the "nothing is there unless I specifically added it" quality.
- **Dan's broader claim**: This is a new software paradigm — single-file, local storage, single-user — fundamentally different from SaaS microservices. It "takes people from zero to 10" and makes experienced builders ~30% faster, but more importantly "makes it possible for you to build things that you just wouldn't have put the time into before."
### 12. UI Generation Future (both)
- **Dan**: Foresees on-the-fly UI inside ChatGPT instead of Replit paste; custom GPTs persisting usable UIs; cites the Google Gemini demo.
- **Litt's extension**: "People aren't going to even need to ask 'make me a UI that does X'... the bot should just decide... it should pick the best UI for that task."
- **Litt's closing observation**: The janky generated UI itself provoked new ideas (checkboxes per question, drag-to-reorder) — "possibilities occur to me in a way that wouldn't if I was just in the chat box."
---
## Live Build Record (what was actually done)
1. Stated goal (Litt): an app open during the podcast for time tracking and remembering talking points.
2. Answered ChatGPT's clarifying questions: digital clock + progress bar (hardcoded 9:00–10:30 a.m.), preloaded/copy-pasted notes, "simple dark Keynote presenter mode vibe," no extra features yet.
3. Pasted single-file code into Replit template → working app on first attempt.
4. Added localStorage persistence via follow-up prompt → notes survived reload; each user has separate notes.
5. Dan forked the app, added a **"Generate Questions"** button sending notes to GPT-4's API, debugged live (install openai package, browser env vars, `dangerouslyAllowBrowser`), and successfully generated interview questions — though the UI was "really janky" (Litt's assessment).
## Closing Claims
- **Litt**: Wants "the feeling... of effortless flow" when building, and believes LLM tools are "on a path to enabling that for way more people."
- **Dan**: "This is sort of the future of building stuff and we did it in like an hour and I think that's so incredible."
- Pointers given by Litt: personal website **geoffreylitt.com** and his essay "Malleable Software in the Age of LLMs."
# Speaker Attribution & Provenance Record
## Video
- **Title:** You Can Build an App in 60 Minutes with ChatGPT - Ep. 5 with Geoffrey Litt
- **Video ID:** `01a0f15b-35a4-78e6-8905-e1f1b9caef93`
- **No curated metadata was supplied**; all identification below is inferred from transcript content only.
## Speakers & Roles
### Host / Creator
- **Identified in-transcript as:** "Dan" (guest addresses him directly: *"actually telling you actually Dan that's not a good idea"* and names a fork *"podcast guest Dan's version"*)
- **Role evidence:**
- Hosts the podcast; previously interviewed the guest "two or three years ago on Super Organizers."
- States he wrote an article called **"What Comes After SaaS"** (~six months prior, per his account).
- Teaches a course called **"How to Build an AI Chatbot"** (claims students ship an app in 30 days).
### Guest
- **Geoffrey Litt** — researcher at **Ink & Switch** ("in switch"), an independent research lab.
- Research focus: **malleable software**; describes a 5-year quest.
- Prior background: worked at a startup making software for schools.
- Personal site: **geoffreylitt.com** (approximate spelling in transcript: "jeffre l.com").
- Essay referenced: **"Malleable Software in the Age of LLMs"** (written "earlier this year," per his account).
- Grew up in Japan; describes his Japanese fluency as "somewhat fluent."
### Third Parties Referenced (not speaking)
- **Linus Lee** — prior guest on the show; discussed agency and tools ("I was talking to lonus Lee on this show").
- **Jason Fried and DHH (37signals)** — their product **Once** (on-premise, buy-once consumer software) is described by the host.
- **ChatGPT / GPT-4 (OpenAI)** — used as a tool throughout; not a speaking participant despite the host calling it "a guest in certain ways."
## Referenced Sources & Claims
- **Guest's claims about his own work:** malleable software research; Ink & Switch's **local-first** architecture and the **Automerge** library.
- **Host's claims:** his article "What Comes After SaaS"; his 30-day chatbot course outcomes.
- **Tools/products mentioned in use:** ChatGPT (custom GPT), **Replit**, **Notion**, **Tailwind/React/TypeScript** stack, OpenAI API, **Supabase**, **npm**, Vite.
- **External demos referenced:** Google Gemini demo / Bard on-the-fly UI.
## Promotional Segments (Flagged)
- **Host promotes his course "How to Build an AI Chatbot"** (people going "from not being able to code to shipping an app in 30 days").
- **Host references his own article** ("What Comes After SaaS").
- **Guest plugs his research/employer** (Ink & Switch, local-first, Automerge) — self-described as "one quick plug."
- **Guest's closing call-to-action:** directs viewers to his website and essay.
## Provenance Boundaries
- **Live AI generation:** code shown during the episode was generated by ChatGPT and pasted into Replit; provenance of that code is the GPT session, not human authorship (beyond prompts).
- **Interview recall:** the prior Super Organizers interview date ("two or three years ago") is speaker recollection, not verified.
- **Comment availability:** not stated in transcript or metadata — **unknown**.
- **Timestamps:** none present in the transcript; no timestamps should be inferred.
why don't we just build something together all right let's see how it goes so I'm going to kick us off with my goal which is I'm appearing as a guest on a podcast um I want an app that I can have
open while I'm on the show to help me keep track of time and remember what I want to say okay so we got this code I'm not going to read it I just copy paste and go I'm just pasting from chat GPT this should update live this little window here oh God look at Jeffrey welcome to the show thanks so much it's good to be back yeah good to have you I interviewed you I think like two or three years ago on super organizers that interview went really really well and uh I just think you're one of the deepest thinkers about this stuff and in the pre-production call I was just saying like I I think generative AI just sort of like it just takes the things that you've been thinking about to a new level and I'm just really excited to check in with you has changed over the past couple years indeed yeah and for folks that are you know are not familiar with your work you are a researcher at Inc and switch
which is an independent research lab and you explore what you call malleable software which are Computing environments where anyone can mold their own tools to their needs can you talk to
us about what malleable software is and why that's important yeah absolutely so this has been a quest that I've been on for at least the last five years now and it all started um I was working on a startup and we were making sta software for schools and um I just started getting really bummed that we kept saying no to every single request that came our way from some teacher in a classroom and
they would say you know can can you change this word because it doesn't match the way I teach or can you add this little button for me that would do X and we would say no you know we're we're not going to add that button just for you and that's such a normal way of
thinking about software for for people used to SAS um but it felt really strange to me and so I I started wondering what if we had a world where everybody could craft software tools that match the workflows they want to have unique to themselves and not just using these uh pre-made tools that's that's what malleable software means to me is that we can all have the software that works for us not for some product manager off in San Francisco and the really interesting thing that's happened the past couple years is that um until you know recently programming was a huge bottleneck in this space you need to do a lot of programming to make any sort of software and the big question was how can we sort of Route Around programming to give people tools to make software without doing that and what really excites me about generative AI is that um oh my gosh we now have a thing that can kind of sometimes turn fuzzy ideas into code and so that's starting to cut um almost like a shortcut through that uh impassible mountain and I think it's a it's a really exciting time to be exploring how can we apply that based technology to help everybody make and edit the software that they want to have right I love that it's it's an idea I've been thinking about as well you're you're obviously far deeper than I am but I wrote this article um called what comes after SAS I don't know probably
like six months ago um uh and and the short answer is like bespoke apps customized by Ai and um I think for for people who are who are thinking who who
are sort of newer to this one one way to think about it and I'm curious what you think of this metap for is like the difference between right now a lot of the software that you use it's sort of like you know when you use Spotify or um Gmail or whatever it's sort of like staying at a hotel where the the company like you everyone gets the same hotel room um and you know the company's running the hotel and when you sign up for for Gmail or whatever you get your little Gmail hotel room and it's got all the same things as everybody else and there's like some ways that you can customize it like obviously like you put your luggage in the hotel room like so there's certain things that are that are yours but everything is like basically the same the same basic model um and and over time like companies get especially stats companies get good at like adding little customizations or whatever but it's always on their terms it's always on their guard rails and I think your vision of software is a little bit less like these like infinitely large hotel rooms that that are that that people are staying in and more like um everyone owning their own home or something like that and and either having power tools and the to use them or maybe like having their own general contractor on staff that they can they can deploy to like make any change they want right yeah I love that analogy I think um it's a really good one too because it's subtle in that sometimes hotels are fun um and
there's a whole Spectrum from renting a hotel room to renting an apartment to buying a house that someone else built there are people also who build their own home from scratch and design it all right and there's a whole Spectrum there
and it's okay to I think at different times be on different points what I think is really pernicious about the hotel idea though is like imagine we all lived in hotel rooms all the time you would probably stop thinking about questions like oh like what would be a better layout you don't I don't when I walk into a hotel room I don't start thinking about moving the walls around or changing the decorations because it's not a thing that I obviously am allowed to do and so um those questions don't occur to me and that's what I worry about with software is um the worst case outcome is that we all use SAS tools that subtly affect the way we think and we don't even uh realize it because we're just so used to living in those tools yeah yeah I was just talking to uh a couple weeks ago I was talking to lonus Lee on this show and he was talking about something similar which is um the idea of agency and how our tools shape the agency that we have um and and thinking about ways to give users more agency in the context of General AI um where I think you know in large part for now there's there's maybe a little bit less agency in something like using mid Journey than you might get in something like using Photoshop um because you can like literally uh with mid joury you can prompt it but in Photoshop you can literally change the pixels um and and so figuring out ways to give people finer grain control uh is like a really interesting challenge in generative AI yeah absolutely um and you know I think one really important Point here is that there's a lot of different dimensions of how people gain agency and some of them are things surrounding the AI and are not cord itself so one one uh example following on with the hotel analogy right is you said you know maybe everybody has a general contracting team that they can bring to their hotel room if you show up at a hotel with a construction crew they're not going to let you you know tear down the your room and rebuild it right there's like a a sort of social agreement or legal framework or whatever around um your contract with that entity where it's not
really like your ability to move walls physically that is the constraint and so um to bring that back to S sofware what I think about a lot is um if I had a personal team of 100 developers that
were working for me I what could I do with that power and um you know let's say I'm using spotify and I'm like oh I hate the way that Spotify shows me these playlists I wish that it showed me them a different way um I don't I can't edit the Spotify app I don't have control over that um and so um what I'm thinking about a lot these days is how can we reorient the way software is distributed and constructed so that my so to speak personal uh Dev team can actually do useful stuff for me um can you know and for example right maybe they could make browser extensions for me or maybe they could if my software is open source and I control it maybe they could start adding features for me um how can we uh change the foundations of software in a way that is best positioned to take advantage of the fact that everybody is going to have uh this power available to them in the coming years yeah no that makes total sense and it just making me think of I teach this course called how to build an AI chatbot um and one of the really incredible things about this course is we take people from not really being able to code to shipping an app in
30 days and um it's really it's really cool because I feel like there are all these people out there who are just waking up to the idea that they have these like magical powers um where like
they can literally now build stuff in a way that they couldn't before a lot of these people are like okay it's like there it's a product manager who you work with engineers and you've like maybe you took one uh one coding class in college but you've never like felt confident enough to like actually go build and ship a react app or whatever and what all they really need is like a little push to be like okay just use chat gbt like ask it what to do here's some sample code and like go and it it really it really changes things for people where um one is on day one they can have a working chatbot like with a couple prompts and that's like a big holy I cannot believe that I can I can actually make something and then what it does is it motivates them to try to learn the underlying fundamentals in this way that's like very connected to practice as opposed to the way that you used to have to learn programming which is like you spend six months like learning about loops and if statements and like all this stuff and you're like I don't I don't I have no idea how this connects to like the things I want to make and so I just think that there's this like there's this really um quickly expanding Horizon of who gets to make things in in the world um and there are a lot of people who are within the Horizon of being able to make stuff that don't know it yet but like all they literally have to do is sit down with chat TBT and that Horizon is going to be like significantly larger in five years and I think that's that's one of the things that you're you're working on and I think it's so exciting I love that way of thinking about it you know for me the way that I learn best has always been to make first and then figure out what I'm doing second um and I think people people often end up in these dumb debates that are like you know people should be able to make stuff without learning the fundamentals and then other people are like it's really important to learn the fundamentals and my take is yes it's important if you want to go really far at some point you're going to have to dig deep and actually learn what you're doing and that's going to propel you but that shouldn't be a barrier to you doing anything and so in my career you know I got started in web development just like throwing together rails apps and I didn't really know how to program I didn't know Ruby um I was just sort of
copy pasting and messing around and I fought through the pain just because I wanted to make and share stuff and I think you're you're exactly right that um the flip that I see when people start using chat GPT is all of these
frustrating moments that before um took incredible dedication to fight through because they were so frustrating and programming is full of these absolutely full of these things uh a single you're missing a semicolon and it takes you three hours to realize I that that's why your thing wasn't working that's so demoralizing and um people who don't have access to a a friend or tutor who can help with them with that there's just a huge drop off chance I think at that point and when I'm using chat GPT even now I'm a I'm a skilled programmer but there's I'm often working in areas that I don't know as well um having chat GPT with me just feels like um the default flips to I have flow I have momentum and I have this this sort of support that's going to make sure everything uh goes okay and I I'm just less worried about getting stuck and I think that that feeling is really qualitatively different and I agree when people realize that it's a it's a really exciting flip for them yeah it really is so I think that that sort of brings us to you know the the main the main thing that we wanted to do today which is um you know in a lot in most of these episodes what we're doing is um we're going through historical chats and then and then you know we both kind of interact with chat gbt and we and we explore something and find things that we we never would have found before and what you suggested which I think is brilliant is like why don't we just build something together why don't we build an app and I think in the process of building an app one is people will be able to get just a little bit of an idea of what you mean by malleable software what this future of like being able to modify things is going to look like and then two is they're going to be able to see what are the specific ways that you're using chat PT to achieve these results um in a in a just a very very detailed way and we'll try to make it so that if you're a programmer you can get you can get a lot out of it and if you're not a programmer you'll be able to understand what's going on you'll be able to see like get a little bit of a taste of like what would it be like to push myself in this way a little bit and try to build stuff and I think it would be really cool yeah I'm excited to try it out and maybe just as a Preble I can talk a bit about how I think about um this this task that we're going to do right so um what I've been trying to do in my work is um sometimes there'll be a brief moment when I'm in the middle of something and I have this thought that's like oh I wish I just had a software tool that did X and um again this is
getting out of the hotel mindset and I've been trying to notice those moments and and think wait like could I actually make that and um before maybe that would have taken a day so the answer is like no not worth it but now if the answer is
like five minutes maybe right and so I've been trying to notice those moments and I've come up with a workflow um that's very very simple and crude but has worked for me a few times for making uh these sort of quick apps that help me with stuff um one small example of one that I built before um is I was prepping for trip to Japan and I'm I actually grew up in Japan and I speak um somewhat fluent Japanese um but I have some sort of pockets of missing uh skill particularly in more formal communication and I was on these text message threads with um some of my mom's acquaintances who I don't know as well and I I needed to sort of text them in a way that was correct to the the context and I was just struggling and I was I was doing all these chat GPT chats um to try to help me with the translation and it was really helpful um but I kept hitting these really annoying chat situations where I would be like that sounds too formal make it sound a little more casual like that sounds too casual make it sound a little more formal and so what I did in the end is I made this this UI tool that um you can do a translation and then there's a little slider to adjust how formal the translation should be I love that and that was just way more way easier way more fun uh and it sort of uh encapsulated a lot of the wisdom of this system prompt I had been iterating on in a nice gooey tool that I could then just with open whenever I want it and so that's sort of what I mean when I talk about these little uh helpful software tools that I wish existed just for me right and so that's that's I think the kind of thing that would be fun to try to to build together okay cool well let's find a let's find a tool to make like I know you have some ideas I've got some ideas why don't you start and we'll just kind of go back and forth until we find something we like yeah so um one idea I had was I'm a guest on your podcast right now and so what's like a utility that I would want to have while
I'm guest on your podcast um and you know I could imagine like um maybe there's like a Time bar that kind of shows me like how are we doing on time and so I I have
an ambient awareness of pacing sort of like um you can imagine it's like keynote presenter mode but specialized to being a guest on your show maybe there's a checklist of like topics we want I want to make sure I hit with you and I can check them off so I have like this Aid um I don't know if there's stuff maybe as a host do you have ideas for what you might want yeah let's ideate a little bit because I think you're onto something like this podcast is sort of unique in that chat GPT is its own like it's a it's a guest in in C in certain ways or it's it's a it's a part of it and I'm I'd really love to bring it in even more where like for example one thing that I think would be really useful I often find myself like wishing that we had a live transcription that could then get easily fed into chaty PT and have chaty BT like respond to what's being said um and um I don't know if you feel like equipped to do that or if that would take too long but something like that would be like really helpful because I'm often sort of like as we're talking I'm often like writing stuff into chat BT and then being like this is what they said like what do you think basically and if if there was an easier way to do that um that would be really helpful I think like one of the constraints is I I would it would work if it was own
interface it would be even better if it was inside of chat gbt somehow I don't that's probably going to be like really hard to do but like um just just sort of thinking like um the maybe the the the
minimal thing is like real-time transcription that's like really easy to either get into chat GPT or to um just have just have GPT like give some like sample questions or some thoughts like in real time as things are happening that um could help push us in new and interesting directions okay so two thoughts first of all at a meta level we should get chat GPT in on this brainstorming session in a second because one really important thing is that uh the moment for chat to get involved is not like when the idea is fully formed this is a huge part of my philosophy on this stuff is chat GPT is a muse not an oracle so it's not um like we will craft the perfect app pitch and then bring it to chat GPT and then in one shot it will generate the perfect app and then we're done it's like it's like a designer you know the or you know or an engineer the earlier you bring them in the more they can contribute to the ideas and the more context they build up and so um we should do that second second brief thought is um this is actually getting to one of the hardest parts of this process that I think is not is least well served by chpt currently which is you ask me could we like do this how hard would it be and um you know I'm I'm a programmer and so I have a lot of context in my in my head for helping to assess very quickly like on a scale of 1 to 10 how feasible is what you're you're thinking of and um I think one of the biggest challenges that chat isn't as good at yet is helping people who aren't programmers figure out like how hard is this going to be is it even like possible um and so when when I build these apps for myself um currently there's a lot of that that background knowledge I have feeding in to the process and helping it along and so one thing I'm excited to explore in the future is can we make these tools better um you know basically telling you actually Dan that's that's that's not a good idea like I get it it would be cool but it's it's just going to be too much work how about let's try this other thing instead that's what senior Engineers do right so um that's the
process going on right now in my head that uh I think you're you're totally right and it's something that I see in my course as well is like people just go into these like people get Grand Visions they have these big Ideas right and
that's what motivates people to build stuff and I'm constantly sort of like being like okay your practice is to figure figure out what is the core smallest thing you can do and just do that and and use that as a stepping stone to like build the more complicated thing later but like the big failure mode for people is they like try to do something way too big at the beginning and then then they're like well this isn't going to work or whatever and they just get lost in this rabbit hole and finding finding that little small thing that's useful to start even if it's not your big vision is like the best way to build stuff and you know it's this is classic Lean Startup sort of iterative ual thinking and the really cool thing is chat can lower those iteration cyes so much so um I was prototyping a game at a hackathon earlier this year and I was just trying to have fun at this hackathon I wasn't trying to like work hard right and I wanted to prototype different ways the game could feel and so I would just say to chat you know what if it what if the car moved this way and then I would go off and talk to people come back five minutes later I have a new game I play it and I'm like oh you know that that sucks let's do this other way and so I think um it's doubly important when using chat GPT to realize like the superpower you have now is that iterations are fast it's not that chat always has the right answer it's that getting a new alternative is much faster and so your your goal as a person driving it is to take advantage of that iterate really quickly and try a bunch of stuff really fast and then respond to it yourself and sort of see where it goes so I think we should try that like one thing we could try is just starting with a very minimally scoped app has like a clock on it or something and then we'll see that working and sort of like we'll have more ideas you know riing on that and sort of we'll just go from there or something that sound I love it let's do it so here we are we're in chat gbt uh and we're gonna get started uh coding this this little app and I and I want to point out I got super excited about this like whole real-time transcription thing um and I think you're kind of like that's probably a little too big to do uh live in I don't know we have like 30 or 40 minutes I think that's just that's just such a really important thing to note is that this happens all the time in
programming it's a normal thing to be like I've got this like amazing thing and then to be like no no we got to like we got to pair it back to like something that's useful that we can do in the time we have and then we can add more later
yes um and so I think we should start with a super small thing and expand out from there and that's something that by the way you know um what I'm always thinking about with my system prompts for chat and Tools around this stuff long term is people don't just need help programming they need help with product management and scoping and coming up with the right ideas to solve the problem and design and chat GPT can help with all that stuff too and that's really important to remember so so lead us off so like how are we going to get started what are we trying to build or or maybe like maybe the first step is trying to figure out what we're building with chbt tell us how to get started okay so we're just going to use this custom GPT I actually just this together um and put in a system prompt that I I like maybe I'll show that before we get started using it so you get a bit of behind the scenes so um here's here's what this uh bot
basically does um it's a helpful AI coding assistant make sure to follow the user's instructions precisely because coding is a domain where sort of Details
Matter um and I give it essentially a very specific opinionated stack for the code it's going to Output um react typescript Tailwind this is um a very popular set of Technologies it's one that I have a pre-existing template for in replit which is this online coding platform and I tell it generate all the code in a single file so basically it's going to give us some code and as we'll see we'll just be able to copy paste it into repet and see what it does um so this is really important to constrain what it's doing in a in a particular technical way to get an output that we can work with easily um I'll note by the way copy pasting code from chat GPT to other idees is not the best workflow in the world it's obviously not how these tools should work in the future it's just a duct tape together way that you can do it right now that I like to use for quick experimentation yeah now let's talk about a bit about the workflow so I think this might be the most important part of the prompt um is so you get an initial idea from the user question two is um or part two is absolutely critical ask the user for clarification on parts of their idea that are under specified so people so we we'll see this play out in a second um we're going to ask it to make an app and our our idea is going to be vague and what we don't want is for chat to just run ahead and make up a bunch of stuff and like you know make guess what we mean we want to be in a conversation where it's going to ask us for help and clarification and we're going to clarify what we mean together um then once ambiguities are resolved we're going to proceed um we'll make a plan for how the code's going to work first that helps it generate correct code and then it's going to write the code okay so that's the basic that's really good H H so I'm curious like how well in your experience is this how how good is this at following this workflow once you have it in your in your custom instructions for this GPT um I've done a bunch of iterations on this prompt over time um my experience has been that asking clarifying questions it's really good at that I'm always amazed at how f as clarifying questions are the hardest
task that it's not so good at is um knowing when to ask you to clarify something or whether to just fill it in itself um I try to resolve that by
saying if there's some minor ambiguities just make assumptions about what the user means and tell the user what you're what how you're filling them in um but sometimes it'll just barge ahead too quickly and other times it'll be too uh conservative and asking for too much input from me it's like you know if you're an employee and you have a a manager and you're trying to figure out you know what are the things I need to ask them about versus I I can just go do myself it's that Dynamic right that makes sense um I'm I'm super curious to see how this goes all right let's see how it goes so um I'm gonna kick us off with my goal which is um I'm G to say I'm appearing as a guest on a podcast um I want an app that I can have open while I'm on the show to help me um keep track of time and remember what I want to say okay so great we're getting clarifications live and um I'm starting to read them and think through um my answers right so time tracking um I'll just maybe I'll just keep going and answer these questions okay great so we got answers um let's go through one by one and um I'm going to think through my answers to these questions so first um time tracking um it's saying do I need a simple stopwatch or a countdown timer so I'm just going to say um I want a progress bar um or I'll say like digital clock plus progress bar um going from 9:00 a.m. to 10:30 a.m. um now one really neat thing is we don't need the app to have a place to set the time start and end because it's an app literally just for this one appearance on this show and I'm with you today this morning from 9: to 10:30 a.m. so that's going to be hardcoded into the app right um that's what part of femal software we don't need extra extra stuff um preload notes or ADD and edit notes during the the podcast I guess like um
preloading is fine and by the way I'm using um we have a notion link with notes it would' be cool if it could display that oh yeah um should it be able to show show the notion link or do
you copy paste in markdown from the notion what do you think um I mean ideally it shows the notion it shows the notion Link in an i frame or something like that but yeah okay so um it's funny you just used you just used the word if frame so that revealed that you uh you know are thinking on the technical side of this too right and I think um we might want to linger there for a second and this is another instance of what I said earlier where having background knowledge about programming is a huge accelerant to this process right now and the reality is um this workflow we're doing um in my experience doesn't work that well for people who have zero programming experience yet I want to build tools that help get us there in the future but um it's it's interesting so let's say um uh we have our notes in notion um maybe we could show those um embed those somehow um or copy paste them in I'll let chat sort of make a call on how to sort of proceed yeah I like that um styling or layout preferences um I like giving it a Vibe here one Vibe I had in my mind is I kind of like the keynote presenter mode um so I could just say like simple dark keynote presenter mode um Vibe VI simple Darko presenter mode
Vibe I like because I feel like when you give it Vibe it like kind of knows to be fuzzy about it rather than like very direct yeah for sure um by the way quick meta note I'm using the numbers here
which is just a great shortcut for like responding directly to each of his things without too much tying um and and by that you mean like it gave you four questions and you're using numbers to exactly I'm just using the numbers 1 2 3 four to refer to each of them I don't need to say like for the time tracking thing I want you know I just reduce extra words right that's actually great I didn't know that number four any other features um I think that those we could have cool ideas in the future but I'm just going to say not yet um start simple um all right so let's go see what we get so yeah go for it it's gonna do the plan first um the plan this is really important um if you have a generate code without a plan it tends to get stuck in weird like uh corners and that it can't get out of and um having it generate a plan first just like you know a real human engineer doing any coding work having a plan first really starts um so let's see it's done one thing that's interesting is um for the notes section it's suggesting a text area where notes can be copy pasted rather than doing the embedded notion iframe thing so that's an interesting decision it made absolutely is um I don't you know we don't know why it made that decision presumably it's because it's easier um yeah we can push it towards the embed later it is nice that um I like having this early sort of planning section because it's a quick way to see what it's about to do so we don't need to like try to read the code we can just you know it's it's writing a spec document as a product manager that we get to look at uh and this all looks pretty good to me current time progress bar copy paste text area a readon mode to avoid accidental edits during the podcast is kind of a fun idea we'll see if it incorporates that um now let's see the second thing it did is a pseudo code
plan um as a programmer this is really helpful for me because I can actually look at this and see um you know if there's anything that looks like it's
going to need to be fixed in there so while it's writing the code we can review that um and it's not just useful for um for for you I think it's also useful for chbt to write write out the product spec write out the pseudo code and then actually write the code and and in the same way that it's useful for programmer to WR pseudo code I think it's it's useful for chbt so it doesn't it doesn't go off the rails it can plan what it's going to be doing and all that kind of stuff yes absolutely um my general philosophy about this is um just yeah just like humans need to plan the right amount for the magnitude of the task like as a skilled programmer I can go do a super quick bug fix or tiny feature without writing a whole dock explaining what I'm going to do but if I'm gonna spend six months on a huge project I better have a plan when I start and so I think similarly about like um I try to calibrate my sense of
how good is chat GPT at this task and the worse it is the more planning is going to be needed up front and the more coxing to make sure we sort of gently approach the goal um and so coding for
me um this is sort of the right level of planning I think for this um you know this is not a huge app it's a tiny tiny little thing so I think we haven't needed that much iteration yeah okay so we got this code I'm not going to read it uh I never read this stuff I just copy paste and go why don't you read it tell me why it's a waste of time why would I why would I spend time reading this um yes I can read this but it's dumb I would rather just see what it did and use the thing you know that makesense maybe I'll read it later okay and you're flipping to repet so explain to us what this is what repet is and like how you got what are what are all these files like give us a give us a background yep so repet is an online um coding environment where you can uh set up a quick environment to run any kind of code and then you can edit it in your browser and have it running um and I can also share this link now with other people who can collaborate with me and this um coding environment and use the sort of resulting application the reason I use it is because it's um it's just one quick way to get running without a bunch of fuss and ceremony um and I before this uh interview I set up um just a little template that has sort of the text deack that I told chat GPT to use it's it's pre-installed here and ready to go yeah I can share that as like a template with you you know as a link or something but that's that's all I have going on here um that's that's really and I just want people anyone who's nontechnical who's watching this to realize like this might look complicated but a repet is like it's very templatized it's very easy to just click a button and get something that looks like this and and know where to paste your file and B like you can actually like everything that we've done so far is pretty natural language you
can actually get this far even with very little programming knowledge and um and so if it feels intimidating it's it's really not not that hard and I think
that's one of the wonderful things about this so with that let's paste in our code and see what happened yeah I'm just pasting from chat GPT this uh should update live this little window here oh my God look at that look at that so um it has the time it's correct the time is the current time it's going from 9: to 10:30 uh I'm just eyeballing it that looks right right it's 950 that the halfway mark is 45 minutes okay awesome uh it did the simple Dark theme pretty well I would say um and then let's see can we type in this box okay uh it has a box for notes uh pretty good pretty good first draft out there what you think this this is Magic like this is crazy you know I like I we have to like stop for a second and and just just appreciate how Wild it is that we live in a time like this where like the amount of time and knowledge and effort that it would have taken just a year ago to do the same thing is sort of like mind-blowing it's like stunning how different this is um like a it like obviously the code that the eventual code that has been written by chat gbt is like not that hard to write for like a senior programmer or whatever but like still you know it might take an hour or two or whatever even for even for someone who knows what they're doing and this did not take an hour it took five minutes and and it did
it also didn't require a senior programmer to do like liter you didn't write any code literally you didn't even look at the code you literally just typed here's kind of what I want and asked some clarifying questions and now you have an app that the thing I love
about this is It's styled and it has this like cool progress bar that updates live like that's crazy yeah it's so exciting so I want to analyze this from on the one hand I couldn't agree more with you it is so cool and exciting even for me as a programmer like you said I would have spent the time to make this thing and the fact that it's 10 or 100x faster for me to make increases the number of things I'm willing to make so it's really exciting and you know definitely um so that's awesome I will note like again um we're gonna push it further and see where where the limits are now but like um we operated within a simple um starting point and um you know as we push this thing further we're going to hit more challenges so we haven't solved all the issues yet but this is I agree it's an it's a very exciting starting point one one little thing I'll point out um that's interesting about this app right now is an example of some of the drawbacks so um this stack that I tell chat GPT to use as my simplest sort of micro app stack it doesn't save your data at all so actually if I reload this um and let me I can open this in a new tab so um here's here's the app full screened I guess um and I can have notes here um but if I ever reload they're lost so that's um I know that limitation as the
person who put together this Tech stack and one of the reasons I chose that stack is intentionally because saving data often makes apps way more complicated um now I have um other
Stacks I can play with that I haven't set up for this that can save the data um but when I'm thinking of ideas in my head I'm thinking a lot about like how can I um scope this thing so I don't need to have that technical complexity and that's a that's a skill that you know engineer and PMs you you drill a lot but normal people haven't thought about as much so um you know I think it points to both of course you know um in the you know in another version of this um we should have a GPT that can make apps that can store data that's no-brainer but there's a there's a broader point which is like this negotiation of complexity of implementation and requirements is a delicate dance that um we're going to have to work towards better tools that help people do that right I I think you're right I also will note so one is so definitely like saving State and doing logins and authentication for example are some of those things where you're like yeah that's that's a little bit more complicated two I think that those things are getting easier and easier over time and you know I can imagine because this is a single use app you don't even need a database like you can just save something to to like a notes file or like save it in local storage or whatever so I think that that makes it easier but there are also services like superbase or all these other things that it just makes it super super easy to interact with the database and what I don't want people to come away with is the idea that like I think you're right there are all these like hidden Corners that you can see or maybe I can see that um we know okay like savings State's going to be like hard so we're going to scope away from that for now and that definitely saves us time but even if you're someone who's using chat GPT who doesn't know that um you're going to find that out because you're going to be like hey can we save State and then you're going to get stuck for like four hours and that's actually the only way to learn so it's actually not
bad that you don't know that it's just that like I think what you're actually saying is not that like normal people who don't have a lot of programming experience can't use chbt for this like they can it's just it will take them
longer and they will run into like problems it's not like Chachi is going to solve every problem for you right now there are still things that like you know experienced developers are going to know and be able to push the push the chat to do and not do that is going to save them even more time than for for a normal person but it's still quite useful for someone who's uh who has very little to no programming experience it just yeah it sometimes is not going to solve every problem for you just some of the problems yeah that's a that's a great point I'm not trying to discourage anyone from you know using this workflow if you don't know how to program it's just be curious ask ask for how hard it would be to do various things you know and see try to get those answers one quick plug I'll give is um the research I'm doing it so I work at a independent research lab called in switch which um has pioneered a a software architecture called local first um which has a bunch of interesting benefits for users like data privacy and ownership um uh but actually one of the most interesting benefits for this use case is that we're trying to make it really really simple to make an app that stores your data can sync it with other people where you can share data um have it all saved privately and that shouldn't require setting up some server that you have to run and like thinking about like operations it should literally be like one line of code and you're often running you're storing data you're syncing it and so um we're doing a lot of work right now on trying to create an environment based on that local first architecture using a library in switch developed called automerge where when you make an AI generated app you should be able to plop it into that environment instantly you get authentication data sync data storage all out of the box for free um no servers in the mix and I'm
really excited about that as one specific future thing to to um make it easier to build really full functioning um tools that you know um go beyond just
a little stateless thing right um so that's really great one specific example here is that I'm not going to do this today but in the future if I have my notes in notion um you know maybe we'll try embedding this thing but the app should be able to maybe load my notion notes directly into this view in a different way um and access those existing notes I have without me needing to like copy paste them right that's a that's a thing I want for the future um but maybe do you want to keep going with this demo and see if we can get Chachi to save our notes in this in this yeah that would be great okay so um let's give it a little bit of encouragement this is a great start um always got to encourage the AI in case it takes over let's be nice and uh yeah gain brownie points um but actually also I find that I want to tell it that it's on the right track so it doesn't like freak out and totally redo everything um um is there some way we can save the notes that we've uh entered in the browser so they don't get lost when we reload and I I want to point out like that's a question that anyone can ask I'm sure you have some thoughts about the way that it should do this but um we'll see how good Chachi BT is at finding the answer that you would have gone with exactly um and it said it said certainly it uh said an answer it's going to say we're going to save them in local storage um as an engineer I know
that that's a perfectly fine way to think about it and then it's just going to Output all the new codes so um generally for little tools like this I just tell it um the system prompt I
think says to just output the entire new code and that's really like the the simplest thing you can do and it's nice because what I'm going to do is just copy this and paste it into repet again once it's done and we'll see what it changed sometimes for larger things I like to tell at a different prompt which is to generate minimal edits and um only tell me the parts that change just because it's faster um but that is a little bit more annoying because then you actually have to like start thinking about where you're copy pasting um and that can be a bit annoying okay so uh I pasted in the new code there's no visual difference I'm going to reload to make sure we got the new version these are my notes okay uh let's reload it worked ah amazing uh there it is and if I come over here and reload oh my god um hello reload okay the notes are saved that's amazing that's amazing and and one thing that we should be clear on like that website is live like you can send me that URL and it's live it will not save the notes I'll have my own version of the notes so we each have our own notes um rather than there being one common note that which is an important DET to point out you know it's funny too you just again used your programming knowledge to to say that um you know we
could have also asked chat like um does everyone using the app share one notes saved or does everyone have their own
um okay so every user has their separate and unique set of notes great okay there there's something really interesting going on here for me like this is such a a different way of thinking how to build programs not because it's just AI built but like for example having everything be in one file um or saving things locally um is just it's a it's a different Paradigm from the current way that we build SAS apps where it's like microservices or like breaking up into modular components um and like having having databases and authentication or whatever and it's like it's this fundamentally new thing that is only possible because you're you want to build bespoke apps for like small use cases that are used by single people um and that's like that's actually just like a new world that is like start starting to Blossom a little bit that we don't we don't know where it's going to go um but I I just want to underscore for people how much okay so there's this new workflow which is like makes people incredibly more productive it gives people who can't code the ability to build stuff so it's it's taking people from zero to like 10 right and then it also takes people who can build stuff and it makes them I don't know 30%
faster or whatever but I think what's really important that you mentioned earlier is it's not just about like a speed upgrade it it it makes it possible for you to build things that you just
wouldn't have put the time into before like you just wouldn't have made this before at all um and so maybe you make 10 or 20 more things in the world per year because of this that you wouldn't you wouldn't have made previously so big performance workflow difference but then also it's like it's a different kind of software it's just a different it's a new thing it's there's there's something coming now that's different from SAS that is enabled by exactly this stuff and we're just starting to see what it's like and this is like this is like the the the the earliest inklings of that and it's so cool to see it exactly one thing I love you know if you look at this app it's so simple it has nothing I don't need because we're building it up from zero and I've been finding in these building these little tools for myself um one question you might ask is like wouldn't it be better to go find some existing app because someone else who's better or who's either you know more skilled than you at coding or design or has just spent a lot more time thinking about it maybe there is a podcast guest like app out there or something I haven't looked but in my experience um a lot of the time it's actually faster now for me to just make the thing that has the tiny features that I need than to go like try to Google which one is the best and learn how to use it and I love the the paired down kind of like nothing is there unless I specifically added it quality of these micro micro tools yeah it's really cool you know what this reminds me of have you been looking at what um what Jason freed and dhh are doing at 37 signals um they have this uh this new I guess software company underneath 37 signals it's called once and um basically it's like it's it's on-
premise software for consumers it's like they're making they're making some some sort of app for like prosumer business people where when you buy it instead of paying a SAS fee you pay once and then
you get all the code the code is not minified or bundled or whatever it's just like this it's mostly in one or a few files and you can read it and it's owned by you modifi modifiable by you um and I think they're they're sort of like you're I think you're pushing this forward from like a research Direction like what's possible to enable this stuff and they're like already sort of like thinking about okay how do you commercial this kind this new kind of software how do people pay for it and all that kind of stuff I think that's really interesting yeah I I love that sort of Direction and in in my research at in can switch we're pushing towards again this new kind of software distribution platform where you own your tools and you have the capability to modify them that's another quick point I want to make that's really important to me is that starting from zero and starting from scratch isn't always the ideal workflow often what I actually would would prefer is to start with an app that someone else made that's almost right but I just need to make a small
tweak that's something that's much harder in today's software world because often like I said earlier it's you're not allowed to make that tweak you can't do it because of infrastructural reason and so what I'm showing here is kind of like the the easy path that works in the
current world which is just to start over from scratch but I think actually in the future there'll be less starting over from scratch and more sort of modding and remixing and that's going to be possible once imagine I send you this repet link you can look at you can actually that code um you know one thing I do sometimes in chat is like um you could make your own chat gbt session with this bot and say hey I'm starting from this app and paste in the code um and say what I want to do is add this other feature and it will just keep pick up that process where I left off and it's in your hands now and someone else might yeah do you want to try it um okay so do you want to simulate it where I I make a new chat basically or do you actually want no no I want I want to do it okay okay yeah yeah yeah let's do it um I love that so send me the repple um and then and then I need a link to your your custom GPT so I have I have the same the same stuff yes so oh this is going to be fun so we got the repple um cool so you should be able to see my screen now right yep okay cool so okay so you took that repple that you just made and and the repple is this is basically just all the code we we wrote chat gbt and you sent it to me and what's really cool is with repet like I can either press run and it'll just run it for me and that's really great like this is a live thing that's just running on the web right now or I can just press fork and U I can make um podcast guest Dan's version um way better than the old version um and then I can press fork and um now I have all of the code code um that you wrote with chbt and it's somewhere Source it's in Source okay app. TSX so it's right here and and that would that might be a thing that would take take you a little while to figure out but again you could just like throw all of this this folder structure into chat gbt and it would be like this is probably where the code is um and so now we've got to figure out what we want to do like we have um we have this sort
of initial thing that has a timer and um uh and has has a note section uh okay let's let's like brainstorm a
little bit one thing we could do is um we could have a little window that takes the notes and then asks gp4 to come up with um sample questions oo yeah that's ambitious I I'm into it I mean I think that's pretty doable right cuz like uh I mean really all we're going to have to do is like take take the notes uh well we should maybe we should ask Chad gbt but like take the notes send them up to gbt for with a little prompt and then just display the the answer somewhere um we might yeah I'm into it I think we should try it yeah um I think the applying again my engineering knowledge the challenge is going to be um making sure we finesse the API call to open a correctly um is something that I sometimes find is working with apis can be a bit challenging because apis change it might not know about the latest format something that's going to come to mind is it's going to um be really helpful if we give it like a successful example of an app that um actually did a good job calling the openai API um so we could try that pattern of I could send you a link to another reppel where I've already done a good openai call and we could tell it like use use this app as sort of like a sample well what I want to do I mean the way that I usually I usually get around this and I I think you're I think you're you're thinking about exactly the right stuff is um uh is just paste the gbd4 API docs in there so it knows it knows how to call let's try it should I should have web browsing but let's just try it so I'm gonna say something like and you you tell me if I'm doing something wrong but uh I'm G to say something like I have a web app um that I use to track uh uh my podcast recordings as I'm doing them um and I want to add a feature um here's the code I have so far so I think just giving gbt like the context um is probably pretty important um yep absolutely so I'm just I'm just going to throw it in there um and see what it
says yeah so okay I want to add a button uh so it's basically saying great I see you have a basic web app for tracking podcast recordings could you please specify what feature do you like to add
um add to your app I want to add a button um that says generate questions where um given um where it takes my the podcast notes and then sends them to gbt 4 and um uh return and uh displays uh the list of questions that gp4 uh returns and then the little note here is is um when you're working with apis as you said before and an API is like it's the it's the it's the gb4 service right the gbd4 service um has a way that you interact with it um and that changes over time as they make updates and um chat gbt is like not always aware of all those changes so the best way to work through that is to just go to open.com or wherever the API is and look at the documentation for the API and just give it to um uh just give it to the uh uh to chat gbt so it knows okay here's like actually how we um um how we uh call the API so let's see I think this is going to be good um so I just found an example of like how um how the gb4 API is is structured and I'm just going to paste it one quick notice you just copied some python code Dan and in JavaScript so that's a mistake used to I'm used to working in Python um you know this is a thing that like uh again you if there's
some programming knowledge to even know which of these things to copy right I think a node one is gonna go better yeah that's gonna go better okay so thank good good note good note uh I'm just going to paste it in there and um see
what it see what it does so so basically it's saying okay it's reflecting back to me here's what I think you want to do add a button to the exist UI create a function that sends the notes to gp4 and then display the received questions in your app and then it's creating a plan so add a generate questions button create a function that takes the current notes sends those notes to the open a API and handles the API response to extract the questions um create a new state variable for storing the questions and update this state with the received questions then show the questions in your UI that all sounds like pretty reasonable to me um and I'm going to do I'm going to do what you what you recommended and just copy paste yeah yeah quick warning um it did something interesting which is that it uh elied some code it said existing code in a few spots so it actually hasn't given us um a full new file that we can just copy paste I would recommend just telling it don't emit existing code just like write a full file that I can
copy see if that does that better and we're also going to have to set our API key which it's reminding us to do and I have an API key I can use and for
people that don't know the API key is just um you have to identify who you are when you make requests to GPT 4 so that open AI knows who to charge um and so you have a key this is another good example of a tricky thing where like um I can see a a problem in this code already that it's um it's going to try to use an API key from uh assuming that it's running on a server because opening ey usually their docs assume you're running like a server that's um querying them whereas in this case we're running an app in a browser and we have to set up the API key a slightly different way that's like kind of a um that's a subtle thing in some ways that um Can trip you up if you're not aware of that right and again like it's one of those things where we can try this we'll see what error we get and we'll throw it into chat gbt and see if it can solve it if not we'll just solve it so that so we can skip to the fun part but you're right like there are there are these little micro moments where it's like it's not quite right and it's helpful to like have some sense of what um what you're doing um so that you can like you said you know it's if you don't know what you're doing you can just see what happens and um you know yeah tell it to fix it so that it's it's often fine it's just that if you know what you're doing you can avoid some uh rabbit holes and some rabbit holes yeah make faster so here we go we're going to we're going to copy the code we're going to copy the code we're going to hold our breath uh we're not going to read the code and we got an error okay um so we don't have the open AI thing installed um so I know you know I know what to do um I this is sorry this is a JavaScript so you don't want that probably npm install open we do it
so this is I'm just like I'm I'm sort of we probably could for that one to be honest what' you say we probably could have asked chat how to fix it as well we could have asked that yeah that's true
I'm I'm getting impatient I want to get to the magic um so here's what we're gonna do copy or we're just going to copy this error and paste it in to chat gbt and see what we get typically occurs when environment variables are not accessible in the client side JavaScript this is common in projects with Vite as it doesn't automatically make environment Val variables available in the front end this is a good example of where um it's it's telling us some stuff we could do it this way um I think that it's it's kind of going to be a pain to set it up this way um one thing I'm thinking about is so you could just hardcode an open AI key right into the code here now yeah we need to be careful because um there are security issues here like now if you were to share this reppel link right um it's possible that anyone who uses it would get to use your open AI key which is a big problem you just need to rename the repet secret us set to be V to open this is a good example of annoying programmer stuff that uh shouldn't be necessary to do but let's try that all right running again holding our breath this is how these things really go you know it's doesn't always work the first time that's a part of the process I think that it wants you to put um API key around the um API key like I see in the error message it says yeah um again we probably could have given that to Chad and had it help us with that but we're running out of time yeah we need to set dangerously allow browser to True um because it doesn't like querying it from the browser but um that's okay we're we're making a little app just for you so it's gonna be fun um all right I'm gonna press run and we're going to move over into
our web View and here it is we you got a button it's called generate question that's pretty cool let's see let's see if it works so what I want to do first we have a bunch of notes for our our
interview so I'm going to take this and I'm just going to throw it in here we have our timer counting down we can see it with the progress I know are we going to make it before the end okay so I pasted a bunch of I pasted a bunch of notes and I'm going to press generate questions and we'll see what happens okay let's see what happens so my guess my intuition is it's not going to work the first try but we'll see what happens um have the dev tools open so you can see if it breaks or something says connected there's no errors this is tricky right because we have to guess like um maybe it's working and it's just taking a while is totally possible it could be that it's gonna break we just need to find out where even we've got we've got questions wait oh that's okay they made a really weird UI for it so we have questions uh okay here are some prompts to discuss with Jeffrey lit on your podcast episode after welcoming Jeffrey to the podcast ask him to give us a brief introduction about himself and what he does dive deep into chat gbt use cases we love that um can you highlight some Transformations or Milestone moments in your professional work due to AI how do you envision the future of AI in day-to-day tasks in professional workspaces that's a good question I really like that one um you know I I think we don't have time to go too much further on the app right now
but one thing that gets me so I'm one thing I love about this process is I'm responding to what it did right so obviously this UI is really janky like it needs some between the two boxes and we can tell it to do that but
also I'm thinking like um you know maybe it would be nice to see each of these questions in its own little box or something um and maybe you could like check them off as you go and that's that's another idea I just had by looking at this um right and I think that starts to point towards like some of the advantages of doing it so you could have just done this in chat GPT itself and not made an and I think for what we have so far it would have been pretty similar because it's just giving you text but the further we push into like custom UI for kind of maybe you want to reorder the questions and you know you could have a build a UI for dragging and dropping the questions into a different order all that stuff is what comes to mind now and that's stuff that like because we're in this custom UI all of that is possible and those like possibilities occur to me in a way that wouldn't if I was just in the chat box right so I think you're totally right I I I also think that um there's a world like you know chat gbt already has code interpreter where it can write and run code for you and I really think there's a world where instead of pacing into repet like especially for these mini oneoff apps you're just using UI that is constructed on the fly in chbt um and then modifying it and then that becomes a custom GPT you can use for a while um and you can already see this like in the Google Gemini demo um for um for their their newest language model it does it does that inside a Bard um and I really think that's the that's where we're going for a lot of this stuff I totally agree and in fact I think often people aren't going to even need to ask make me a UI that does X really the bot should just decide when I ask for X it should just pick the best UI for that task which might be text or it might be a custom whole thing right yeah totally um so this is this is pretty awesome um we came up with an idea we uh built the first version then you sent it to me and I made some modifications which now we can send back to you and you can keep going with it you have a bunch of ideas for to take it like this is sort of the
future of building stuff and we did it in like an hour and I think that's so incredible I know it's so fun and we were able to just kind of have fun and talk while we were doing it right we never got like totally stuck and I think
that's the feeling that I want um when I'm building stuff and I think that everybody wants when they're building stuff of effortless flow and I'm really excited that um I think llm based tools are sort of on a path to enabling that for way more people and way more situations yeah yeah yeah 100% so as people are you know coming out of this episode they're inspired they want to go do stuff they want to learn more about your research they want to like think about the future of of where this is going like where do they find you and and what should they read yeah um I have a personal website uh jeffre l.com where um I post uh various research I wrote an essay earlier this year called malleable software in the age of llms where I kind of lay out a bit more of sort of the thinking behind this this worldview and um those are some places to check out more thoughts I'll I'll be publishing uh more research in the coming year or two on kind of um how do we take this workflow we just did and actually make it really awesome and integrated better into sort of a whole coherent work environment with less copy pasting and sort of less um dealing with infrastructure so look forward to that too amazing well I'm I'm super excited
when that comes out I would love to have you back this was incredible I feel just I I'm like walking on air right now like there's so much good stuff happening here um and I really appreciate you taking the time to to walk us through this thanks so much this was really fun
