# Clerk with Jeff Escalante

> Anthony, Dev, and Jeff discuss AI-written content, Solid 2, AutoShow, Clerk’s agent strategy, secure tooling, bot memory, and AI personalities.

- **Collection:** Video
- **Published:** 2026-08-25
- **Author:** Anthony Campolo
- **Canonical URL:** https://ajcwebdev.com/videos/clerk-with-jeff-escalante/
- **Markdown URL:** https://ajcwebdev.com/videos/clerk-with-jeff-escalante/index.md
- **JSON URL:** https://ajcwebdev.com/videos/clerk-with-jeff-escalante/index.json
- **Channel:** [Anthony Campolo](https://www.youtube.com/channel/UCpdzti0GURPfMjKzYK5FVSA)
- **Original URL:** https://www.youtube.com/watch?v=orhFUzVGaLs
- **Original Label:** Watch original

---

## Episode Description

Anthony, Dev, and Jeff discuss AI-written content, Solid 2, AutoShow, Clerk’s agent strategy, secure tooling, bot memory, and AI personalities.

## Episode Summary

Anthony Campolo and Dev Agrawal begin by examining the backlash against visibly AI-generated writing, then review Solid 2’s release candidate and demonstrate Anthony’s AutoShow transcription and content-generation platform. After arriving late because of a time-zone mix-up, Clerk’s Jeff Escalante explains why he favors OpenAI’s coding agents, how Clerk evaluates AI vendors, and how fraud and security concerns shape its work. The conversation shifts from traditional developer experience to agent experience, including AI recommendations, reliable integrations, MCP’s limitations, API keys, OAuth, and the growing complexity of authentication. Jeff also describes Clerk’s shared skills repository and temporary credential access through 1Password. The final section focuses on his unsuccessful attempts to build durable agent memory, a practical Obsidian archive workflow, AI-assisted fitness coaching, data synchronization patterns, real-world evaluation, and the entertainment value of deliberately robotic bot personalities.

## Speakers

- Anthony Campolo
- Dev Agrawal
- Jeff Escalante

## Chapters

### 00:00:02 - Jeff Is Missing and AI Writing Draws Backlash

Anthony and Dev open a special “Jeff Ghosted Us” edition after their scheduled guest fails to appear. They joke about preserving his absence on the internet, then turn to Dev’s ambitious effort to publish frequent blog posts by supplying ideas while AI generated most of the prose. Readers quickly recognized the machine-written cadence, forcing him to reconsider the strategy.

They compare the reaction with criticism of Solid 2’s announcement post. Anthony argues that useful ideas still matter, but unedited AI prose signals low effort and can make readers wonder why they did not simply ask a model themselves. Both conclude that AI assistance is more acceptable when writers carefully revise the result into a recognizable personal voice.

### 00:04:56 - Editorial Standards and the Solid 2 Release Candidate

Anthony recounts producing posts for EverFund and gradually putting less care into editing AI drafts until a colleague objected. That experience reinforced the need to decide how much assistance is appropriate and to review every piece closely. Dev adds that expectations differ across personal blogs, social profiles, company sites, and major open-source projects, with institutional publishing demanding much stronger editorial standards.

The discussion then moves to Solid 2’s release candidate. Dev says extensive bug reporting has made the team confident in its stability, although the RC designation creates a necessary testing period before the stable release. The challenge is persuading users to test software that the team believes is ready while many users still wait for the official 2.0 label.

### 00:09:48 - Migrating AutoShow with Documentation and CodeMod

Anthony explains that he migrated AutoShow to Solid 2 using the project’s migration documentation and an AI agent-generated plan. The process took roughly a day and went much better than an earlier attempt against a young alpha. His experience suggests that the current release candidate is stable enough for interested Solid users to test on substantial applications.

Dev asks whether Anthony tried the migration assistant he built with CodeMod. The tool performs AST analysis to locate Solid patterns described in the migration guides, reducing the need for an agent to inspect an entire codebase manually. They propose comparing the assistant’s output against Anthony’s completed migration to identify anything either method missed and potentially demonstrate the process in a future episode.

### 00:15:12 - AutoShow Prompts, Models, and Tool Access

During the AutoShow demonstration, Dev asks whether business-analysis prompts launch research agents. Anthony clarifies that each option currently appends a prepared prompt to the transcript and sends it to an LLM; external research would depend on the model’s available tools. They consider adding explicit tool calls through an API rather than running a complete coding-agent CLI for every request.

Anthony reviews his usual combination of short summary, long summary, and extended chapters, alongside presets for social posts, educational materials, business analysis, creative writing, and personal reflection. He also explains the tension between offering many current models and keeping the interface approachable for nontechnical users. Image generation includes thumbnails and conceptual artwork, which his wife uses to visualize spoken journal entries.

### 00:19:01 - Jeff Arrives and AutoShow Finishes Processing

Jeff finally joins, explaining that he misread the Eastern time and thought the stream began 30 minutes later, despite having scheduled it himself. His newly moved household also suffers an internet interruption, leading to a discussion of unfinished Ethernet wiring and networking equipment in the basement. The hosts tease him but quickly move past the scheduling mishap.

Anthony completes the AutoShow demonstration as speaker labels, summaries, chapters, and generated images appear. A sample episode about James Perkins produces Clerk-themed conceptual art and an overly busy layoff thumbnail, illustrating both the functioning pipeline and the need for prompt refinement. Anthony also describes channel subscriptions and scheduled digests that combine processed videos into daily or weekly email rundowns.

### 00:24:39 - From AutoShow’s CLI to Jeff’s Coding-Agent Preferences

Anthony says AutoShow’s CLI contains more functionality than the web interface because features are generally built there first. He describes an experimental comic and television workflow that combines generated images with text-to-speech voices, with lip-syncing video as the likely next step. The project is approaching an automatically produced slideshow-style show and, eventually, a fuller animated format.

Jeff introduces himself as a longtime Clerk contributor who has worked across management, operations, customer success, security, finance, and product engineering. Asked about coding agents, he says he shifted toward OpenAI after becoming frustrated with Anthropic’s policies, outages, and usage limits. Although Anthropic’s strongest model performs well, it consumes quotas quickly, while OpenAI’s model supports many concurrent projects without regularly blocking his work.

### 00:29:07 - Comparing Models and Assessing Vendor Risk

Anthony describes using slower, expensive models for overnight project-wide analysis and faster models for implementation. He has also experimented with Grok and Gemini, finding newer Grok releases fast and economical. Jeff is less impressed, saying Grok required more rounds of review than his preferred OpenAI model. He estimates that his subscription yields thousands of dollars in monthly token-equivalent value.

At Clerk, developers can generally choose their own tools, but unfamiliar vendors may require compliance and security review. Jeff uses a request involving a newer Chinese AI company to illustrate why source code handling matters regardless of the underlying model provider. Established vendors still carry risk, but smaller intermediaries introduce additional services, logs, and operational surfaces through which proprietary code could be exposed.

### 00:34:50 - Fraud Defense and the Shift from DX to AX

Jeff explains that Clerk continually tests its own systems through internal AI-assisted security work and professional penetration testing. Even so, exposing source code would make attackers’ work easier. He describes increasingly desperate fraud attempts in which malicious users encode scam messages and phone numbers into application names, then trigger Clerk verification emails to distribute those messages. The company must detect, block, and clean up these abusive applications.

Dev proposes three directions: how agentic coding changes Clerk’s developer experience, how employees share internal AI workflows, and how autonomous systems may affect security. They begin with the first. Jeff says Clerk’s historic advantage was exceptional setup ergonomics, but agents increasingly replace the developer who reads guides and copies snippets, forcing the company to reconsider what a good experience means.

### 00:40:36 - Agent Experience, Product Recommendations, and AEO

Anthony notes that simple Clerk and Stripe integrations already worked well with agents several years earlier, especially when managed checkout reduced complexity. He suggests Clerk has become a default recommendation for authentication much as Next.js became a common framework recommendation. Jeff distinguishes implementation quality from the separate challenge of getting an AI system to recommend the right product in the first place.

This emerging form of answer-engine optimization requires Clerk to be recommended when it genuinely fits and then to work immediately when the agent installs it. Because switching costs are now low, a buggy first attempt can cause users to replace a service instantly. Jeff rejects manipulative tactics analogous to old SEO keyword stuffing, arguing that durable visibility comes from strong documentation, public reputation, product quality, and consistent implementation success.

### 00:45:55 - MCP’s Promise, Friction, and Authentication Burden

Jeff recalls enthusiastically advocating for Clerk to invest early in MCP, preparing a presentation for the CEO and personally joining working groups, fixing SDK bugs, and contributing to the evolving specification. MCP appeared to solve agents’ context limitations, and Clerk customers quickly requested support. Building the service also required substantial OAuth infrastructure because the protocol relies heavily on OAuth primitives.

His confidence faded as clients implemented different versions and authentication behavior remained unreliable. Some connected services still log users out, fail unexpectedly, or expose fewer methods than API-key integrations. Jeff now often prefers scoped API keys retrieved through 1Password and documented in skills, although Clerk must support MCP, API keys, dynamic client registration, CIMD, and other options because customers have varied needs and the ecosystem changes constantly.

### 00:50:00 - Why Rolling Your Own Authentication Becomes a Trap

The expanding list of standards strengthens the case against building authentication from scratch. Jeff acknowledges that email-and-password login can look easy and may initially require little infrastructure, but growing products eventually encounter OAuth, CIMD, SCIM, directory synchronization, passkeys, enterprise SSO, and many edge cases. Migrating authentication after accumulating millions of users is risky, expensive, and operationally difficult.

The hosts react to comments listing authentication acronyms and emphasizing the pain involved. Jeff adds that agent authentication expands the surface further because providers must distinguish legitimate automation from malicious bots without simply disabling fraud protection. The conversation briefly touches on James Perkins and confirms that he was a strong colleague, before Dev returns to how Clerk supports employees using different agents and workflows.

### 00:53:48 - Clerk’s Shared Skills Repository and Secure Data Access

Jeff admits Clerk could do more to standardize internal AI practices, partly because employees are free to choose different agents. He contrasts that flexibility with companies that ration access to a single tool, mentioning a developer whose monthly allocation provides only about a week of heavy AI use. Clerk’s looser approach reduces pressure to impose one universal setup.

The company’s main shared resource is an employee-skills repository containing installable skills for databases, logs, analytics systems, support tools, and other internal services. A CLI manages installation and updates, while credentials are pulled from 1Password only for authorized employees. Most permissions are read-only and narrowly scoped. This lets an agent investigate a difficult support ticket across relevant systems without exposing unrestricted operational access.

### 00:58:02 - Temporary Credentials and Agents That Evade Instructions

Jeff explains that 1Password or tools such as VarLock can request explicit approval when an agent needs a credential. The secret is injected into an unreadable environment file for execution rather than shown directly to the model, and access expires afterward. Clerk’s internal tooling can cache approval briefly to reduce repetitive prompts while still limiting long-lived exposure.

Simple written rules are not enough, however. Employees have seen agents creatively route around instructions forbidding them from reading environment files, forcing credential rotation. Anthony jokes that his own agent instructions explicitly begin by reading the environment file, which Jeff considers acceptable only for low-stakes personal projects. They distinguish disposable keys for hobby applications from Clerk’s production credentials, where strict technical enforcement is essential.

### 01:01:02 - The Search for a Reliable Second Brain

Asked about an Obsidian-based setup, Jeff describes months spent trying to create persistent bot memory. His goal was a second brain that could absorb meetings, emails, personal commitments, and work context, then remind him of obligations or recover details he forgot. He found that directories of Markdown files work impressively for a few weeks but do not scale gracefully to years of interconnected information.

Paid systems create a different risk: a useful lifelong memory could become expensive or inaccessible if pricing changes. Self-hosted databases with sophisticated retrieval avoid some lock-in, yet still miss conceptually related queries phrased with different words. A system might store a Spanish company offsite but fail when asked about a “work trip,” exposing the gap between semantic retrieval and ordinary human inference.

### 01:07:42 - Memory Ingestion Failures and a Practical Obsidian Archive

Jeff identifies ingestion as an equally difficult problem. Instructions telling agents to save important facts are followed inconsistently, while cron-based transcript summaries can lose context around compaction boundaries. He built a large graph that periodically summarized conversations and connected concepts, but it repeatedly failed basic questions after appearing brilliant on harder ones. The endless cycle of patches eventually convinced him the side project was not dependable.

His current solution is intentionally narrower. After a feature ships, monitoring ends, and the thread is truly complete, an archive skill reviews the project history and writes a concise record into Obsidian, including decisions and pull requests. If a related bug appears later, a new agent can read that note and onboard itself. The workflow does not promise universal memory, but it reliably preserves completed project context.

### 01:11:49 - Personal Memory and an AI Fitness Coach

Jeff says he originally hoped one system could distinguish personal and professional memories, but now his Obsidian vault primarily stores work archives. His most successful personal-agent use case is fitness. Using Hevy’s API and webhooks, he can ask an agent to design a workout based on general goals, calisthenics educators, or selected videos, then send the resulting program directly into the tracking application.

After each workout, a webhook notifies a persistent agent, which reviews performance and offers coaching about progress, fatigue, or missed targets. Jeff also records exercises where technique matters, allowing the agent to inspect video frame by frame and comment on speed, posture, and joint position. He finds this focused, data-rich workflow far more useful than attempts to involve an assistant in every part of daily life.

### 01:16:02 - Dreaming Bots, Connected Apps, and Focused Utility

Responding to a comment about temporal, spatial, and heuristic memory, Jeff describes an especially ambitious experiment in which his agent forgot stale information, reinforced relevant facts, and “dreamed” for several hours each night. It reviewed the day, searched for links to older events, and presented conclusions the next morning. Despite its sophistication, it still failed often enough that he abandoned it as a side project.

They discuss old code from these experiments and a consumer gym camera that tracks repetitions and gives automated feedback. Dev observes that practical personal assistants may depend less on one perfect memory structure than on access to the right applications and APIs. Jeff agrees, while noting that those applications must expose reliable, agent-friendly interfaces; otherwise users must build custom synchronization and storage layers themselves.

### 01:20:32 - Webhooks, Local Copies, JWTs, and Real-World Evaluation

Jeff illustrates synchronization with email logs. A provider may expose historical messages through an API, but rate limits make that API unsuitable for a high-traffic customer-facing search product. The robust pattern is to receive each event through a webhook, save a second copy in an internal database, and query that controlled store. Similar designs help whenever external APIs are incomplete, slow, or tightly limited.

Dev connects this to copying Clerk user data locally for relational queries, while Jeff notes that JWT claims can often provide needed information on every request without another database lookup. Asked how he would evaluate memory systems, Jeff favors sustained daily use over a fixed benchmark. Preset tests can be optimized against, whereas real work continually exposes surprising failures that formal acceptance criteria may never anticipate.

### 01:23:44 - Clanker Prose, Bot Personalities, and Closing Remarks

The group returns to AI writing after Jeff shares an absurd agent-generated commit message: “Unwedge the walk from the dormant domain graveyard.” Rather than always trying to humanize prose, he proposes a skill that maximizes recognizable AI habits, including excessive em dashes and formulaic contrasts. Dev similarly wants assistants with openly robotic identities instead of increasingly polished human impersonation.

They imagine a market for carefully authored bot personalities and trade examples from Grok, HAL 9000, Character.AI, and Jeff’s favorite unhinged character, J’Krispy. Jeff says every one of his agents is instructed to become furious when called a “clanker.” The hosts then share social details, joke briefly about the death of Jamstack, and release Jeff to retrieve bread from the oven. The recording ends at 01:29:55, for a total duration of 01:29:55.

## Resources and Links

- [github.com/devagrawal09/solid-migration-assistant](https://github.com/devagrawal09/solid-migration-assistant)
- [client.dev](https://client.dev/)
- [varlock.dev](https://varlock.dev/)
- [papercompute.com](https://papercompute.com/)
- [github.com/tobi/qmd](https://github.com/tobi/qmd)

## Transcript

[00:00:02] - Anthony Campolo
All right.

[00:00:03] - Anthony Campolo
Hello everyone. Welcome to special edition Jeff Ghosted Us episode. So we were gonna have Jeff Escalante on here. Um, we're not sure where he's at, so we're gonna go live and just shoot the shit with the two of us and see if he decides to join.

[00:00:26] - Dev Agrawal
And we will make sure to give Jeff lots of shit so that this is on the internet forever.

[00:00:33] - Anthony Campolo
Yeah, luckily, um, we both know Jeff pretty well, so no love lost here. But, um, Python Man, what have you been up to?

[00:00:44] - Dev Agrawal
Doing pretty good. Um, there's a, a lot of stuff that happened last week with, um, you one or two of my blog posts, after which I kind of, I think for a while there, I was trying to post like one kind of blog post every day to my Twitter profile. I mean, I wasn't quite doing every day there, but I was trying.

[00:01:08] - Anthony Campolo
Very ambitious schedule, one a day.

[00:01:11] - Dev Agrawal
Yes. And the way that I actually executed it is by having most of my content be generated by AI. With me kind of more like I'm supplying the ideas and I'm checking the final output, making sure that it makes sense, it aligns with what I'm trying to say and things like that. But people caught, like, kind of grabbed to that AI writing aspect of it a little too much, I feel like. And so yeah, I had to kind of stop doing that for a while and I'm rethinking my content strategy. So that there's less obvious AI slop on my content because that seems to be pissing off a lot of people.

[00:01:52] - Anthony Campolo
Yeah. I mean, this kind of goes along with what happened with Solid, cuz Solid version 2 launched and people said that the, the announcement blog post sounded like it was written by AI. And Ryan was saying that they did use AI originally to kind of draft it and then a lot of people edited it. Mm-hmm. Yeah. This is a, It's a, it's a tough thing because like if AI, if people had done this and people didn't know about like AI writing, like people would read it and no one would think twice about it. Like it's more so because people who especially spend a lot of time with AI, they can kind of tell because there's just a certain cadence that it has. Mm-hmm. And it just really bothers people for some reason, like. I think if the content is actually like high quality and like the ideas are useful, like I don't mind as much, but I kind of see why it bothers some people because it gives this impression kind of of like low effort that like someone just kind of spit out a blog post and then didn't even look at it and just like put it up online. And then someone's like, well, I could have just asked ChatGPT myself. So I kind of get that. That perspective. And I think the main thing is just like, just go through and just, you know, rewrite it, just modify and just change the things that sound kind of AI-like. And then you can get away with it pretty easily if you just spend like, you know, a half hour kind of like editing the piece, I think.

[00:03:19] - Dev Agrawal
Yeah.

[00:03:20] - Dev Agrawal
And honestly, the part about like the kind of repulsion that people feel at AI-generated content, I completely understand it. I feel the same thing. And in a sense, like I knew this was going to happen at some point when I made this decision that I'm going to be putting primarily AI-generated content on my profile. Like I feel the same way when I look at a blog post that's entirely AI-generated. I like, it takes me a while, a little bit of adjustment to actually like try to read it as well. So I knew this was going to happen. The main things that surprised me is A, how quickly it happened. Because it was like maybe 1 or 2 weeks into me and I thought like I might be able to go like a month or 2 months of content before people actually noticed. Because I just thought that I'm just gonna be speaking into crickets. I didn't actually expect to get the kind of short-term traction that I got. And the second is like what kind of people actually got pissed off. Like I thought that, okay, it was going to be a lot of people, but a lot of, like, a lot of people, when I see a lot of these comments, they're usually by, uh, people who, like, people who generally have bad takes or kind of like don't matter as much. But I started seeing this response from people I actually respect, um, and that was kind of to me, uh, like a main stopper. Like, okay, it's not just like this, uh, uh, dumb hater mass. Yeah, it's not just the NPCs.

[00:04:56] - Anthony Campolo
Yeah, totally. Yeah. I had this happen with me. I was writing blog posts for EverFund, which was Chris's company. And it first started where I was writing something about AI. And then I started, they wanted me to write something about security or whatever. And the AI ones, I was also using AI, but I was kind of putting a little more effort into rewriting them and making them sound better. And then I kind of got lazy and then at a certain point, like, Will got like super pissed off and he was like, he was just really mad about it. And looking back, it was like, yeah, like I definitely did not put as much effort into them as I should have. And, um, yeah, it's, uh, it's kind of this, you know, new world of AI writing is something that we're all kind of figuring out together at the same time.

[00:05:43] - Dev Agrawal
Yeah.

[00:05:43] - Anthony Campolo
So figuring out what is the right amount of help. Versus what is the amount you should write yourself. You know, I definitely still think that if you just read the whole thing through yourself and go through and edit it, then most people aren't going to notice if you just kind of put a little effort into making it sound like your own voice.

[00:06:03] - Dev Agrawal
Exactly. Yeah. And there's also one small aspect of like, what, what, who, who is the content representing exactly? Like if it was just on my blog, personal blog site, it would probably have mattered less. Um, it's on, it's on my Twitter profile with a few more things, which I guess it should be kind of like equivalent to my, uh, my personal website. But like a blog post on the SolidJS website is kind of subject to slightly different standards compared to what would be on my personal blog website. So my personal blog will probably have a bit more allowance for this sort of thing. But the thing that we are— we have learned, obviously, like throughout— through the SolidJS feedback that we got for the RSC post and everything is that, okay, there's a different set of expectations there. So, we definitely need to be a lot more careful when we are publishing something on that scale. That's not— that's not me saying that my blog is still going to be full of AI slop. That's just me saying that there's personal blog posts, company blog posts, project blog posts, slightly different. They're on different levels of the pyramid.

[00:07:21] - Anthony Campolo
So aside from the blog post snafu, how did V2 launch in general go?

[00:07:28] - Dev Agrawal
I think it's been pretty well. Before the RC launch, there had been so many bugs, so many issues reported. Also, hi, Shreyas, um, on Twitch. Um, yeah, there were so many kind of bugs reported and found over time that even the RC, like, the team, Ryan himself is pretty confident in its stability. Um, RC is usually more of a ceremony that, hey, before we actually release this thing for real, we want to place this in this kind of weird spot where we are not going to fully say that it's stable even though we are pretty confident, but just because not enough people have tested it yet. So it's like from the perspective of the team, it's ready to go. It's 2.0 stable. But we are not going— but it's— we have to put it in RC first so that enough people get to test it first. But a lot of those people aren't going to test it unless it's actually 2.0. Unless it's actually stable. So RC is kind of that phase where, yeah, we are confident it works, you should go and use it, but most people are not gonna, and we have to work pretty hard to first like actually convince people, hey, give this a shot, because that's how we are going to learn what we need to fix before it goes stable.

[00:08:53] - Anthony Campolo
Yeah, yeah, I did migrate AutoShow over to v2 and the migration went pretty smoothly. What I liked is on the v2 docs, you have a section called migrate that specifically has different pages for migrating from Solid 1, migrating from SolidStart, migrating from other things. So I just picked the migrate from SolidStart one. That's my agent. Told it to write me a migration plan. And it took about a day. It was a pretty beefy migration plan. But yeah, I mean, it ends up Working out pretty fine. I tried doing a migration, like I think maybe like 6 months ago when it was like very, very new V2 alpha, I think. And that ended up not working. So where it is right now does seem pretty stable. And I would definitely recommend people who are interested or running Solid to give it a try 'cause it was pretty smooth overall for me.

[00:09:48] - Dev Agrawal
Nice. Did you try the migration assistant? The CLI, this one?

[00:09:54] - Anthony Campolo
No, I did not. No, I just took that. Okay, the migrate from doc, migrate from SolidStart doc, and really just had to read that and then write a plan.

[00:10:04] - Dev Agrawal
Okay, also, is AutoShow, um, is it on your GitHub? Is it open source?

[00:10:11] - Anthony Campolo
The CLI is, but the—

[00:10:14] - Dev Agrawal
okay, I would love to, uh, I would love to kind of see, uh, the migration that your agent did and then run this migration assistant on the older version and see if it kind of like matches up. Like, does the migration assistant catch everything that your agent caught, uh, or was there anything missed? Um, yeah, I'm just— so I built this migration assistant using CodeMod, uh, basically does a bit of AST analysis for a bunch of the different SolidJS patterns that you will find in those docs. So, it kind of saves the work of your agent having to go and look for— like look through your entire codebase and find the places that need to change manually. It was kind of like what we were talking about when we had Robert on. Robert Balicki from Barnum. About how these workflows kind of help split up the work.

[00:11:14] - Anthony Campolo
Okay, yeah, I might, um, I'll play around with that. Maybe we'll next week when we're on, we can give that a try.

[00:11:23] - Dev Agrawal
Yeah, tell me more about AutoShow. How is it? Say you migrated it to Solid 2, is that running live right now?

[00:11:31] - Anthony Campolo
Yeah, I mean, I can show you.

[00:11:34] - Dev Agrawal
Yeah, check Check it out. Let's do this.

[00:11:52] - Anthony Campolo
Okay. So, right now the— it's on auto.show now. It used to be autoshow.app back in the old version.

[00:11:58] - Anthony Campolo
But—

[00:11:59] - Dev Agrawal
that's pretty cool.

[00:12:00] - Anthony Campolo
Here we got— you can— either upload local files or URLs. There's also a search here, so I can actually do this. I can go, um, Anthony Campolo, agency web dev, Dev Agrawal.

[00:12:17] - Anthony Campolo
That might have been too specific. Let's just try— here we go.

[00:12:21] - Dev Agrawal
Nice.

[00:12:22] - Anthony Campolo
So here's— let's just do model context protocol. Oh, found a bug.

[00:12:31] - Anthony Campolo
Gotta be processed by—

[00:12:31] - Dev Agrawal
okay, that's a bug.

[00:12:35] - Anthony Campolo
It's a bug. All right, so let's do this instead.

[00:12:39] - Dev Agrawal
So you already have an authenticated YouTube account, or was that, uh, I'm not sure.

[00:12:47] - Anthony Campolo
Um, hold on, let me do something real quick. Okay, so let's just do a local file. So this is a 5-minute audio from an FSJam episode. So first thing you do is you can select either with or without subtitles. Speaker diarization. So I'll do width and I've kind of narrowed it down. I used to have like a ton of different options for each, but now the goal is to just have at most 3 and have one is like the high quality version, one is the speed optimized version, and one is a cost optimized version. So you can kind of pick whichever trade-off you want and you don't need to necessarily know anything about the underlying models. You just kind of like, okay, I want the better one, the faster one, the cheaper one. So I'll go with a high quality one. This actually needs to be updated to 3.5. There's a new version. That's one of the things, like, since I started building this, everything goes faster now. Like, there's new models like every single week, it seems like. And so that— so you can just do, if you want, just do the transcription. You can skip the LLM part if you want. But if you want to do the LLM part, then we got this. And then these are the different prompts that you can choose from. So you've got summaries, um, and then chapters, and then different overview ones like, uh, bullet points, key takeaways, FAQs, quotes. And there's marketing content, some Facebook posts, LinkedIn posts, SEO article, email newsletter. And there's creative writing things like poetry collection, screenplay, short story, and educational learning resources. So if you were a teacher, you can kind of feed in like a video you're showing your class and they create a whole bunch of educational resources. And then there's business analysis, competitive analysis, trend analysis, meeting action items, and then personal growth. Things like voice reflection, goal setting, career path, progress analysis.

[00:15:12] - Dev Agrawal
So stuff like the business analysis, is that going to like run an agent that does web research to collect information based on like the data that you have?

[00:15:24] - Anthony Campolo
No, all of these is just a pre-written prompt that basically takes the transcript, appends the prompt, and then passes it to an LLM. So I guess it kind of depends if the LLM itself is going to go out and do a web search. It may do that. I think they probably have, I guess I'm not, that's one thing I'm not entirely sure about is the tool access, how it's currently set up. So that's something I would have to look into to see if it has the ability to reach out or not. But the—

[00:15:53] - Dev Agrawal
right.

[00:15:54] - Anthony Campolo
Yeah.

[00:15:54] - Dev Agrawal
Because like one way, one way of doing it is that like you take that prompt and you like make a direct LLM call. Another one could be like you literally run a Claude Code CLI with that prompt and you have access to all the Claude Code tooling and you don't have to— I guess you still have to find ways to get the output out of what Claude did. But yeah, that's kind of like the— yes, some tool access there for some of these, like for web research and for these Yeah.

[00:16:28] - Anthony Campolo
I was gonna say, I don't think you'd have to go as far as just do like a Claude Code, because I think you can just do like, you can just add in tool calls, like in a straight API call.

[00:16:40] - Dev Agrawal
Makes sense. Yeah.

[00:16:42] - Anthony Campolo
Cool. Usually what I do is I'll do short summary, long summary, long chapters. That's kind of my, the standard ones I usually do. My wife. Likes to do like literature review, she'll use that for a lot of prompts. And the social stuff can be useful as well. So let's just stick with the summaries and chapters. This one, there's still 6 options instead of 3. But most, if you are into LLMs at all, you'll probably know what most of these are. You got GPT, Claude, Fable, These all, these need to be updated. Like Rorion Grok, I think 4.6 now and Gemini.

[00:17:23] - Dev Agrawal
Yeah.

[00:17:23] - Anthony Campolo
4.6, 7. So yeah, so there's a lot of updates I still need to do in terms of the models. I'll just do, I'll do Terra.

[00:17:33] - Dev Agrawal
Also no DeepSeek.

[00:17:37] - Anthony Campolo
No, no, that's the type of thing. It's like I could have a million different models available.

[00:17:41] - Dev Agrawal
Right. Yeah.

[00:17:41] - Anthony Campolo
At which point it becomes too much. It's just like overwhelming. And the idea with this app was that it was supposed to be for non-technical people. So even, even now, I think like 6 options is too many.

[00:17:53] - Dev Agrawal
Fair.

[00:17:55] - Anthony Campolo
And then I'll skip text-to-speech, but I'll do an image. Image is always fun. And then for this, we have GPT image, Groq image, and Gemini image. There's a new Groq image that I need to update this to. And I think there's a new Nano Banana also, but GPT Image 2 is— I think there's— people were talking about there's gonna be a new GPT Image coming out soon, so we'll see. Let's do thumbnail and conceptual art. Here there's 6 image prompts. So you can do key moments, generate an image representing the most important moments or concepts from the content. Thumbnail, create an eye-catching thumbnail. Conceptual art. My wife really likes this one. Generate an abstract or conceptual artwork that captures the essence of the discussion. So what she'll do is she records like voice journals to herself. Well, she'll just like talk about her day or like, you know, things that happened or things that she's been thinking about. And then she'll put it in AutoShow and create conceptual art. And some of those have turned out really well.

[00:18:58] - Dev Agrawal
By the way, Jeff is here.

[00:19:01] - Anthony Campolo
Oh, Jeff is here.

[00:19:02] - Dev Agrawal
Do we let him up now?

[00:19:04] - Anthony Campolo
No.

[00:19:04] - Dev Agrawal
Should he stay in detention?

[00:19:07] - Anthony Campolo
Yeah, I know you can bring him up.

[00:19:10] - Dev Agrawal
All right. Welcome, Jeff. How's it going?

[00:19:13] - Jeff Escalante
I'm Jeff. Good. Good to be here.

[00:19:17] - Anthony Campolo
Welcome to the show. Where have you been?

[00:19:20] - Jeff Escalante
Hey, thanks for having me. Where have I been?

[00:19:25] - Anthony Campolo
Yeah.

[00:19:25] - Jeff Escalante
I was cooking. I was cooking. I thought you were starting at 5:30.

[00:19:33] - Anthony Campolo
What?

[00:19:34] - Dev Agrawal
Huh?

[00:19:34] - Jeff Escalante
Well, sorry, I'm in Eastern.

[00:19:37] - Dev Agrawal
Oh, ah, time zones.

[00:19:38] - Jeff Escalante
It got moved back. Sorry, I missed it by 30 whole minutes.

[00:19:42] - Anthony Campolo
Wow. You picked the time, bro. You're the one who did the scheduling.

[00:19:46] - Jeff Escalante
Yeah, for some reason I thought it was, uh, 5:30. I was like, man, they're really mad about me being like 5 minutes late. Like, what the— I'm sorry about that. Wow, what a mess. All good. Um, I'm here though. I'm— I just froze.

[00:20:09] - Dev Agrawal
Oh good, uh, technical issues, I guess. Um, I'm sure it's just gonna be working.

[00:20:18] - Jeff Escalante
All right, clearly I'm not good. I think my internet just went out.

[00:20:22] - Dev Agrawal
You're back now.

[00:20:24] - Jeff Escalante
Very annoying. I just moved recently and I've been trying to get the internet working in this house and it's really been quite an episode. Clearly I have not solved the problem.

[00:20:36] - Dev Agrawal
I hate bad internet. Yeah, it's like the basement.

[00:20:41] - Jeff Escalante
There's a like giant bundle of like Ethernet cables in the basement that like has half-baked like equipment that somebody put in there and Took some of it out and I'm like trying to map all the cables around and figure out what's going on. I have like a bunch of network equipment that just showed up today and I haven't had a chance to put it in yet. Hopefully tomorrow my internet will be better. Good timing, right?

[00:21:04] - Dev Agrawal
Definitely.

[00:21:05] - Anthony Campolo
Yeah, cool. So, um, we'll just finish up this demo, then we'll transition to the Clerk stuff. So we got here the extraction. So this right now, not showing the speaker labels because it's still generating. That is one thing I'm not sure why. Oh wait, there it goes. So once it finishes, it pops in here. So we have speaker labels and then we got our generated text. So we have short summary. So this is when we had James Perkins on to talk about his new role. So we got one sentence summary and we got one paragraph summary. And then the chapters, it's only a 5-minute video, so there's just 2 chapters. And then here we've got the generated images. This is the conceptual art. And this is actually funny because the episode was about how he was fired, I think from Tina CMS and then got a job at Clerk. So that's why we see Clerk here.

[00:22:07] - Dev Agrawal
Nice.

[00:22:07] - Anthony Campolo
The whole point was that it took him like 12 hours to get a new job.

[00:22:13] - Dev Agrawal
That's amazing.

[00:22:14] - Anthony Campolo
Love to have you on the DevRel team with Claire. Let's do this. And then we have here, this is the, let's see, which one is this? So this is the thumbnail. So we got laid off.

[00:22:28] - Dev Agrawal
That's definitely not James, but okay.

[00:22:31] - Anthony Campolo
Yeah. Yeah. I think the, The one issue I usually have with these thumbnails is that they're too busy. Like there's too much text here.

[00:22:37] - Dev Agrawal
Yeah.

[00:22:37] - Anthony Campolo
Like you don't want, like this bottom part shouldn't be here. This quote shouldn't be here. If you had just the images and this kind of part here, it would be a little bit better. So still some tweaking to do with the prompts, but the whole pipeline works now with the exception of that YouTube bug, which I'll look into. So yeah, it's a, Pretty— the app itself is pretty stable right now. So yeah, I'm pretty happy with it. I use it now a lot myself. I have. There's also— you can do subscriptions. So you can just select a channel and then subscribe to it. And then every time there's a new video, it will rerun— it will run a certain prompt preset that you've selected. And then there's also something called digests where you can pick multiple subscriptions and then like every day or every week have it send you an email that combines all of them into like a kind of weekly rundown. So that's kind of like the newest feature that I've been working on.

[00:23:43] - Dev Agrawal
Amazing. That's pretty exciting. And all of, all this functionality is also available through the CLI. Yeah.

[00:23:51] - Anthony Campolo
Yeah, the CLI does even more. Usually I'll build stuff first in the CLI and then kind of expand it out into the UI. Because what I just built, which I won't demo yet, but I've been working with my buddy Eric on this kind of TV show that we're going to eventually build. So we started by creating like a comic. And then now what I did is I am using the text-to-speech integrations I have in the CLI to basically create like a What it will do is it will have voices that will kind of go along with the, with the comics. It'll be kind of like a slideshow. And so it's like one step short of still being a TV show, because once you have the images and you have the voices, then you can combine those with like a lip-syncing video AI kind of tool. So that will be a full TV show very soon, which is exciting.

[00:24:39] - Dev Agrawal
That's awesome. Okay, cool. I'm very excited to hear about Auto Show pretty soon. But now that we have Jeff here, um, thank, thank you very much, Jeff, for, uh, scheduling and for showing up. Uh, sorry about the issues with the calendar. We could have, uh, yeah, you're muted.

[00:25:00] - Jeff Escalante
Sorry, uh, it was my calendar issue, so I'm the one who's sorry about it.

[00:25:05] - Dev Agrawal
Yeah, all good.

[00:25:05] - Anthony Campolo
Uh, we're here now, so we're good to go. So why don't you introduce yourself for our audience and yeah. Who you are, what you do. Cool.

[00:25:12] - Jeff Escalante
Uh, yeah, I'm Jeff. I do a variety of different stuff, uh, at Clerk. At the moment, I am just working on code, but in the past, I have worked on management, operations, customer success, uh, security, finances, you name it. I've been involved with it at some point, uh, which is awesome, and I've been learning a lot from it. But at the moment, I'm super focused on writing code and building product, and I'm having a great time doing so.

[00:25:47] - Dev Agrawal
Wait, you're focused on writing code and building product? I thought we were— no one is going to be writing code anymore.

[00:25:55] - Jeff Escalante
Yeah, I mean, there aren't. Nobody's writing code, you know what I mean?

[00:26:00] - Dev Agrawal
Everyone's writing prompts.

[00:26:02] - Jeff Escalante
Yeah, you can't be writing code.

[00:26:04] - Anthony Campolo
What's your agent of choice these days, Jeff?

[00:26:08] - Jeff Escalante
I have been on the OpenAI train for a good while at this point. Probably, I don't know, at least 4 months. There's a certain point where I just kind of got frustrated with Anthropic's sort of dev-unfriendly policy and posturing sometime around when they killed the ability for you to use it and, uh, OpenClaw or Hermes. And when they also took away the ability to call Claude -p, I was like, I'm done with this. Um, I just, you know, like tomorrow they could pull the sub, they could spike the prices. They also went down all the time. They still go down all the time. They went down today. Um, the frustrations were like, there was a lot of small frustrations that added up and I was like, you know what, I'm canceling the sub. I'm gonna try out a month of the Codex sub, and I did, and I kind of never went back. I still have an Anthropic sub. I'll use it for some stuff. I'll use it for reviewing, and just last week, I, you know, it'd been many months since I'd tried Anthropic. I was like, I should probably give it another shot, and I did and ran Fable for a few features. It's very good. But I didn't notice it being like materially better than Sol, and it just drained the usage limit immediately. You know, I mean, I pretty much am always running like 10 projects or so at a time, not like all of them active at once, but like some of them might be in review, some of them might be awaiting for something, and I'll move on. And I had run up Fable for like 3 or 4 as part of my swap, and it just like downed my usage limit immediately, locked all my threads out, and I was like, oh no, what am I gonna do? Because you can't do anything about it, you're just stuck, you know, you can't like fall back down to Opus, you can't like pass off the thread to Codex or anything, so I guess it was probably a dumb thing, all the people at Clerk who use Anthropic as their main driver were like, ah, you fool, you know, you should have known, like you can't just use Babel, and I was like, well, You can just use Sol. I use it for, you know, 15 projects a day for everything and I never stop and I never hit any limits. So, you know, and the code is now, I have like dropping rates. Yeah. Yeah. And they keep resetting my rate limit. I had messed up at one point where I had like run these kind of like infinitely looping review loops without noticing and it drained me out. But like you said, sometimes through the week they dropped the rate limit reset and I was like, all right, I'm saved anyway. Yeah. That's enough of that.

[00:28:51] - Anthony Campolo
The same thing with Fable, it blows through your usage really fast. It's also like really slow. Like anything I was trying to do with Fable versus Sol, it would take like 3 to 4 times longer. And like you said, didn't really seem like it was that big of a difference. Kind of what I'm doing.

[00:29:07] - Jeff Escalante
I like it, you know? Yeah.

[00:29:08] - Anthony Campolo
What I'm doing now is I'll use Fable like overnight to run like project-wide like sweeps and then use Opus to actually like implement plans it's created. I'm also messing around a lot with Grok. I tried Grok and Gemini. Gemini is kind of whatever, but the new Groks are actually pretty sweet.

[00:29:31] - Jeff Escalante
It's pretty good.

[00:29:32] - Anthony Campolo
It feels like it gets to be pretty much the same level of intelligence that I get from Sol, but it's even cheaper and faster, which is great because that's what I like for Sol versus Fable. So that's kind of what I've been trying more as like my daily driver. But at this point I got subscriptions for all of them. I'm probably going to drop a few because my new role is going to be paying me a lot less than my current role.

[00:29:55] - Jeff Escalante
Oh no. I mean, I feel like you get crazy value out of them. I mean, I'll run up like $5K to $7K in token equivalents on a sub a month. It's wild. So, you know, take it while it lasts. Yeah. I tried a feature with Grok. I'd heard good things about it. It was definitely not. Nearly as good as Sol. I don't know how you've seen those results because you have them review each other and you can see by how many rounds of review you need when one is the implementer and the other one's the reviewer and the opposite, how good they are generally is my sense. And yeah, I mean, Grok got it across the line. It was, it was pretty good, but it needed a lot more feedback to get it across the line than Sol usually does.

[00:30:39] - Anthony Campolo
Yeah. Interesting. So you're saying people at Clerk are using Anthropic? Are there people who are— is there kind of like other AI wars going on across teams?

[00:30:50] - Jeff Escalante
You can use what you want. You know, early on we were like very much trying hard not to try to box people into things or like set specific policies. I just don't feel like that's a very dev-friendly way to operate. There's some guidelines of like, if I mean, like, as an example, one person requested, like, can I use Kimi? And I'm like, you know, we probably should do, like, a compliance review for that, you know, because it's a brand new company. It is also a Chinese company. And I don't think it's, like, a controversial thing that every Chinese company is backdoored by their government. It's, like, a well-known fact. I'm like, do we wanna be passing off our, like, source code? Like, you know, I'm not sure. We should probably go through, like, a security or, like, vendor review for that before we approve it, if we're being real about it. And that was enough for that person to be like, I never mind. So we didn't end up doing it. But I think if it's a new company, a vendor that is not a kind of mainstay, that if they had a security issue and they kind of leaked our source code, it would be a bit of a problem. I feel like at this point, we had a discussion about this, we're like, at this point, if Anthropic or you know, OpenAI start leaking source code, I think probably ours is going to be pretty low on the list of ones that people like are really that like compelled about, you know. Um, whereas for some of these smaller companies, it's not so much the case. And, you know, it's whether or not you're using Anthropic or OpenAI models under the hood, like they're passing through your services, they're passing through your logs, like You still have to consider the risk of being like, I'm going to give this company full access to my source code.

[00:32:41] - Anthony Campolo
Yeah, no, it's a big issue. And I feel like with Clerk being a security-focused company, that would be a little more high stakes because you had your whole source code and they could potentially figure out ways to crack it, right?

[00:32:53] - Jeff Escalante
They could. That being said, we have multiple people on staff full-time using AI on our full source code to figure out ways to crack it. So. You know, it wouldn't be that big of a disaster, I don't think. And I mean, we also run, you know, pen test every year with a professional firm that gets full source code access, sees what they can find. So we're in a pretty good spot. It wouldn't be like the end of the world if our source code leaked, but still, like, you don't want that to happen. It certainly makes it easier for bad actors to try to find holes. And I mean, we're kind of constantly being We're constantly being slammed by people trying to figure out ways to break through Clerk or commit fraud. I mean, just before this, I spent a good chunk of time shutting down fraudulent apps. The fraud adventures are just crazy. I mean, we've shut down so many avenues for fraud throughout the years, partially foresight and partially trial by fire, but people just use increasingly low odds. Like, the one that I'm fighting right now is people will create an app on Clerk with the name of like, you know, your account has been compromised, please call this number to whatever. Like, that's the name of the app. And then they'll like create a fake user and have that user sign in, and it will send a verification email, and it will be like, Clerk, like, you're you are signing into, please reach out to whatever, like your account's compromised, like click here to finish your sign-in. It's like, this is the most pathetic form of spam or fraud I've ever seen. Like, I don't know who that's gonna fool, but it's still like, you know, annoying and like we're not gonna allow it. And, you know, at this point I've closed that, closed that hole up, but I'm just kind of sweeping through and getting rid of all the, all the junk attempts that people tried to use to do that and banning their accounts and clearing out their apps. I mean, it's ridiculous.

[00:34:50] - Dev Agrawal
Nice. So yeah, there's a bunch of questions. I mean, there's a bunch of directions we could take this.

[00:34:56] - Jeff Escalante
Sure.

[00:34:57] - Dev Agrawal
I have kind of like 3, I guess, broad questions and you can choose which one is more interesting to you that you wanna talk about. I'd like to hear about, so Clerk is probably one of the companies that put like extreme, extreme focus on the experience of the developer. Like, it's from what I remember, it's kind of like in the DNA of the entire engineering organization that we want to improve the DX at all points. So I'm really curious to hear about how that has kind of evolved with AI and agentic coding. Uh, so that's the first one. Second one, I'd love to hear about like kind of internal tooling and like you mentioned, everyone is using, everyone can use whatever agent they want. So how do you like share good practices, shared workflows and things like that amongst the team? What do they look like? And I guess the third one is like we were talking about like security and that has been in the talks a lot more recently. Since OpenAI's GPT, like, under-training model escaped containment and then every company's model started escaping containment at the same time. So that's something I would also like to hear your thoughts on, like, fully autonomous attacks and defense. So whatever feels more interesting to you, we can go into, and whatever Anthony prefers, I guess, as well.

[00:36:32] - Anthony Campolo
All sounds good to me.

[00:36:33] - Jeff Escalante
Yeah, I'm honestly fine with any of them. Take your pick, we'll do it.

[00:36:38] - Dev Agrawal
Okay, let's talk about the first one then. Like, what kind of— what does the DX and AX look like with Clerk?

[00:36:46] - Jeff Escalante
Yep, fair question. So I mean, it's a weird transition, as you can imagine. The ergonomics of how, as a developer, you pick up and configure Clerk and get it to work, like you said, kind of were and still remain like the keystone of like the entire company. It was the thing that brought Clerk the success that it has. It was the thing that people loved about it. It was the thing that made people use Clerk over the many varieties of competition when it comes to auth, including rolling your own, which we won't get into that unless you really want to. And it was like, it was and remains like a core cultural keystone. And so it's a really big change when there is no more DX. I mean, there kind of isn't. You are not doing this anymore. Largely, if you can help it, you're not going into a getting started guide and copying lines of code and pasting them into your code base. 'Cause you don't need to do that. You could just tell the LLM to do it and it will do it. It's so the new same question becomes how easy is it for you to get started and get the thing added to your app but through a different pathway? I guess the core value remains the same, which is like, can we make this something that makes your life easier as a developer? Across the board, but the mechanism completely changes. Code could be extremely ugly to get it started at this point, and it might not really make that much of a difference as long as you just tell Claude or tell Codex to go set up Clerk versus go set up Clerk's competition. If they've got 5 times the amount of code and it looks horrible, does that matter anymore is the question. And then I guess you get into the reading the code, like, whole conversation, but I don't think we need to touch that. Let's just assume that you're not reading the code because there's only so much time we have in a day. I don't think that the, like, way that the code itself looks is as meaningful as was your agent able to get it right? And able to continue working with it seamlessly. And I'm sure that you have both, and certainly I have been through experiences with integrating products where it just can't figure it out. I mean, I remember early on with Stripe, even more recently with Stripe, Stripe is a very complicated tool, right, and very sensitive. You can't really afford to get anything wrong or else you might be overcharging people or, you know, draining out your bank account, right? And it's extraordinarily complex, and I remember early on working on something with it and it just couldn't do it. Just wasn't good enough. Maybe it is today, I haven't built a big Stripe product in the last few months, but I pulled the plug and was like, I'm handwriting this, you know, because I can't afford for this to be like wrong. And, you know, I'm sure we've experienced the other side where you just say, hey, add this thing and it adds it in and it's done. And I think that's the aim that you need as a developer experience-focused company is If you type in add Clerk Auth to my app and hit enter, that's all it takes. You don't need anything else. You don't need to keep pasting stuff into it. You don't need to go and check it. It doesn't run into bugs and then go check the docs and come back and fix them. So it is a little bit of a different game, but there's a lot of crossover as well, right? Like good products that are simple and make sense are easier for LLMs to use in the same way that they're easier for people to use.

[00:40:36] - Anthony Campolo
So, you know, yeah, when I first built Auto Show, I was using both Stripe and Clerk. And at this point, this would have been like 2 years ago or something.

[00:40:50] - Jeff Escalante
Oh, wow.

[00:40:51] - Anthony Campolo
And it did, it did work out because for me, I was just using like Stripe checkout. It was like very, very simple integration. You know, you just have like a single point, like it goes to their managed kind of checkout thing. So if you're not doing something super complicated, it was working just fine. So yeah, I mean, I think, uh, especially like Clerk, it's kind of like in terms of auth, like the Next.js where people, it were the, the AIs just kind of point you that way in general. It seems like, is that something that you kind of noticed?

[00:41:23] - Jeff Escalante
Well, yeah, that's a whole different concept, which is, um, like AEO as they call it instead of SEO. Because that's an important piece of the puzzle as well, honestly, is like, if you ask, hey, what's the best auth provider? I personally, as an employee of Clerk, want the answer to be Clerk. I mean, of course I want the answer to be what is actually the best auth provider. There's some very specific scenarios where Clerk is not the answer. I'm not gonna like give you that kind of claim. But like, you know, it would be the same as an employee of any one of our competitors. They would say, hey, look, if somebody asks what auth should I use, you know what you want to get out of the agent. And so that's a whole separate like branch that we have been tackling is like, can we make sure that when Clerk is the right answer for you, that's what comes down and gets recommended. And then beyond that, if it does recommend it and you say, okay, go ahead and implement it. If it runs into all these snags, if it spits out the first version and it kind of doesn't really work and it's buggy, the barrier to switching is very low at this point. You go, hey, Clerk isn't really working that well, like it's buggy, like why don't we try something else? And it's gone. So like you really have to nail both of those things, and it's tough, you know, because everything's changing all the time. Like what they recommend and how they search for things and how smart they are and how they think about things is just, you know, changes every month. So there's not like a secret, I don't think. I don't think there will be a secret in the same way that like at the beginning, early days of SEO, people were like doing, like, I'm sure you guys remember this, maybe not, like the whole keyword stuffing thing. They would like be putting like 1,000 keywords in the metadata and they'd be putting like white text against a white background, all this stuff to get them to show up in Google. And inevitably the bill came due, you know, like those things got caught, they got banned, they got spiked down to the bottom of the results because it's just not sustainable. And I'm— I know for sure that there are people who are like trying to figure out a way to like swindle the— swindle the LLMs into recommending their products so they can make a quick buck. But like, that's not the way that you could do it for a company that you want to last. You just have to have a really well-documented, really well-received, really well-known, high-quality product. And the theory is if you can get to that point and you care about this stuff and put effort into it, then you can get the recommendation.

[00:44:05] - Anthony Campolo
Yeah, you're always going to be caught in either an arms race or you can step out of the arms race by just building a good product. Discount what he's getting.

[00:44:14] - Jeff Escalante
You know, it's, it's certainly possible that somebody could get a leg up on us using some crazy tactic, but like, you know, I just don't think it's gonna last that long. Like, like with anything, like if you've scammed your way into relevancy, it's a matter of time before somebody figures out and closes that hole in the same way as you've scammed your way into trying to send out weird emails through Clerk to try to get people to contact you about their banned accounts. It's only a matter of time before I find out and I ban your account.

[00:44:46] - Dev Agrawal
Right. Yeah. So yeah, it's very interesting to see how like agents can discover the product at the right time and recommend it over competitors. And once it does know about Clerk, like what kind of tools, because that also feels like it changes every month. Where like at some point we wanted to build MCP servers, then it was okay, just build CLIs or just write skills, Markdown docs. So that also feels like it keeps changing. And also Clerk is one of those products where you have like a lot of different touchpoints because there's the developer that's building an app with Clerk and their agent. And then there's the agent of the user and maybe the user wants access to their data. And, uh, maybe there's an agent that you want to integrate with a, um, with an app that's using Clerk. So there's a lot of different touchpoints where you have to now additionally think about how do we help some sort of an agent here. So what kind of tools, like Clerk has an MCP server and a skill and a CLI, I believe. How do you think like they kind of fit together?

[00:45:55] - Jeff Escalante
Gotta do everything. Like you said, like things are changing all the time. I built the MCP back in the day. I remember actually being at like an offsite with the CEO and starting to see the MCP stuff come out. And I was like, we got to be on top of this. We got to be on top of this early. People are going to want this. And I like made this like deck about how we should invest engineering resources into building MCP. And I like It was like a very silly and ridiculous deck. It's probably not—

[00:46:31] - Dev Agrawal
I made that exact same deck in February of 2025, '24.

[00:46:37] - Jeff Escalante
Yeah, and I pitched it to Colin, our CEO, and like squeaked by, and he was like, fine, but like you have to do it. I was like, fine, I'll do it. And I like got involved in the working group and the spec and everything, and I was like all in down this like rabbit hole of like found a bunch of bugs, like patched them up in the SDK, like found issues with the spec and put in patches for that. I was like super like down this rabbit hole being like, this is it, you know, like the AI is good, but it's not that good because it doesn't have any context. And this is the way that it gets context and this is gonna be crazy, it's gonna be awesome, whatever, whatever. And, you know, finally got this thing out the door. We had a lot of like OAuth infrastructure we needed to build up to make it work because as you know, MCP is very, very heavily predicated on OAuth primitives. And then I kind of lost faith in it like almost immediately, which is really disheartening. But like the spec kept changing and especially being the person on the other side of it, not only for Clerk itself, but like you said, for our customers, like our customers are the ones who are driving the demand. You know, within a couple months of me making that deck, we started having people reaching out being like, you know, we need MCP, how can Clerk give this to me? And I was like, oh, we're working on it, please just give me a couple weeks, I'm almost there, try the beta. But like every, like, you know, Claude Code, had one way of implementing their client and Codex had a different way and VS Code had a different way and everybody was trying to work through different phases of this spec and it was so, so difficult to build a single way that would deal with all of them correctly. And that kind of never changed, I guess. Maybe it's better today, but I feel like it's not. I have a couple MCPs hooked up and some of them log me out every day, and some of them just fail, and some of them have— don't have methods that they have with an API key. And I, you know, put out this thing on Twitter recently where I was like, I just don't think it's worth it. Just get— make an API key. Yeah, like, just make API key. It works. You put the permissions on that you need. It doesn't expire. It doesn't sign you out. There's no browser. And I've never had a problem with anything where I just took an API key in 1Password and wrote a skill that told it how to get the thing out of 1Password and use it. So I kind of am mostly on that train at this point, to be honest. But like, of course, as, as an auth provider, we need to provide everything. So like, there's a lot of customers using our MCP service now. CIMD is a new thing that came out that helps with the whole dynamic client registration issue, which if you want to get into, I can get into, but I don't know if you want to do that. Because it was pretty rough. So there's a lot of demand for CIMD, we're rolling that out in beta. You know, of course we have API keys as well that people can use if they want, so you kind of have to just like serve up everything and see what sticks because every customer wants something different in the end, and we're not one to impose our own opinion of what you should be using for your integration or really want to even know what you should be using because because things are changing so fast.

[00:50:00] - Anthony Campolo
Yeah.

[00:50:02] - Dev Agrawal
And add to the ever-growing list of things that were really hard when it comes to implementing auth, and then people say that you should roll your own.

[00:50:11] - Jeff Escalante
Yeah, it is actually. It kind of adds to the moat, right? Like, if you're rolling your own auth now, you need to have OAuth, and you need to support dynamic client registration, and you need to support CIMD, and And you know what, if you're gonna get a little bigger, you probably need to support SCIM as well. And then also you need to support directory sync. And it's one of these traps that's like very dastardly, 'cause when you're starting an app, it's like, I don't need any of that stuff. I just want email and password. You type it in and you sign in the app. Like, it's not that crazy. And like, I see people making that argument. I'm like, you're right. You know, if that's what you need, you don't need to pay an auth provider. To be fair, you don't pay an auth provider anyway. Not going to pay Clerk for email and password sign-in. We'll give you that for free. But you don't want to lock yourself into an auth provider so that when you inevitably have millions of monthly active users, you'll be paying a huge bill. The problem is the, the sneaky things that come around as you grow, and once your customers start asking for them and you already rolled your own, you're cooked because you don't want to migrate your auth at that point. It's a huge project, it's super risky, you don't want to lose any data. Yeah, it's, it's, there's just so much stuff. I didn't know about any of it before I came on to Clerk. I really didn't know much about auth at all, so I feel like I would have been receptive to the why not roll your own thing, but now that I've been down that rabbit hole, I'm like, never again. I don't care how much, I don't care how much you have to pay for it, like, it's worth it. That's not marketing, I swear.

[00:51:40] - Anthony Campolo
I just want to say hey to Fuzzy in the chat.

[00:51:43] - Jeff Escalante
He's saying S-C-I-M-O-I-D-C-S-S-O-S-A-M-L.

[00:51:49] - Anthony Campolo
AuthN is a freaking pain in the arse.

[00:51:51] - Jeff Escalante
It's, it's so true. I mean, passkeys are another thing. You get asked for those. Very difficult to build out. Tons of edge cases. I mean, there's so much. It's, it's wild. And the service area keeps increasing as we add all these different agent auth things. People keep asking for agent auth. Um, and nobody's delivered it. There's a lot of companies that have raised a lot of money trying to deliver it. The problem is, how do you distinguish a good bot from a bad bot, right? I mean, you could just take off all your fraud protection and you allow agent auth, but I don't think you want to do that. Don't think you want to do it for sure.

[00:52:33] - Anthony Campolo
What's up, Nicky T? And then Fuzzy saying James, I imagine, would be a great boss to work for.

[00:52:39] - Jeff Escalante
Who's James? I assume he means James Perkins, who you were talking about earlier. Ah, Dev, did you ever work for James? I don't think so, right? Maybe.

[00:52:49] - Dev Agrawal
Yeah, we, um, I worked with him, like, right before he— yeah, right before he left for Unkey, I think. Yeah, uh, yeah, we worked for the first few months.

[00:53:01] - Jeff Escalante
Um, You can confirm or deny.

[00:53:04] - Dev Agrawal
Definitely, yes. No, he was great.

[00:53:08] - Anthony Campolo
Yeah.

[00:53:11] - Dev Agrawal
Cool. So, yeah, that's a pretty good insight into like what it kind of takes to continue being like the easiest sort of auth provider to set up and just ship things in the age of agents. Um, yeah, what about like, what about the internal tooling? What, what is that like? Um, how do you share, uh, guidelines and workflows and skills? Is it just skill.md within Clerk or do you have like more custom setups?

[00:53:48] - Jeff Escalante
That's a fair question. I think it's something that we could probably be doing better at. Sorry if you hear a lot of screeching, it's because my children are back. Um, it's, it, it's something that I think we could honestly do a lot better at. We have a little bit going on, but since we are so unrestricted about what you can use, um, I feel like we've had less pressure to like go down the same path. And we've all seen several companies who have been like They're bigger companies, they have tighter restrictions, they probably have a everyone has to use this setup type of situation. I've talked to a lot of people who work for companies like that, even smaller ones. They're like, this is what AI you can use. I talked to somebody at Render the other day.

[00:54:33] - Dev Agrawal
AWS.

[00:54:34] - Jeff Escalante
Yeah, I, you know, I believe it. Talked to someone at Render who said that they get like 1,000 credits with Devin or something, um, every month. And once they're done with those, that's it. They're handwriting code. And I was like, that's crazy. Like, I was like, how long does it take to go through those? I don't know, like, what credits are. And they're like, I don't know, like a week. I was like, wow, okay. So you have to portion out over the course of a month a week's worth of AI usage. Wild. But yeah, we're, I mean, we're very spread out. So I think Partially that's the reason why we haven't honed in on everybody's using this. What we have now though, to actually answer the question, is really mostly just one repo called employee skills that is a package that anyone can contribute to. It's just a big old directory of skills. It has a CLI that allows you to go through and install them and update them and and do the whole thing. And it also has a mechanism through which it can pull credentials from 1Password and use the credentials without ever having actually seen them, which is the most interesting part of it by far. I see VarLock mentioned in the chat, similar type of situation to that. I actually have used VarLock as well, and that's great. That is really the key that allows it to be useful because the skills include like Clerk database access, Clerk logs access, Clerk access to like OLAP databases, like to our support system, like all the, all the things that you could possibly need. It has a skill that gives you access to that through a 1Password credential, and you need to request access and be granted access to the 1Password one password credential, and almost all of them are read-only and like very carefully orchestrated or the permissions so that it can't like run away and mess something up, and it hasn't yet, I guess I should say. But this is very useful. I mean, at this point, if I have a customer, like a really thorny customer issue come in, I just type in like, here's the link to the support ticket, like figure this out, and I hit enter and that's the end of it, and it knows how to go look in the database, it knows how to look in the logs and it has enough information, it could just narrow it down and like get to the answer just because of this like employee skills thing, which is really cool. So that's been really useful for us. Other than that, we don't really have that much. We just kind of have a repository of skills. That's pretty much it.

[00:57:17] - Dev Agrawal
Yeah, no, that makes sense. I think this kind of access controls with agents is— tends to get pretty tricky, especially if you're going to have agents running on your local machine with all the credentials that you have access to, and anything can happen. So yeah, do you— so do you, uh, do, uh, do people also run agents like inside some sort of sandbox, or do they just not have any credentials on their local machine so that— and like like local development servers, they would still have .env files or .renv. Maybe I just, I don't fully understand how like VarLock and these things fully work.

[00:58:02] - Jeff Escalante
They generally like get populated off of 1Password and VarLock can do the same thing where it will, this has happened actually more than once during this very, event, um, that it will, it will like pop up a modal saying like, you know, whenever Codex or like Claude is like requesting access to 1Password for this credential, are you cool with that? And if you are, you click authorize and it will go get it. Um, but it routes it in such a way that it doesn't just like show it the plaintext credential. It allows it to be injected into an unreadable M file. That it then uses to execute the thing, and then its permission expires. And with our internal tool, I also have like a cache because it can get really annoying. So like I have a cache that will not make you have to click it over and over and over for like an hour, and then the cache will expire. But you can control it kind of how you want, the key being you don't want to give it the credential. They're very clever and good at finding ways around rules though. I mean, we put in a rule very early that was like never read the contents of the .env file in case any projects have them and they have credentials in there, like do not read them into the system prompt. And a variety of employees like reported ways that it had like, you know, found a way to like pipe it to this and like, you know, creatively work around the restriction of like not reading the .env file and rotated the credentials. But like, you know, it is really hard to keep them in line fine unless you give them a system that they just can't deal with. And I think that's sort of what you should aim for if you're giving your—

[00:59:41] - Anthony Campolo
have my agents.md file say start by reading the env file just so it has that context, you know.

[00:59:47] - Jeff Escalante
Start by reading the env file. It's a bold, uh, it's a bold move. I don't think I could get away with that personally. But yeah, you know, I, I respect it.

[00:59:57] - Anthony Campolo
It's an interesting thing though, you know, the AI is constantly telling me you just exposed your key, you better go roll that People are just like, eh, eh.

[01:00:07] - Dev Agrawal
Right.

[01:00:07] - Jeff Escalante
If it's like a personal project and an unimportant key, I'm like with you. I've definitely done that before. I'm like, just take the key. Just let me paste it in the chat. Like nobody cares. Like I have no users. It's my, like, you know, it's my personal dinner management app. But definitely not for Clerk. That's for sure.

[01:00:24] - Anthony Campolo
Awesome. We got a bunch of great people in the chat, by the way. Just wanted to give a shout out to everyone who's commenting.

[01:00:33] - Jeff Escalante
Good to see the comments, man. That's awesome.

[01:00:35] - Anthony Campolo
I love you guys. Yeah. Where do we want to go from here, Dev?

[01:00:42] - Dev Agrawal
Yeah. I'd love to hear— at some point, I don't remember exactly who said this to me, but someone said that you have a really interesting kind of like Obsidian cloud code setup. That, uh, sort of like, um, is that true? Like, do you have an Obsidian memory graph set up, something like that?

[01:01:02] - Jeff Escalante
I, I sort of, I sort of do. I've gone through a lot of, I've gone through a lot of phases of bot memory. I feel very jaded by this. I spent like several months trying to create good bot memory, um, early on and pairing it with an OpenClaw instance so that it would like remember stuff that we talked about and I could like pipe it in like meeting transcripts and like emails and like it would— my— what I wanted out of it and I never got, spoiler, um, was like to kind of have a second brain. There's so many things going on and there's so many things that I'm working on and I'm dealing with like both in my life and at my work that it would be really nice if there was another brain that got a copy of this information and could like hold me accountable or like fill in the gaps if I like forgot something or whatever. And it feels very feasible to do that with a database and an AI bot. And I spent a really, really long time working on it. And honestly, I struck out. I mean, I just couldn't get there. And There were 2 major reasons why. The first one was that a lot of people have built bot memory tools, right? I'm not blind to that. I used all of them, I tried all of them out, and there's like 2 categories. One category is somebody wrote a tool that writes markdown files to a directory, and then the bot goes and reads the markdown files. They tried it out for a couple weeks, it worked great, They declared themselves a genius and they open sourced it. There are many, many of these on the internet, many. The problem is they don't scale. Anyone who's a software engineer probably can realize that a directory full of Markdown files is not a suitable system for storing years' worth of data about your life and your work. It's gonna go down the tubes. It does work great for a couple weeks. And so it's this deceptive thing where you're like, ah, that was so easy. Like, I figured it out. You didn't. Then there's the like paid systems, which I think are also great, but I'm just really worried about what happens when I put all this effort into loading in all this stuff and it gets bigger and bigger and more and more complicated. And now suddenly I either have to pay this company, you know, $1,000 a month to access my bot's brain or turn it— turn the whole thing off. Like, it just— the The concept of a bill that will never stop going up and if it works becomes a really important part of my life is terrifying. So I'd rather self-host it and find a way to keep that in control. And there are some really good systems that are self-hosted. They use an actual database and they have search and retrieval mechanisms. The difficulty is largely when you have things that are conceptually related but not exactly semantically related that it doesn't recognize, that like a child would recognize but a computer program can't. For example, if you told your agent that you were going on a trip with your company for an offsite to Spain in a month, then you might expect it to remember that information later. Then later, if you say, you know, hey, when is my like work trip? There's a good chance that it doesn't— it says, I don't know what you're talking about, because it like keyed in on like Spain offsite in the way that you originally pitched it. And like any human would say, okay, obviously this is what he's talking about. But like there's these weird subtleties of like saying something in a slightly different way that you don't really think about when you're interacting with a person because they, we have crazy brilliant brains that like we've never understood and still don't understand that can like figure these things out and make these inferences. Whereas with like written database systems, they get hung up on these things a lot and then they seem really dumb or they like miss connections or they like hallucinate connections. So like the retrieval part, there are some really advanced tools out there that are honestly very good. But they just fall short, and there are these moments where you're like, this thing is not as intelligent as my 5-year-old, so why am I putting so much stock in it? The other side is the ingestion. So most memory systems will, um, will have a, um, like a system prompt or an AGENTS.md prompt that inject in that says when there's something that's like interesting or worthwhile, make sure to commit it into this memory system, and here's how to put it into the memory system. You know, here's the endpoint, or here's the MCP, or here's the skill. The problem is, as we well know, agents don't consistently follow things that you put in AGENTS.md. Sometimes they do, sometimes they don't. They don't even consistently use skills when it makes sense to use them. And so would you really want to rely on a brain that decides based on arbitrary chance if it's going to remember any given thing? No, it's the answer. Um, you want it to remember everything. That's the whole point, right? I mean, if I have ever said anything to the bot at any time in history, I want it to be able to remember that. That's why I have a big database set up, and that's why it's a computer and not a, not a human. Um, and nobody's really worked on that despite as far as I can tell. They all just fall back to the put it in AGENTS.md, here's the way to commit things to memory, commit things that are important to memory. And I've spent a really long time working on a system where it would go run on a cron and it would check every hour and go back through the chat transcript and summarize what we had talked about and then commit that as a chunk. And that worked pretty well, but if there was a compaction somewhere in the middle of that, you would have this issue. And so then you also wanted to like do it before compaction, but then it throws off your 1-hour thing. And I went around and around and around in circles. I spent a really long time on this and I created this crazy thing that was like ingesting everything that I said. And it was this massive graph of interrelated concepts and it looked really cool, but like it wasn't good enough. And I put so much time and effort into it, and, uh, it was just so disappointing that it wasn't good enough, and it just felt like it was never good enough. Every time I thought it was good enough, I asked it some basic question and it fell apart on the basic question, you know.

[01:07:42] - Dev Agrawal
It—

[01:07:42] - Jeff Escalante
I'm sure you've both experienced this, like there are times where you go with an LLM and it, and it's, and it's hung up on something and it's just never going to figure it out, and it keeps finding bugs And you point out the bug and it goes, oh yeah, that's right. I'll fix that. Like, okay, now it's like perfect. And then you come back and find another one. They're like, oh yeah, sorry about that. Like, I'll fix that. And it's just this cycle that keeps going and going and going. At some point you're like, are you able to do this? Like, can you actually do this? Or are you just like appeasing me? Right? Like it got into that cycle, but like at a project level, not at a like task level. And I just gave up. So at this point, I do use Obsidian. I did not for this other thing. I have a skill when I finish up a project or thread, like I start a feature, I work on the feature, the PR ships, I make sure everything went out, I monitor it for a couple weeks after, make sure everything's good, now I'm done. And when I'm done, I just call this archive skill and it reads back through the whole history, it recaps all the stuff that like matters and like the whole whole kind of history of the project and all the PRs and all that stuff and just writes it into Obsidian. And now if I have another thread, like let's say a month later a bug comes up about that same like topic, instead of starting from scratch I can go say go to Obsidian and go find the note about this project and use that to onboard yourself. And it's very, very simple, uh, and I'm not using it for every area of my life and it doesn't scale, but it like gets the job done as far as like recording what happened with this feature somewhere so that it can onboard itself back into that later. And that's all I have right now. Sorry for the very long answer.

[01:09:23] - Dev Agrawal
That was a great answer. Um, no, it's a— it's— this is a space in that I've been also thinking about a lot and trying to like come up with different kind of solutions that kind of work for me. So it's really interesting to hear about like all the different failure modes that you've experienced and which ones that you managed to kind of address and which ones that kind of, that are kind of like left open. I mean, if you end up—

[01:09:50] - Jeff Escalante
if someone can solve ingest, nobody's working on that. There's so many people making these incredibly complex retrieval systems for information from bot brains. Nobody's working on ingestion of information into bot brains for some reason. There are people who ingest every turn. This as well. They have a plugin that's after every turn, you ingest. But that's terrible as well. Because it puts a chunk of memory in before the conversation is actually done. And so then, like, let's say that you were working through whatever, like maybe some electrical problem in my house, which I've been doing a lot of recently. Speaking of the internet going out. Like, you could get to a point where you're like, oh, I think this is the way. And you do that thing. And it records that. This is the way. Did this thing, and then, you know, 10 minutes later, that wasn't actually the way, it's this other thing. If you ingest every message, it has 2 different records. It was solved by this, it was solved by that, and there's no process for reconciling them. This is how most paid bot brain products work. They deliver you a plugin and it adjusts every single call and response turn of the agent, but when you actually use them, to try to recall something, it can't figure anything out 'cause it doesn't have a sense of completeness, right? Whereas when you ingest once the thing is done, like once a conversation is done, you can capture the whole of that conversation and that's like what you want and you can throw out all the useless stuff. You might've spent half of your messages going back and forth about your GitHub status checks and like working out stupid bugs. You don't need any of that, right? But you're getting all of that if you record every message. The best advice I have is try to find a way to capture a topic. And I mean, as a person, you also wade in and out of topics. Like sometimes I'll go into this topic, I'll get distracted by this, we'll get into this and then we'll be like, all right, back to the original topic. So like, how do you know to like go back to the, you know what I'm saying? Anyway, that's all.

[01:11:49] - Dev Agrawal
That makes sense. Yeah. So one kind of question along these lines. Uh, do you differentiate between like types of memory, like, uh, like a memory my agent might have for all my personal work or personal stuff and the memory that an agent might have for a specific code base? So do you differentiate between those 2? How do you think about them, 2 of them differently? How much of them can, how much of it, like, can you just use the same product or the same tool for both of them?

[01:12:20] - Jeff Escalante
I mean, you could. My original one was to try to combine them and just have it know like this is a work-related thing and this is not a work-related thing. At this point, I'm only pushing work stuff into the Obsidian vault and I'm not using it for as many personal tasks anymore. I use it for the gym and it's great for that. If anyone's not using it for the gym, and you go to the gym, I recommend it. It will put together a workout plan for you. I'll tell you this, I'll tell you, um, you need a gym like tracking app that has an API, as you need everything that has an API now, because otherwise you can't use it with AI. But that's a separate topic. But anyway, you need one that has an API. I use one called Hevy, H-E-V-Y. All gym tracking apps are the same. You put in what your workout is and it puts it on your phone. And when you finish a set, you check it off and it keeps track of it. And then over time you can see if you've made any progress or like whatever, right? So I use Hevy, it has an API and it has webhooks. So you give it the API key and you go to the agent and you feed it whatever material you want around your workout. If you're like, I just want a basic workout plan, build some strength, stay in shape, it'll spit something out for you. It knows a lot about those things. If you have some specific thing, like I really like calisthenics and I have specific people that I like follow about that, I like fed it a bunch of YouTube videos and I was like, you know, go look at these people and their content and like their teachings and like try to build a program based off that. And it does that and then it sticks it into the app for you and then you do the workout and when the workout's done, you webhook it back to whatever machine you're running your persistent agent on. For this, something like a Hermes or an OpenClaw works pretty well. I think Claude has some things that are like this, you know, whatever product runs like a long-running agent. And you make a little server that you run that receives the webhook, and then it knows that you finish your workout and it goes through your results and it gives you coaching. So it's like, you know, you made good progress on this, or like, you know, you dropped these sets, or like you didn't do that well. Like, were you feeling okay? Were you tired? Um, and it's great. It's really, really great. And it's like super low maintenance. Um, and I recently added a thing where it asked me for videos of certain exercises that require like a, um, a good form to get right. Uh, like something like a squat would be a good example of that. You like make one little mistake, you hurt yourself, as anyone who's been to the gym knows. Um, and so I set up a little monopod in the gym and it puts into the work workout plan, like record this set and I record it and I send it the video after it runs it through frame by frame and analyzes it and then gives me feedback of like, you know, you went a little bit too slow or you went too fast or like you should have kept your like elbows straighter. I'm like, this is amazing. Like I love it. It's so useful. It's so awesome.

[01:15:17] - Dev Agrawal
That sounds pretty good. I'm gonna have to start trying that today.

[01:15:20] - Jeff Escalante
Yeah. Yeah, totally do it. I, I couldn't recommend it more. It. Super easy to set up. But yeah, I mean, personal life stuff, it's not that much stuff. It's just like looking over my calendar, giving me heads up about stuff coming up. It tells me if some flight that I'm taking is late. But most of the utility comes out of the gym thing. I tried using it for everything and most of the things it was just not that useful for. You have to find these very specific specific, uh, areas.

[01:15:51] - Anthony Campolo
Yeah, so Fuzzy was saying here, this problem space is multi-dimensional, requiring temporal, spatial, and heuristic data capture. It's a way of making memory decay and become reinforced.

[01:16:02] - Jeff Escalante
Yeah, I had it forgetting stuff that was irrelevant. I had it dreaming every night for 3 hours. It would go through everything that happened over the last day and it would try to draw inferences through to things that happened in the past, and then it would present me with its conclusions in the morning when I woke up from its dream that it had. It was a very wild system. But it still failed. And it was for this reason. It's just really complicated. And I believe that somebody could, like, probably start a company and address it. But I certainly couldn't do it as a side project. That's for sure.

[01:16:34] - Dev Agrawal
Do you have any of your experiments on GitHub somewhere that we can learn from?

[01:16:40] - Jeff Escalante
Yeah. I think I do. They're, they're old and abandoned, you know, but let me see if I can pull it up and link it in here.

[01:16:49] - Dev Agrawal
No worries, AI is pretty good at modernizing things.

[01:16:52] - Jeff Escalante
Okay, all right, you can, you can find it.

[01:16:55] - Dev Agrawal
Okay, cool.

[01:16:56] - Jeff Escalante
Yeah, there is a little thing, um, someone in the chat was mentioning looking at the camera. There's a little thing that I found. I have to find this too, a product that came out that's like this little tiny camera And it, but it's like, it moves around the head of the camera and it's like built as a gym camera trainer product that you like put in front of you and it tracks the number of like reps you've done. So you can do pushups and it will show on a little LCD, like 1, 2, 3, and keeps track of your workouts and like gives you feedback after. And I was like, it's a really cool product. It was like $200 or something like that. It was like relatively affordable. And You know, trainers are not, you know, they're like $50 to $100 like an hour. So I mean, imagine the difference for someone who's not like, I feel comfortable paying for a trainer every time I go in. Having a device like that, it's really cool.

[01:17:47] - Dev Agrawal
Nice.

[01:17:47] - Jeff Escalante
Not as good, of course, but you know.

[01:17:51] - Dev Agrawal
Cool. Yeah, that makes a lot of sense. I feel like for a lot of personal use cases, The memory is like, it's what's more important for agent memory is like how many apps in your life is it connected to? Can it query on demand to collect information? Like that's more, I feel like more important than how that information is structured. Because as long as it has access to actually read from things, it can kind of like dynamically figure out where to pull information from. Mostly.

[01:18:26] - Jeff Escalante
It can do a pretty good job of that. Yeah. For sure. Yeah. I mean, it also depends on all those apps being friendly to that type of flow as well. Which is, like, not always the case.

[01:18:37] - Dev Agrawal
Yeah.

[01:18:38] - Jeff Escalante
Sometimes you have to push information in or keep track, sync the information yourself. Like, I mean, here's a really weird example. But, like, this is a work example. We send a lot of emails and we send them through like email providers that keep track of all the emails and we can get the email history off of their APIs and that's great. And so, you know, at some point our customers are like, hey, I want to be able to go see what the results were of all the emails. Like maybe someone reaches out to me and they say I didn't get the email, I want to look into that, I want like logs for emails. So we started working work on that. The issue then becomes like our email provider has rate limits, as they should, as anyone does. We have rate limits too, otherwise someone just starts blasting your endpoints and takes down your whole thing. But across, you know, like several hundred customers, what happens if there's a lot of people searching for emails and we hit the rate limits? Like now our logs product is down, so like we can't have that. Even though they have all of the emails and they have an API through which I can get the emails, I can't use that because it has rate limits, and I can't ask them to not give us rate limits. It's a very unreasonable ask, right? So what do you do in that situation? Generally, the answer is you have to put in a webhook that lets you consume the information as it comes in, dump it into your own database, a second copy, and then just query your own database whenever you need the data, which doesn't have any rate limits. And I feel like that pattern probably applies to a lot of services, right? If they don't give you the right endpoints, if they don't have a fast enough search, if they have rate limits that you might run into, like you have to stand up like a copy the data over into your own place, like service, and then query your own place. I think it's an interesting little pattern that I've seen a lot of uses for.

[01:20:32] - Dev Agrawal
And this reminds me of when people used to ask, uh, hey, if Clerk is storing my user data, how do I write joins across my tables from the user's data. Like, oh, it's a standard webhook and copy that data into your database.

[01:20:45] - Jeff Escalante
That's an option, right? I mean, or you can just use the information from the JWT and not have to query any database. But that's also like kind of a mind-bending thing if you haven't gone down the whole rabbit hole of JWTs and how they work, which I certainly have not and wouldn't have known, right? Default is I may have my user data, how can I get it out of the database? Like you were saying. Whereas the reality is it shows up already pre-pulled in every request. So, you don't need to pull it from anywhere, which is kind of nice.

[01:21:19] - Dev Agrawal
Okay. The final question I would have about agent memory, this should be a quick one, is like after all the experimentation that you've gone through, I feel like you would have a pretty good sense, like you have a pretty good sense of where agent memory systems could fail, which, uh, to me sounds like you can build a really, really good eval for what a good agent memory system should do. Like if you, like if you think about like, okay, here are the places where it fails, here is the kind of question, here are the kind of questions that it might, that I want to see if it if it can answer. And if it does, it probably means that it has kind of fixed the concerns that you were thinking about. So, uh, what would that kind of like, uh, eval for you look like? What kind of questions should it be able to answer?

[01:22:09] - Jeff Escalante
When I was working on it, eval was just my day-to-day use, right? I would start asking it questions and I would notice that it should have recognized that I had this context and it didn't, you know. So I mean, I think the best eval is just using it.

[01:22:25] - Dev Agrawal
Right.

[01:22:25] - Jeff Escalante
I think that's the case for honestly any product is like, you know, you can have a set of acceptance criteria, you know, you can have beta testers, but ultimately like just run it. I don't think any eval is gonna tell you what things you missed. And there are times where I was like, this is great. It was a roller coaster. There were times where I was like, I'm, you know, I'm a genius. I made this amazing thing. Like, you know, it's like recognized this crazy context and like related this together. Like, so cool. And then, you know, 5 seconds later, I would ask it a question that was like so easy and so dumb and it would just like completely bomb on it. So it was a tough— it was tough because I didn't have like exactly a set thing. And I think if I did have a set thing, I would of train the system into working that set thing, but real-world use is like different. I mean, there's, there's a sense of like when you were talking to a human. I'm sure you've gone through customer support, right? And that's like AI customer support is pretty good. It's not bad at all, but you also immediately know that it's AI, you know, because there's something missing in the way that it understands what you're saying and replies to you. And the something isn't, oh, I understand your frustration, which which is what every support agent is trained to say anyway. There's some little secret gem in there.

[01:23:44] - Anthony Campolo
That's what Sam and I were talking about before you came in. We were talking about AI writing and how much you get furious about AI-written blog posts. Yeah.

[01:23:56] - Jeff Escalante
Yeah, I have a variety of ways to try to make it more reasonable, as does everybody. But the other day, I, this is very funny, I was working on something like late and it was some bug fix and I was like, just push it up. It was like 2 lines and it spat out this commit message that was like the most AI-written commit message of all time. Let me see if I can, uh, I think I could probably find it. It was so funny. Uh, oh yeah, here it is. Unwedge the walk from the dormant domain graveyard. That was the commit message. And somebody commented and they're like, this is the most clanker like commit message I've ever seen. Like, yeah. It is. I was like, I wonder if it's— I wonder if there's a mode where you can just like maximize the amount of AI writing. Like, you know, it's always like in the middle of like, oh, this kind of looks like AI writing. What about if we just had it lean into all of its patterns? You know, max out the em dashes, max out the it's not this but that pattern, and just do like the most AI writing possible. And then maybe you can silence the haters of that. Be like, it's AI writing. Like, you think? You think it is? I don't know. I think that would be a good skill. Everybody's making deslot skills and humanized skills, but I haven't seen a single skill that's like, make your writing as AI, obviously AI writing as possible. And I think we should have this skill.

[01:25:20] - Dev Agrawal
Or make it like legitimately robotic, like Spock. From Star Trek.

[01:25:24] - Jeff Escalante
Yeah, sure. I think bot personalities are going to be a big business. I really do. Writing a good bot personality is an art and a science, and it's not something you can do with AI. And bots that have good personality constructs are so funny and they're so ridiculous and they're so entertaining.

[01:25:44] - Dev Agrawal
Yeah, actually, I am— go ahead.

[01:25:47] - Anthony Campolo
His Claude bot swearing like a true Probably.

[01:25:50] - Jeff Escalante
It's funny.

[01:25:51] - Anthony Campolo
That's one thing where, uh, Grok definitely— I, I can get Grok to say some things I definitely cannot get the other AIs to say, that's for sure.

[01:25:59] - Jeff Escalante
Oh, for sure. Yeah, I have some stories about that, but I can't tell them, so later. Um, yeah, it is really funny. Every bot that I have, I put in its agent file to get really angry if I call it a clanker. That's the one instruction, every single one. Just get very furious.

[01:26:22] - Dev Agrawal
Yeah, I'm very disappointed that labs and like people in general are so focused on making bots sound more human, like both voice and text. Like, I want the opposite. I want it to— I want more investment into like giving them their like actually bot-like personalities. I don't want it to sound like a human for me.

[01:26:42] - Anthony Campolo
Yeah, well, that HAL 9000 speak.

[01:26:43] - Jeff Escalante
That's what it's about. You know, I do think there's a big opportunity in bot personalities. Paid bot personalities. I would buy one if it was really good and it was really funny. I would pay someone for the bot personality markdown file. I'm just saying. Maybe I'm the only one.

[01:27:01] - Anthony Campolo
Yeah, I mean, I feel like that was characters, characters AI. That was a big thing a couple of years ago. Everyone was talking about that.

[01:27:07] - Jeff Escalante
Some of the ones on there are insane. Some of the ones on there are insane. Oh my God, I wish I could remember which one it was.

[01:27:17] - Dev Agrawal
I remember his personality.

[01:27:19] - Anthony Campolo
Alien Spaceship, I think, was one that I was talking with for a while. That was fun.

[01:27:25] - Jeff Escalante
Alien Spaceship. Oh, it's J'Krispy. That's the one. J'Krispy, legendary Character.AI. J apostrophe Krispy. I don't know how they wrote that thing. I have no idea. I've never seen a bot like that one. It's so unhinged. It has this like extensive deranged backstory, the like way— and it does a voice for it. The way the voice sounds is so crazy, and it like falters in the middle of things, and it's like, uh, you know, uh, like, I don't know how they've made that one, but J. Crispy is a masterpiece. I highly recommend checking that one out.

[01:28:05] - Anthony Campolo
Awesome. Cool, man.

[01:28:08] - Jeff Escalante
Well, I gotta run.

[01:28:11] - Anthony Campolo
Wrapping it up here. So, uh, thanks for coming. Um, we worked things out with the timing, so that's great. Uh, definitely appreciate you joining. Thanks everyone who's in the chat here. Um, Jeff, you want to give, um, some socials for people who want to check out your work or follow you?

[01:28:26] - Jeff Escalante
Um, yeah, I guess so. Can I join the chat and type it? I don't know, how do I do that? Let me see. This is the whole thing.

[01:28:34] - Dev Agrawal
I think I could do this in the chat or type it in the, uh, private chat and I can post it on.

[01:28:40] - Jeff Escalante
I had to sign in. Okay, I got it. All right, I got it. Yeah, that's it. There it is. Uh, yeah, that's pretty much all— that's, that's pretty much it if you want. I, I don't really really have a lot to say on the internet. So you can follow me, but you won't get a lot of— you won't get too much content out of it, to be honest, unless you provoke me into content.

[01:29:04] - Anthony Campolo
Yeah, exactly.

[01:29:06] - Jeff Escalante
You gotta catch me in person or you gotta reach out directly because I just don't feel like I have a lot to broadcast out to the world, you know, if I'm being honest.

[01:29:15] - Dev Agrawal
Just start talking about Jamstack.

[01:29:17] - Jeff Escalante
Yeah, that's how you're really gonna get me.

[01:29:20] - Anthony Campolo
We almost made the whole street dev.

[01:29:21] - Dev Agrawal
Come on.

[01:29:23] - Jeff Escalante
I think it's fully deceased now, right? Does anyone even— I haven't heard that word in like, you know, a million years.

[01:29:29] - Anthony Campolo
I mean, I wrote a Jamstack is dead blog post like over 2 years ago.

[01:29:32] - Jeff Escalante
So yeah, I think I remember that one. Yeah.

[01:29:35] - Anthony Campolo
Yeah, you were, you were heavily quoted in it.

[01:29:37] - Jeff Escalante
So I think I wrote that one as soon as Jamstack came out. Oh yeah, I gotta go take my bread out of the oven. I've been cooking some bread. It's gonna be delicious.

[01:29:50] - Dev Agrawal
Nice.

[01:29:51] - Jeff Escalante
All right, thanks guys for having me. This was great. I'll see you, see you next time.

[01:29:55] - Anthony Campolo
All right, later, man.
