Thanks AI: Am I a WordPress Developer Now?! ( ๐Ÿ”— **Source:** [Thanks AI: Am I a WordPress Developer Now?! (](https://www.youtube.com/watch?v=ghMnRhzRyV8) > [!note]+ Document Notes > tags: [wordpress, ai-development, podcasting, claude-ai] > author: Matt Cromwell > source: YouTube > reference: https://www.youtube.com/watch?v=ghMnRhzRyV8 > date created: 2025-01-10 10:30 > > # ๐Ÿท๏ธ Title: Thanks AI: Am I a WordPress Developer Now?! Building a WordPress Plugin with Claude AI > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Set up structured documentation workflow for AI projects โ€” track decisions and prevent regressions #documentation - [H2] Implement feature branch strategy for AI-assisted development โ€” prevents difficult rollbacks #development - [H3] Create UX validation process for block interactions โ€” ensure proper click handlers work #ux ## ๐Ÿงญ Table of Contents - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#๏ธ-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ”— References - [Podloom Plugin](https://github.com/wpminute/podloom) - [Transistor API](https://developers.transistor.fm/) - [WP Minute](https://wpminute.com/podloom) ## ๐Ÿ“ Summary - WordPress developer Matt Cromwell discusses building Podloom, a podcast plugin, entirely using Claude AI assistance - Plugin integrates with Transistor API and RSS feeds to embed podcast players and content in WordPress - Demonstrates both opportunities and challenges of AI-assisted development for non-technical founders - Explores business model focused on setup services rather than premium plugin features - Key technical challenges included UI development, RSS parsing, caching, and Gutenberg block interactions ## ๐Ÿ“– Main Content Matt Cromwell, founder of WP Minute, shares his experience building a WordPress podcast plugin called Podloom using Claude AI as his primary development partner. The plugin serves as a case study for AI-assisted development by non-technical founders. The plugin initially focused on Transistor.fm API integration, allowing users to embed podcast players and automatically import show notes. It later expanded to support RSS feeds and Podcasting 2.0 features like chapters, transcripts, and person tags. Key development challenges included: - Building responsive admin interfaces within WordPress constraints - Creating interactive Gutenberg blocks with proper event handlers - Implementing efficient RSS parsing and caching mechanisms - Developing custom JavaScript audio players with fallbacks The business model centers on positioning Transistor as the best podcast host and WordPress as the best website platform, with revenue from setup and consultation services rather than premium plugin features. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00](https://youtu.be/ghMnRhzRyV8?t=0) โ€” Introduction and Live Stream Setup - Key idea: Matt introduces developer advocate Brian Cords to review his AI-built WordPress plugin - Evidence: "Brian Cords, welcome to my live stream... You are going to poke holes in my development chops today" #### โฑ๏ธ [02:15](https://youtu.be/ghMnRhzRyV8?t=135) โ€” Podloom Plugin Origins - Key idea: Plugin started from personal need to better integrate Transistor with WordPress workflow - Evidence: "I wanted something that could help with that a little bit easier... I could pull in the scheduled and drafted transistor episodes" #### โฑ๏ธ [05:30](https://youtu.be/ghMnRhzRyV8?t=330) โ€” Development Philosophy and Admin Design - Key idea: Approached development with UX-first mindset despite using AI assistance - Evidence: "I actively went into this... knowing like I don't want to clutter the admin screen" #### โฑ๏ธ [08:45](https://youtu.be/ghMnRhzRyV8?t=525) โ€” WordPress Admin UI Development Challenges - Key idea: WordPress admin UI development is particularly difficult with AI coding tools - Evidence: "Developing UI for WordPress admin is not a... if you're just a pure vibe coder. You're it's just not a fun experience" #### โฑ๏ธ [12:20](https://youtu.be/ghMnRhzRyV8?t=740) โ€” Claude vs Gemini Development Experience - Key idea: Claude significantly outperformed Google's Gemini for WordPress development tasks - Evidence: "Claude is just hands down doing this way better for me than Gemini was" #### โฑ๏ธ [15:10](https://youtu.be/ghMnRhzRyV8?t=910) โ€” Documentation Strategy for AI Projects - Key idea: Created structured documentation during development for learning and AI context - Evidence: "I started to document... so that every time I'm in the project claude itself is referencing the default decisions I need it to make" #### โฑ๏ธ [18:30](https://youtu.be/ghMnRhzRyV8?t=1110) โ€” Feature Branch Development Approach - Key idea: Used feature branches to prevent AI development from breaking main functionality - Evidence: "I was always working on a feature branch... there were a few times where I was building out features... where I just had to scrap it" #### โฑ๏ธ [22:45](https://youtu.be/ghMnRhzRyV8?t=1365) โ€” Gutenberg Block User Experience - Key idea: Demonstrated podcast block with settings in sidebar vs inline interface - Evidence: Brian suggests "you can have that same field in the placeholder too... welcome to my block. select your source to keep moving" #### โฑ๏ธ [28:15](https://youtu.be/ghMnRhzRyV8?t=1695) โ€” Business Model Strategy - Key idea: Revenue from setup services rather than premium plugin features - Evidence: "The business model... if you need help setting this up on WordPress, I can do that for you or a team can do that for you" #### โฑ๏ธ [32:20](https://youtu.be/ghMnRhzRyV8?t=1940) โ€” RSS Feed Integration Expansion - Key idea: Expanded beyond Transistor API to support any RSS feed after user feedback - Evidence: "Alberto emailed me back... why don't you support just the straight RSS feed because then... you could support any podcast host" #### โฑ๏ธ [35:45](https://youtu.be/ghMnRhzRyV8?t=2145) โ€” JavaScript Player Development Struggles - Key idea: Building custom audio player UI was most challenging aspect of the project - Evidence: "I tried multiple open-source JavaScript libraries... it was just an absolute nightmare" #### โฑ๏ธ [40:30](https://youtu.be/ghMnRhzRyV8?t=2430) โ€” Podcasting 2.0 Features Implementation - Key idea: Added support for modern podcast features like chapters, transcripts, and person tags - Evidence: "These tags are just like it's just data inside the RSS feed... how we as podcast player developers... choose to leverage how we display that information" #### โฑ๏ธ [45:15](https://youtu.be/ghMnRhzRyV8?t=2715) โ€” CORS and Performance Optimization - Key idea: Implemented caching and CORS workarounds for transcript and chapter features - Evidence: "There's a nagging thing called CORS which I learned about deeply... to not load the transcript by default" #### โฑ๏ธ [48:20](https://youtu.be/ghMnRhzRyV8?t=2900) โ€” Learning from Existing Solutions - Key idea: Brian suggests studying existing open-source solutions like Jetpack's podcast block - Evidence: "What I would have maybe done is gone to their public code, pass that to Claude and said... what do you think about this one that already exists?" ## ๐Ÿ“š References - [Podloom GitHub Repository](https://github.com/wpminute/podloom) - [Transistor.fm Developer API](https://developers.transistor.fm/) - [RSS.com Podcast Hosting](https://rss.com) - [Podcasting 2.0 Namespace](https://github.com/Podcasting-2-0/Podcast-Namespace) - [Claude AI Code Editor](https://claude.ai/) ## ๐Ÿ—ฃ๏ธ Paraphrase - Non-technical founder successfully built complex WordPress plugin using AI assistance by focusing on product strategy and user experience while letting Claude handle implementation details - WordPress admin interface development remains challenging for AI tools due to lack of instant visual feedback compared to modern JavaScript frameworks - Strategic documentation and feature branch workflows help manage AI development complexity and prevent regressions in larger projects ## ๐Ÿ“ฐ Newsletter **AI-Powered WordPress Development: Lessons from Building a Podcast Plugin** Matt Cromwell's journey building Podloom with Claude AI offers valuable insights for WordPress developers exploring AI-assisted development. Key takeaways include the importance of structured documentation, feature branch workflows, and understanding that AI excels at implementation while humans still drive product vision and UX decisions. The plugin demonstrates practical integration patterns for external APIs and modern web standards like Podcasting 2.0, showing how AI can help WordPress developers tackle complex technical challenges while focusing on user experience. Resources: [Learn WordPress](https://learn.wordpress.org/), [Developer Docs](https://developer.wordpress.org/), [WP-CLI](https://wp-cli.org/), [Gutenberg Handbook](https://developer.wordpress.org/block-editor/) ## โœ… Action Items #### WordPress - Core: Improve Gutenberg block interaction patterns for embedded content - Documentation: Create AI-assisted development best practices guide - Community: Develop workshops on modern podcast integration techniques #### DevRel - Education: Workshop series on API integration patterns in WordPress - Developer experience: Improve block development documentation and tooling - Community management: Share case studies of successful AI-assisted plugin development ## ๐Ÿงช Hypotheses - AI-assisted development is most effective when combined with strong product vision and systematic documentation practices - WordPress admin interface development remains a significant challenge for current AI coding tools due to limited visual feedback loops - Business models for AI-built plugins may shift toward services rather than traditional premium features ### ๐Ÿ“Š Methodology - Case study analysis comparing AI development approaches (Claude vs Gemini) - User experience testing of Gutenberg block interactions - Performance benchmarking of RSS parsing and caching implementations ### โ“ Questions - How can WordPress improve developer experience for AI-assisted plugin development? - What documentation patterns best support iterative AI development workflows? - How will AI coding tools impact the traditional WordPress plugin economy? ### ๐Ÿ”ฎ Future Research - Comparative analysis of AI coding tools for WordPress development - Impact of AI-assisted development on plugin quality and security - Evolution of business models in the AI-augmented plugin ecosystem ### ๐Ÿ’ก Implications - Practice: AI can democratize plugin development but requires structured approach and domain knowledge - Education: Need for training materials that combine AI tools with WordPress best practices - Security: AI-generated code still requires traditional security review and testing practices ### ๐Ÿง  Learning Styles Assessment Reading level estimate: Flesch-Kincaid Grade Level 10 #### ๐Ÿ‘€ Visual learners - Present: Live coding demonstrations, admin interface screenshots, block editor examples - Improve: Architecture diagrams showing plugin structure and data flow #### ๐Ÿ”Š Aural learners - Present: Live stream format with verbal explanations and discussions - Improve: Audio-only podcast version highlighting key technical concepts #### ๐Ÿงฉ Kinesthetic learners - Present: Step-by-step development process, hands-on plugin demonstration - Improve: Downloadable starter templates and guided coding exercises #### ๐Ÿง  Logical learners - Present: Structured decision-making process, comparative tool analysis - Improve: Decision trees for choosing development approaches ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Clear heading structure, descriptive alt text for interface elements - Improve: ARIA labels for custom player controls #### Media and captions - Present: Live stream with clear audio - Improve: Automated transcript with timestamps ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: Focus on open web standards and RSS technology - Improve: Examples from diverse podcasting communities globally #### Inclusive language - Present: Avoids gatekeeping technical jargon, explains "vibe coding" concept - Improve: More inclusive alternatives to terms like "non-technical" ### โœ… Logical Validity #### Strong reasoning - Deductive strength: Clear progression from problem identification to solution implementation - Causal reasoning: Well-established connection between AI assistance and development accessibility #### Tone of voice - Overall tone: Conversational and educational, balancing humility with technical accomplishment ### ๐Ÿ›ก๏ธ DARVO Analysis - No concerning patterns detected - discussion maintains focus on technical and business aspects ## ๐ŸŽฏ Conclusion Matt Cromwell's Podloom development journey demonstrates that AI-assisted WordPress development can be highly effective when combined with strong product vision, systematic documentation, and proper development workflows. While challenges remain in areas like UI development and block interactions, the approach opens new possibilities for non-technical founders to build sophisticated WordPress plugins. The key insight is that AI serves as a powerful implementation partner rather than a replacement for domain expertise and strategic thinking. ## ๐Ÿงฑ Refactor Appendix ### ๐Ÿ“š Literature Split Pad ### [L1] AI coding tools democratize plugin development > [!quote] [Thanks AI: Am I a WordPress Developer Now?](https://www.youtube.com/watch?v=ghMnRhzRyV8) by [[Matt Cromwell]] via [[YouTube]]. Published 2024. Accessed 2025-01-10. > "I think it's okay to say my developer are like these trillion dollar AI systems and I'm just the guy who does the marketing and the product side of it." Demonstrates shift in development accessibility through AI assistance. [view highlight](https://youtu.be/ghMnRhzRyV8?t=1200) #ai-development #wordpress ID:rw_001 ### [L2] Documentation prevents AI development regressions > [!quote] [Thanks AI: Am I a WordPress Developer Now?](https://www.youtube.com/watch?v=ghMnRhzRyV8) > "I started to document... so that every time I'm in the project claude itself is referencing the default decisions I need it to make." Shows importance of structured context for AI development tools. [view highlight](https://youtu.be/ghMnRhzRyV8?t=910) #documentation #ai-development ID:rw_002 --- ### ๐Ÿ”– Atomic Split Pad (Zettel Candidates) #### [Z1] WordPress admin UI challenges AI development - Limited visual feedback compared to modern JavaScript frameworks - Pointer to 8:45 timestamp discussion - Links: [[AI-Development]] [[WordPress-Admin]] [[User-Experience]] #### [Z2] Feature branches essential for AI development - Prevents difficult rollbacks when AI builds break core functionality - Pointer to 18:30 discussion of development strategy - Links: [[Development-Workflow]] [[Version-Control]] [[AI-Development]] --- ### โœ๏ธ Fleeting Queue - [F1] Research WordPress block interaction patterns โ€” improve click handlers #fleeting #development - [F2] Compare AI coding tools for WordPress development โ€” systematic evaluation #fleeting #research - [F3] Document RSS parsing best practices for podcasting โ€” technical guide #fleeting #documentation --- ## Full Transcript [00:02] Brian Cords, welcome to my live stream.<br>[00:05] >> Yeah, I'm happy to find out like 12<br>[00:09] seconds ago that this was a live stream.<br>[00:11] >> You look great. You sound great. Coming<br>[00:13] from sunny California, um developer<br>[00:16] advocate for Woo Commerce.<br>[00:18] >> That is the job title.<br>[00:20] >> It's fantastic. You are going to poke<br>[00:22] holes in my development chops today. I'm<br>[00:25] coming at this uh with the same ego and<br>[00:30] naivee as Mark Zamanssky would. Uh<br>[00:34] developing a WordPress plug-in with my<br>[00:37] pal Claude Code. I recently announced uh<br>[00:41] I I launched a podcast plugin that I<br>[00:44] developed uh again along with Claude<br>[00:46] Code called Podloom. P O D L O M<br>[00:50] available on GitHub uh right now or the<br>[00:52] wpmin.com/podloom.<br>[00:55] I want to go through all phases of what<br>[00:57] it's like to be a developer/prouct<br>[00:59] slashnon techchnical founder allinone.<br>[01:04] The idea um came from of course all of<br>[01:07] the podcasting stuff that I do and um<br>[01:10] the only way I ever transistor as my uh<br>[01:13] podcast host of choice and I was like<br>[01:15] hey great like they have a great player<br>[01:18] they have a nice easy copy paste iframe<br>[01:21] but I want something a little bit better<br>[01:23] I want something that integrates more to<br>[01:25] the workflow and especially at the WP<br>[01:27] Minute um and my work at Gravity Forums<br>[01:29] I often record stuff schedule it and<br>[01:32] schedule the blog supposed to go out and<br>[01:34] I wanted something that could help with<br>[01:36] that a little bit easier. Uh so I set<br>[01:39] down the path of building out<br>[01:42] uh Podloom which started just for<br>[01:44] Transistor just to throw in your API key<br>[01:48] uh embed that player thanks to<br>[01:51] Transistors API they send their uh API<br>[01:54] or they send their player code through<br>[01:56] the API can just pull it right in and um<br>[02:00] most importantly I could I could pull in<br>[02:02] the scheduled and drafted um uh<br>[02:06] transistor episodes uh which was a clear<br>[02:09] value and since then I have expanded it<br>[02:14] quite greatly<br>[02:17] uh to support uh multiple RSS feeds. I'm<br>[02:20] going to demo it and there's a lot of<br>[02:22] things that have gone through my head as<br>[02:24] I have built this. Um, and maybe you'll<br>[02:28] ask some questions along the way. Uh,<br>[02:31] more particularly probably on the<br>[02:32] development side, but you're a<br>[02:34] podcaster. I don't think you use<br>[02:36] Transistor. Um, you'll have some<br>[02:39] questions. You have<br>[02:40] >> I have in the past. So, I was able to<br>[02:41] connect it to a to an old uh podcast<br>[02:44] that I have and play with it a little<br>[02:47] bit.<br>[02:48] >> Okay. Let me just jump in. And I should<br>[02:51] have had this screen shared already. I<br>[02:54] thought I had this up already. I don't.<br>[02:56] One second.<br>[02:59] Uh first thoughts though as you got to<br>[03:01] play with it. Did anything break number<br>[03:03] one? And uh number two, did it work as<br>[03:06] expected from what you saw?<br>[03:08] >> Um it well the first issue was that I<br>[03:13] wasn't sure how to get the plugin. So I<br>[03:16] downloaded the the repo because there<br>[03:18] was no like official releases on the<br>[03:20] repo. So I just cloned the whole repo<br>[03:23] and then I had to build it myself. Like<br>[03:26] I had to run the build command to build<br>[03:28] all the blocks and stuff. So that was my<br>[03:30] first piece of feedback was that I could<br>[03:32] have uh maybe could have had like a nice<br>[03:35] ready to go version of it for me or else<br>[03:38] there was and I just didn't find it.<br>[03:41] >> Got it.<br>[03:44] All right. Let me just share the screen.<br>[03:51] Okay. So,<br>[03:53] to give myself some credit, I am not a<br>[03:57] total noob when it comes to like what's<br>[04:01] needed in a WordPress plug-in. Um,<br>[04:07] so yes, I I built this completely with<br>[04:08] claude code, but like the forward<br>[04:11] thinking is I I think there are a lot of<br>[04:13] people out there who who might<br>[04:16] AI code plugins but just<br>[04:21] slap it on top of of WordPress and it<br>[04:23] sort of like it is what it is. Like I<br>[04:25] actively went into this, at least in my<br>[04:28] own opinion, knowing like I don't want<br>[04:30] to clutter the admin screen. like I'm<br>[04:31] not putting a parent admin link on uh<br>[04:34] the WordPress admin because it's just<br>[04:36] not needed for that for this kind of<br>[04:39] product in my opinion. So I tuck the pod<br>[04:41] loom settings into the settings um menu,<br>[04:45] right? Thank you. Um I I know that as an<br>[04:49] end user of soft of plug of WordPress<br>[04:51] plugins and software like I need a like<br>[04:54] a welcome screen like help me navigate<br>[04:57] uh you know points of interest uh<br>[05:01] resources support that kind of thing. I<br>[05:03] mean it's not ready yet completely but I<br>[05:05] got the p the the foundation of it here<br>[05:08] on this welcome tab. Um and then trying<br>[05:11] to compartmentalize the different<br>[05:14] features. um of the plugin across the<br>[05:18] multiple settings tabs within the<br>[05:20] settings page was important to me. And<br>[05:24] um more specifically some like<br>[05:27] developerish things like I've I've built<br>[05:29] this danger zone knowing like I need I<br>[05:32] want a plugin where I can quickly just<br>[05:34] delete everything that it has put in to<br>[05:37] the database, right? Like it's going to<br>[05:39] do it when I do uh uninstall uh when<br>[05:42] somebody deactivates and uninstalls the<br>[05:44] plugin through uninstall.php. PHP, but I<br>[05:46] also um like to have something where I<br>[05:49] can just completely delete everything um<br>[05:53] uh you know when I testing something or<br>[05:55] working on like a staging environment or<br>[05:57] something like that. So um that was the<br>[06:00] the the frame of reference that I had in<br>[06:02] my head when I said to myself, how do I<br>[06:05] want somebody to interact with this in<br>[06:07] the admin screen? Any how does that<br>[06:11] thought process land with you? Am I<br>[06:13] approaching that the right way?<br>[06:15] >> Yeah. I mean, I think what you're<br>[06:17] describing is generally the hardest<br>[06:18] part, which is the user experience. What<br>[06:20] does it feel like to use my plugin? I<br>[06:22] think that's the spot where the the<br>[06:25] better plugins separate themselves um<br>[06:28] from the other ones, you know, and<br>[06:29] there's different ways to go. It's not<br>[06:31] like there's one right or wrong way.<br>[06:32] Like if you look at Gravity Forms versus<br>[06:34] like Contact Form 7, you know, uh<br>[06:37] there's really pros and cons to both.<br>[06:39] like they're they're very opposite<br>[06:41] experiences building a uh a form, but<br>[06:44] they're they're they both have their own<br>[06:46] purpose and their target audience. Um so<br>[06:49] yeah, that that sort of stuff, the<br>[06:50] settings pages, setting up all that<br>[06:52] where you put it, that stuff um is<br>[06:54] something that you probably I'm guessing<br>[06:56] you had multiple versions. You probably<br>[06:57] iterated on that a few times. You<br>[06:59] probably thought you had a good idea and<br>[07:01] then it didn't work. That kind of stuff.<br>[07:04] >> Yeah. I mean, we could talk about the<br>[07:06] development stuff. Um, I guess we can<br>[07:09] talk about it in in in line. So, I I<br>[07:12] won't go too I I won't skip ahead here.<br>[07:14] I'm trying to figure out there's a lot<br>[07:15] of stuff that went into this and and I'm<br>[07:17] trying to take this in like a real good<br>[07:19] learning experience for people. But<br>[07:21] again, like I am using Claude code to<br>[07:24] develop this stuff. And the biggest<br>[07:28] challen like one of the biggest<br>[07:29] challenges with that is um<br>[07:34] the look and feel of the of the admin<br>[07:37] right like it's not like if you went<br>[07:38] into claude code and this is stuff that<br>[07:40] you know you and I have joked about on<br>[07:42] Twitter before like I can there's a lot<br>[07:45] of people who are vibe coders now and<br>[07:46] that's great like everybody should start<br>[07:47] a podcast that's great but can you<br>[07:49] survive and can you do it um you know<br>[07:51] sustainably<br>[07:53] the like developing UI for WordPress<br>[07:56] address in the admin is not a if you're<br>[08:00] just a pure vibe coder. You're it's just<br>[08:02] not a fun experience.<br>[08:03] >> Um because it's not as instant as if<br>[08:07] you're building like a JavaScript app,<br>[08:09] right? like as you're as the system is<br>[08:13] >> spitting out the code, you can literally<br>[08:15] watch it<br>[08:17] change the UI as it's doing that and<br>[08:19] you're like, "Oh, yes. I can see the<br>[08:21] stream of of the of the choices that the<br>[08:25] AI is making for me and I can instantly<br>[08:27] see that UI feedback." And that process<br>[08:29] is just oh so easy. And even like some<br>[08:32] platforms, you can point and click and<br>[08:34] say, "Move this button over here, make a<br>[08:37] column over here." I haven't discovered<br>[08:40] that for WordPress yet. I don't know if<br>[08:42] it exists, but that was one of the<br>[08:44] biggest challenges is the consistency of<br>[08:47] developing the admin and a lot of stupid<br>[08:50] things like not saving settings on<br>[08:52] certain tab on certain tabs that I was<br>[08:55] in. It was always like this thing where<br>[08:57] cloud code had to like keep I had to<br>[08:59] keep battling that part of it. Um, and<br>[09:02] that was a particular challenge. I<br>[09:04] always knew what I wanted in the admin,<br>[09:06] but getting it to look halfway decent<br>[09:10] was the biggest challenge for me.<br>[09:12] >> Yeah, it's weird, too, because there<br>[09:14] really is a lot of like default. Like,<br>[09:16] this is a pretty standard look of a<br>[09:19] WordPress settings page. You got the<br>[09:21] tabs component on the top and these kind<br>[09:23] of cards and the blue buttons and the<br>[09:25] blue outline buttons and all that sort<br>[09:27] of stuff. And there is stuff in core<br>[09:29] WordPress to just spin this up. um at<br>[09:32] least on this kind of like an older<br>[09:34] style PHP settings page, but it I feel<br>[09:37] like Claude for me always wants to write<br>[09:40] all the CSS itself or something like it<br>[09:42] doesn't know that these things already<br>[09:44] exist and it wants to do it itself and<br>[09:47] then it end up with all this custom CSS<br>[09:49] and things and have to tell it like hey<br>[09:51] like this thing already exists like just<br>[09:53] use it. It'll look fine if you just add<br>[09:55] this one class to it or something. But I<br>[09:57] I guess that stuff's just not documented<br>[09:59] or people don't use it. I don't know<br>[10:00] what it is that it didn't make it into<br>[10:02] the data, but I've been I haven't been<br>[10:04] doing the old I've been trying to do the<br>[10:07] React settings pages where it uses the<br>[10:10] some of the newer components and things<br>[10:12] like that. And that's kind of the same<br>[10:15] issue. It wants to throw in a bunch of<br>[10:17] stuff. It wants to do everything custom<br>[10:18] and you kind of have to tell it, hey,<br>[10:20] look, you know, these components already<br>[10:22] exist. Just use the ones. Um, but I<br>[10:24] think that's what vibe coding, a lot of<br>[10:25] it does. It just wants to throw 50<br>[10:27] Tailwind classes on everything. like it<br>[10:28] just wants to take that shortcut instead<br>[10:31] of using a a system, you know?<br>[10:33] >> Yeah. And and I think maybe that's the,<br>[10:38] you know, maybe that's the<br>[10:39] self-awareness that I'm trying to<br>[10:40] portray here is that like I know there's<br>[10:44] thing there's a lot aside from the code<br>[10:47] which is obviously huge. There's like a<br>[10:49] lot of things I know I don't know. And I<br>[10:52] was trying to approach this in a very<br>[10:55] systematic way where like I know what I<br>[10:57] need from somebody who,<br>[11:00] you know, ran a theme and plug-in<br>[11:02] product shop for a couple of years as<br>[11:04] like a non-technical<br>[11:06] founder, but I was relying obviously on<br>[11:08] the team to write the code and and trust<br>[11:10] them. So I was kind of looking at this<br>[11:12] like I think it's okay to use I mean<br>[11:14] depending on what the severity of the<br>[11:15] software is and how complex it gets.<br>[11:17] Like I think for what I'm building, it's<br>[11:19] okay to say my developer, I know this is<br>[11:21] going to probably a hot take, like it's<br>[11:23] okay to say my developer are like these<br>[11:26] trillion dollar AI systems and I'm just<br>[11:29] the guy who does the marketing and the<br>[11:31] product side of it. Um because it's sort<br>[11:34] of the same thing like I'm trusting<br>[11:36] somebody to write code for me and then<br>[11:38] I'm just leading it from the product in<br>[11:40] the marketing sense. That's kind of what<br>[11:41] I'm doing here. What I did specifically<br>[11:45] when I started to build out these<br>[11:46] features knowing that if that makes<br>[11:48] sense is I ran the or I started to uh<br>[11:52] build up a claude markdown file the<br>[11:55] claude project file right so that every<br>[11:57] time I'm in the project claude itself is<br>[12:00] referencing<br>[12:02] >> the default decisions I need it to make<br>[12:04] so I won't go obviously I'm not going to<br>[12:06] go through line by line from all of this<br>[12:07] stuff and there's a lot of other like<br>[12:09] technical stuff in here basically what<br>[12:11] I'm saying as a cautious vibe coder is I<br>[12:16] don't want you to like once I've built<br>[12:18] this like admin page never introduce<br>[12:22] something that's going to break that<br>[12:24] >> unless you ask me first right so I<br>[12:27] started to document like the big things<br>[12:29] in this thing to say check this okay<br>[12:32] this features done like tabs admin<br>[12:35] settings and and make sure we don't<br>[12:37] break this unless you're asking me first<br>[12:40] and that's what I started to do with all<br>[12:41] all the features as I started to build<br>[12:43] out the plug-in. I I don't know if this<br>[12:45] is something that that you do or<br>[12:48] recommend or have success with.<br>[12:51] Yeah, I've been I've been leaning more<br>[12:53] into the the CloudMD file. Um I just<br>[12:56] learned today that there's like a I<br>[12:58] think if you do like a a hash tag or<br>[13:00] something, you can tell it specifically<br>[13:02] make a new rule or something like that<br>[13:04] is one of the things you can do. Um, and<br>[13:07] then there's also I've been looking at<br>[13:08] there's something called like skills and<br>[13:10] agent. There's like rules files and<br>[13:13] skills files and uh these like hidden<br>[13:16] folders you create and we have a bunch<br>[13:17] of it in uh Woo Commerce and they're<br>[13:20] kind of all over the place. Like there's<br>[13:21] like somebody added some cursor rules,<br>[13:23] somebody added a more broad like agents<br>[13:25] rules, somebody added some clawed<br>[13:26] skills, and I there's been some<br>[13:28] discussion like, hey, we should have a a<br>[13:30] set way, but I also want to take what we<br>[13:32] learned there, and then for somebody<br>[13:34] who's building plugins, can we have a<br>[13:36] set of like default ones like, oh,<br>[13:39] you're spinning up a WordPress plugin or<br>[13:40] a WooCommerce plugin. Here's like stick<br>[13:42] this in the root of your folder and it's<br>[13:44] going to, like you said, tell it all<br>[13:45] these things of what to think about and<br>[13:47] what to pay attention to. Um because my<br>[13:50] personal experience is that when I've<br>[13:51] been using Claude, it's really good. I<br>[13:53] love it. I have time. But every single<br>[13:56] time I have to open the file myself and<br>[13:58] just tell it, hey, this is what you did<br>[13:59] wrong. Like this, you just this is the<br>[14:02] like I just know from years of<br>[14:03] development experience, you just did<br>[14:05] this thing wrong and and fix that. You<br>[14:07] know, I don't know how well I would<br>[14:10] >> be able to prompt my way if I didn't<br>[14:12] fully understand what it was doing.<br>[14:15] >> Yeah. Yeah. I mean this was I made an<br>[14:19] initial version of this which like I<br>[14:20] said at the top of the show was just<br>[14:22] about transistor and just about the API<br>[14:24] key uh you know getting the API and<br>[14:26] pulling those in building the block like<br>[14:28] that took me a few days to like to get<br>[14:31] it right to like where you know and not<br>[14:34] like full days like I'm just<br>[14:36] >> whatever doing this thing on the side<br>[14:37] but from where I am today I mean there<br>[14:40] were from where I am today there were at<br>[14:42] least<br>[14:45] like two or three full days that we're<br>[14:49] we're like building this stuff, right?<br>[14:51] With a lot of that back and forth.<br>[14:53] >> Um, and when<br>[14:57] Google announced uh anti-gravity and and<br>[15:00] Gemini 3 or whatever it was, at one<br>[15:03] point I was like, well, let me let me do<br>[15:04] that tandem work where I started to<br>[15:07] build features<br>[15:09] uh I started to build a new feature um<br>[15:11] with Google Gemini. And this is just an<br>[15:14] aside, but it was it was awful compared<br>[15:16] to what four Claude was doing. And that<br>[15:19] was even before Claude 45 um Opus. And I<br>[15:23] was just like like Claude is just hands<br>[15:25] down like doing this way better for me<br>[15:30] um than than Gemini was. Yeah. I've I<br>[15:34] installed the anti-gravity and then I<br>[15:35] heard a lot of horror stories about it,<br>[15:37] so I didn't even try it. And I everybody<br>[15:40] talks about the models and this and<br>[15:42] stuff and I just don't have like I'm not<br>[15:43] that kind of person. It's this I feel<br>[15:45] like I'm back when I was like playing<br>[15:46] guitar and people would talk about<br>[15:48] pedals and amps and I'm like I just<br>[15:49] don't I don't hear the difference. To me<br>[15:51] it's like I'm just here to make some<br>[15:53] noise. I'm not that detailed. And but I<br>[15:55] will say that for me I just open up<br>[15:57] Claude Code. I don't know. I I'm using<br>[15:58] it for writing now too. I'm using it for<br>[16:00] everything. I'm just uh it's just that<br>[16:03] for like if you have a project you're<br>[16:05] working on. I've tried Claude projects<br>[16:07] and I've tried the Gemini gems or<br>[16:09] whatever they're called and all these<br>[16:10] other things, but just like none of it<br>[16:12] really I don't know speaks to me the way<br>[16:15] that Claude code even cursor I don't pay<br>[16:17] for that anymore. Um yeah, I feel like<br>[16:19] cloud code just I don't know. I feel<br>[16:21] like it just knows what it's doing or<br>[16:23] there's just something about it.<br>[16:26] Um, I will get back to the plugin to<br>[16:28] show this stuff off, but there are some<br>[16:29] things I just want to let people know<br>[16:31] that I did as I again went through this<br>[16:34] is um I don't know if I can I can't zoom<br>[16:37] in on on this particular screen, but um<br>[16:40] I I what I not cautiously but uh<br>[16:44] preemptively started to do was actually<br>[16:46] start writing documentation<br>[16:49] uh for the plug-in as I went along. So I<br>[16:52] it was very important to me uh twofold.<br>[16:55] One, so I could have documentation<br>[16:57] ready, right? So as I'm developing this<br>[16:59] stuff, it's fresh in my mind and I can<br>[17:02] have Claude write the documents um when<br>[17:05] I uh so for when you know this goes<br>[17:08] quotequote live, the documentation will<br>[17:10] be ready. Number two, as a reference<br>[17:12] point for me to learn and understand<br>[17:15] some of the things that are uh that that<br>[17:17] I've asked Claude to build that I don't<br>[17:19] understand the the code for or didn't at<br>[17:21] the time. So things like um some caching<br>[17:25] mechanisms, the build script that you're<br>[17:26] that you're referencing, um like the<br>[17:30] ways that we handle parsing in the in<br>[17:32] for RSS. So I could learn it. I could<br>[17:35] have documentation ready and if I need<br>[17:37] to reference um if I need to reference<br>[17:41] claude back to its own its own learnings<br>[17:44] to be like hey when you built this RSS<br>[17:46] parser you know we're using simple pie<br>[17:48] built into into WordPress like I don't<br>[17:50] want you to go and develop a whole new<br>[17:51] parser for this feature I might have<br>[17:53] asked you for like reference this so<br>[17:56] that ongoing sort of like learning<br>[17:58] documentation thing is something that I<br>[18:00] was doing while I was actively um you<br>[18:03] know building out the plugin in uh and<br>[18:05] some marketing blog posts as well. That<br>[18:06] was more of like a fun thing like you<br>[18:08] know do some marketing stuff like while<br>[18:10] I was waiting for other stuff to finish.<br>[18:11] So um that was an active thing. Cloud<br>[18:14] code project file was an active thing<br>[18:17] and um<br>[18:20] again for the real non-developer crowd<br>[18:22] that was out there for me I was always<br>[18:23] working on a feature branch um every<br>[18:26] time I was uh building a new feature<br>[18:29] because it's very easy as a vibe coder<br>[18:32] to just be like keep building this thing<br>[18:36] you know just keep building it and then<br>[18:37] all of a sudden it's just like oh my god<br>[18:39] that feature that you started to ask it<br>[18:41] to build is breaking the entire product.<br>[18:45] >> How do we roll how do we get ourselves<br>[18:46] out of this mess?<br>[18:47] >> Well, it's going to be difficult now<br>[18:49] because we've built everything into the<br>[18:50] to the main branch. So, it was very uh<br>[18:54] important to me to to build features uh<br>[18:57] on branches and that way there were a<br>[18:59] few times where I was building out<br>[19:00] features like a lot of the player design<br>[19:02] stuff where I just had to scrap it and<br>[19:04] be like, "No, I I got to start all over<br>[19:06] again." And um that was sort of my<br>[19:10] parachute out of that, I guess, for lack<br>[19:12] of a better phrase. Yeah, it's like a<br>[19:14] video game. Like, you know, when you're<br>[19:16] about to go fight another boss, you got<br>[19:17] to you got to do that save point so that<br>[19:20] if you die, you come back to that spot.<br>[19:22] And if you you get caught up sometimes,<br>[19:24] you're just in there, you're like,<br>[19:25] "Yeah." And add this feature. And while<br>[19:26] you're over there, you know, fix this<br>[19:27] other thing, too, and you get a little<br>[19:29] crazy and then that happens where you<br>[19:30] go, "This got so bad that I can't I<br>[19:33] can't undo this one little piece, and<br>[19:35] now I'm stuck here." Um, but I think<br>[19:37] about the way you're describing your<br>[19:39] relationship with it kind of reminds you<br>[19:40] of when I was freelancing and then I<br>[19:42] would hit that point where I kind of had<br>[19:45] more work than I had time and I wanted<br>[19:47] to hire somebody to do stuff and you<br>[19:50] realize that the problem with hiring<br>[19:52] somebody to do some work for you is that<br>[19:54] now you have to manage somebody which<br>[19:56] takes a lot of time and now every task<br>[19:57] you have to<br>[19:58] >> you have to describe it in a way so that<br>[20:00] it gets done correctly which takes a lot<br>[20:02] of time and stuff but you know That's<br>[20:06] kind of there's a lot of things I've<br>[20:07] been building with it recently where I<br>[20:08] think well I probably just wouldn't have<br>[20:09] done this before but now I can go to my<br>[20:13] subcontractor Claude code where normally<br>[20:15] I would have had to pay an agency and<br>[20:17] you still would have had the same things<br>[20:18] like that. I'm sure when you were<br>[20:19] building stuff you probably<br>[20:20] subcontracted and then you get stuff<br>[20:22] back and you go that's not what I<br>[20:23] described at all or did you even test<br>[20:25] this thing? Did you even look at this?<br>[20:27] >> Yeah. You know, it it's funny like<br>[20:29] that's kind of what I was getting at in<br>[20:30] the beginning because I I know there's a<br>[20:32] lot of And I totally get it, man. Like I<br>[20:34] totally get it where people are just<br>[20:35] like you're oh you you just vibe coded<br>[20:37] this. It's it's not worth it. It you<br>[20:40] know uh that what you did was not<br>[20:42] valuable or it wasn't the right way.<br>[20:44] Which reminds me of like when page<br>[20:45] builders first came out and people are<br>[20:47] like you're shortcutting it. You're<br>[20:49] you're doing it the wrong way if you<br>[20:50] don't do it this other hard way of<br>[20:52] cracking open uh Notepad++ back then,<br>[20:56] you know, to build something. Um, and I<br>[20:59] think about it just like you said, like<br>[21:01] there are so many times where I've paid<br>[21:03] so much money to somebody. I'm like, did<br>[21:05] you even pay attention to this? Like,<br>[21:07] did you see what I wrote? And this is<br>[21:10] what I got back. So, it's just kind of<br>[21:12] like, you know, this is just a it's a<br>[21:15] new way. It's a new new experience.<br>[21:17] >> Do you use the um this comment from Troy<br>[21:20] like reminded me of this. Do you use the<br>[21:21] planning mode? Um,<br>[21:24] >> I do. Sorry, I wasn't looking at the<br>[21:26] notes. I mean at the at the comments um<br>[21:29] I sorry to create a plan. Yes. Yes. So I<br>[21:31] do use the plan mode. Um but quite often<br>[21:35] I will also have a um<br>[21:39] for whatever reason uh chat GPT project<br>[21:42] that I use for just ideulating stuff. Um<br>[21:46] and I will ask a bunch of questions<br>[21:48] there and then validate the plan um with<br>[21:52] Claude Code uh with Cloud Code's own<br>[21:54] planning system. um just because it's<br>[21:56] two different contexts, right? I'm able<br>[21:58] to just talk over here in one window and<br>[22:00] and and have cloud code in the other.<br>[22:02] Plus, I don't I like the differentiating<br>[22:05] viewpoints from the two different LLMs.<br>[22:07] Um so, long way of saying yes.<br>[22:10] >> Yeah, I do every big feature. I do a<br>[22:12] similar thing where I have I use Gemini<br>[22:14] a lot because we get it just free with<br>[22:15] our work Google account and I will be in<br>[22:18] the Gemini in the browser and just kind<br>[22:20] of saying like this is what I'm thinking<br>[22:21] of doing, you know, what do you think or<br>[22:24] give me some stuff to read about it or<br>[22:25] something. Yeah. And then go back to the<br>[22:28] plan mode like tell me what you're going<br>[22:29] to do before you do it. Like I'm a I'm a<br>[22:31] huge fan of that. I think it Yeah, I<br>[22:33] think it saves a lot of time.<br>[22:35] >> All right, back to the features of this.<br>[22:38] Um<br>[22:38] >> yeah, let's see your blocks because I<br>[22:40] have opinions. Yes, I'm sure you do. Uh,<br>[22:42] also one of the hardest parts uh to do.<br>[22:44] No surprise. Uh, I thought I had a test<br>[22:47] up before, but I'll uh let's put this<br>[22:49] here. All right, so slashpodloom<br>[22:54] um block and uh this was the first point<br>[22:58] of contention right here in my own brain<br>[23:00] was where do I put uh the options and<br>[23:04] where does the user interact with? Is it<br>[23:07] in the block uh or is it in the right<br>[23:09] hand side uh in the block options or<br>[23:12] settings panel? I don't know what the<br>[23:14] official term is. I went with just<br>[23:17] placeholder text in the in the in the<br>[23:21] temporary spot while somebody picks the<br>[23:25] podcast on the right hand side. So for<br>[23:28] example, if I pick the WP Minute Plus<br>[23:30] from my list, I can uh now this is<br>[23:34] specifically for transistor API. This is<br>[23:36] if you have your transistor API<br>[23:38] connected to this and you want to<br>[23:39] interact with a transistor show, not an<br>[23:41] RSS feed, which we can talk about later.<br>[23:44] Um, and then I would select which<br>[23:46] episode I want to display. Um, or I can<br>[23:50] punch it. I think I can punch into this.<br>[23:52] Yeah, specific episode, latest episode,<br>[23:54] or Transistors playlist, and then player<br>[23:56] theme, light and dark. This is all<br>[23:58] served up through Transistors API. Um,<br>[24:01] they document their API really well.<br>[24:02] They probably have one of the best like<br>[24:04] public facing APIs for podcast hosts<br>[24:06] that I found. And um I was basically<br>[24:09] saying, "Hey, whatever you have,<br>[24:10] Transistor, I want to kind of turn this<br>[24:12] into a guey, a front-end guey. Somebody<br>[24:14] can just select these things." And<br>[24:16] that's how it started. So, we'll select<br>[24:18] the show. I'm just going to pick this<br>[24:20] one. And these are just settings being<br>[24:22] pulled in right from Transistor. You can<br>[24:25] log into your Transistor account and<br>[24:27] change the way the player looks. Um it's<br>[24:30] all in transistor side and later on<br>[24:35] which is absolutely helps my freaking<br>[24:37] workflow so much because at the WP<br>[24:39] minute um when Eric edits and uploads a<br>[24:42] show he's putting the show everything<br>[24:44] goes into transistor first. It's our<br>[24:46] first point of the publishing workflow.<br>[24:48] The show notes are already there. So, we<br>[24:50] can automatically paste in the show<br>[24:53] notes from uh Transistor and you can put<br>[24:57] them right, you know, into your<br>[24:58] WordPress blog post. A lot of the times<br>[24:59] that's what we're doing. We're<br>[25:00] duplicating the show notes that are in<br>[25:02] the podcast episode. We're putting them<br>[25:03] on the WP Minute blog post. So, I added<br>[25:06] that feature in um to pull that<br>[25:09] uh content in and<br>[25:12] uh that way you have the show notes,<br>[25:14] right? So, that that was the feature.<br>[25:16] Um, so that's the first demo of like<br>[25:18] displaying a transistor episode, pulling<br>[25:20] in the show notes and and publishing<br>[25:22] that to your site. Your thoughts on the<br>[25:24] Gutenberg experience so far.<br>[25:27] >> Um, yeah. So, do me a favor. Click to<br>[25:31] get rid of the little sidebar on the<br>[25:33] right, the little public like you've<br>[25:34] published. Yeah. Now, click on your<br>[25:36] block. Just click on that.<br>[25:37] >> Oh, yes. This I can't do.<br>[25:39] >> Yes. I cannot click on your blocks. No,<br>[25:42] I cannot click on I cannot click. If<br>[25:43] you're using transistor, you can't click<br>[25:45] on the block. If you're using RSS feed,<br>[25:47] you can click on the block. That is<br>[25:49] something that I have in a bugs.md file,<br>[25:52] which I haven't tackled yet.<br>[25:54] >> Um, okay. That annoys you, right?<br>[25:56] >> On your GitHub. I don't know if you do<br>[25:58] that yet. You can open an issue on your<br>[26:00] GitHub and then you can tell Claude,<br>[26:01] hey, go fix this issue or something.<br>[26:03] >> Oh, okay.<br>[26:04] >> Um, or you can or there's also the<br>[26:07] C-pilot will try to make PRs. haven't<br>[26:09] messed around with or seen much success<br>[26:10] with Copilot. Um, so that that was my<br>[26:13] first thing. The other thing is open up<br>[26:14] the little sidebar with the settings.<br>[26:16] What I would have done,<br>[26:18] I guess the nice thing is if because<br>[26:21] it's React, you know, when you first<br>[26:23] load it, you get the placeholder, right?<br>[26:25] And then it says select source. Um, you<br>[26:28] can have that same field in the<br>[26:30] placeholder, too. That's very common.<br>[26:31] So, I enter the block, I'm not<br>[26:33] immediately wondering where to go. It's<br>[26:36] right there. It's, you know, welcome to<br>[26:37] my block. select your source to keep<br>[26:39] moving. Um, we do that a lot in<br>[26:41] WooCommerce where it's like pick your<br>[26:43] product, pick your category, you select<br>[26:45] it, and then you go forward.<br>[26:46] >> So, just for those watching that, what<br>[26:48] Ryan's referencing is this right here.<br>[26:50] Please select source from the sidebar.<br>[26:52] Now, would you replicate that in both<br>[26:54] places<br>[26:55] >> probably? Yeah, I would probably just<br>[26:57] put the same field there. You know, I'd<br>[27:00] put the that field. And then the other<br>[27:03] thing I think that confused me or I<br>[27:05] didn't learn is that once you've<br>[27:07] selected a source<br>[27:09] >> um you can pick an episode.<br>[27:12] >> Mhm.<br>[27:13] >> But that field is above the display mode<br>[27:17] field where I can say actually I don't<br>[27:18] want a specific episode. I want the<br>[27:20] latest episode and then it goes away.<br>[27:22] >> So like it's like a reverse of the order<br>[27:24] that I might think about it. First I<br>[27:26] might want to decide do I want a<br>[27:27] specific episode or the latest and then<br>[27:31] later once I've picked a specific<br>[27:32] episode then I would want to below that<br>[27:34] pick which episode it is if that makes<br>[27:36] sense versus like<br>[27:37] >> hiding a field beforehand that was that<br>[27:40] you passed.<br>[27:41] >> Yeah. Yeah. Yeah. No, that's a that's a<br>[27:44] that's a good point. Um it is something<br>[27:46] that I wasn't sure um<br>[27:50] yeah it's something that I've I've<br>[27:52] thought about like I've definitely<br>[27:53] thought about this a lot of like how how<br>[27:55] that person walks through that um like<br>[27:58] even the playlist<br>[28:01] I I thought about this as well because<br>[28:04] this is something that is again served<br>[28:07] up by transistors API um and just like<br>[28:11] you can customize the player at<br>[28:13] transistor like if you wanted to change<br>[28:14] this player there. Um, you would have to<br>[28:17] go to your transistor account and modify<br>[28:18] that, right? Change the look and feel.<br>[28:20] Same thing with their playlist brought<br>[28:22] to you through their API and you know<br>[28:25] it's an iframe or whatever. But<br>[28:26] >> yeah, and I put my own, you know, field<br>[28:29] in here because at first it was just<br>[28:31] serving up the default size in<br>[28:33] transistor whatever they passed through.<br>[28:35] I think it might have been 500 pixels. I<br>[28:37] I can't remember what it was. And I was<br>[28:39] like, well god, now what happens if<br>[28:41] somebody wants to change this? I have to<br>[28:42] tell them to go to transistor to do<br>[28:44] that. So, I was like, "Yeah, I'll just<br>[28:45] put the field in here where they can put<br>[28:47] in their own height." Um,<br>[28:51] so yeah. Um, the point is is like I<br>[28:55] agree with what you're saying. Yeah.<br>[28:58] Otherwise, yeah, I mean it worked really<br>[29:00] well. Um, it made sense. We we had<br>[29:03] thought about so I have a podcast on<br>[29:05] transistor when Aruba and I had a<br>[29:07] podcast and we<br>[29:08] >> we thought about how to get it onto<br>[29:11] WordPress because we just used you so<br>[29:13] you don't use Transistor's like default<br>[29:15] web page. You just use it for the the<br>[29:17] host the feed and you don't use their<br>[29:19] website, right? Like you you manually<br>[29:22] Yeah, that's what we were kind of<br>[29:23] thinking about. And that was that right<br>[29:24] there is another decision you have to<br>[29:26] think of which is like do I want the<br>[29:27] person to have to manually go make a<br>[29:29] post for every episode? Do I want it to<br>[29:32] automatically make a new post every time<br>[29:33] I publish a new episode? Is that<br>[29:35] something somebody might expect to<br>[29:37] happen or want to happen? Um, if I<br>[29:40] change the description in the ep in<br>[29:42] transistor later on, will it change this<br>[29:44] blog post where I inserted the<br>[29:46] description or do I have to go back and<br>[29:48] remember to change it there? Um, all<br>[29:50] these<br>[29:51] >> that's why like software development,<br>[29:53] it's like all these little edge keys<br>[29:54] where you go, oh wait, what happens if I<br>[29:55] tweak this? Does it remember here? Does<br>[29:57] it do this? Does it do that? So,<br>[29:59] >> a lot of decisions. I think one of the<br>[30:01] core<br>[30:03] so I know there's a lot of top a lot of<br>[30:05] stuff in this topic that we're trying to<br>[30:06] cram in within the hour. At least I'm<br>[30:07] trying to cram into the hour. Brian<br>[30:09] Brian wasn't privy to any of this. Uh he<br>[30:12] just hopped on with me. But I think like<br>[30:14] the business model is<br>[30:19] not for me anyway. It won't be like a<br>[30:22] paid pro plug-in or anything like that.<br>[30:25] it will be about<br>[30:27] >> um<br>[30:29] getting help setting like here's the<br>[30:31] thought. The thought is can I position<br>[30:34] this to say transistor is the best place<br>[30:36] to host a podcast in my opinion. Um and<br>[30:40] if you don't want to use transistor uh<br>[30:42] and you want to use an RSS feed uh we'll<br>[30:44] show that in a minute<br>[30:46] then ultimately what I'm saying is the<br>[30:48] best place to have your podcast website<br>[30:52] is WordPress.<br>[30:53] >> Yeah. It's not about can I make like at<br>[30:58] my old job like I don't want to compete<br>[30:59] against seriously simple podcast plugin<br>[31:01] because I don't want to use WordPress as<br>[31:03] the place to host the podcast and I<br>[31:06] don't want to build the hosting features<br>[31:09] inside of WordPress. What I'm saying is<br>[31:12] these this source over here Transistor<br>[31:14] and let's say RSS.com and Buzz Sprout<br>[31:16] like those are the top three in my<br>[31:18] opinion. Those are the best three places<br>[31:19] to host.<br>[31:21] Let me give you a player that works well<br>[31:22] with those. And by the way, if you need<br>[31:24] help setting this up on WordPress, I can<br>[31:26] I can do that for you or a team can do<br>[31:29] that for you. And that's the business<br>[31:30] model for the future. So that's how I<br>[31:33] framed all of this decision-m if that<br>[31:35] makes sense.<br>[31:37] >> Yeah. I mean, it's an open question. I<br>[31:39] use the<br>[31:40] >> I think I use the Casto seriously simple<br>[31:43] one for my web masters podcast and I<br>[31:46] >> it was not I mean I could have paid them<br>[31:48] for some I guess for the hosting. I'm<br>[31:50] guessing they offer that, but I decided<br>[31:52] to use Cloudflare because they have a<br>[31:55] they're like R2 buckets that are<br>[31:57] basically like free file hosting for<br>[31:59] media files. So, I just use that. But,<br>[32:00] it was like even this this last week, I<br>[32:03] got an email that was like, "Hey, you<br>[32:04] know, your podcast feed doesn't work."<br>[32:06] So, I had to go in there and I had to<br>[32:07] figure out what happened. And it was<br>[32:08] because I had migrated to a new hosting<br>[32:10] company and I forgot to redo all the<br>[32:12] configuration files and all that stuff.<br>[32:14] So, all that to say, the host I I would<br>[32:18] not want to be in the business of<br>[32:19] dealing with hosting podcast files. It<br>[32:21] feels like it should be really easy. Um,<br>[32:24] but it's not. And there's a lot of other<br>[32:25] things that go on top of it, too. Like,<br>[32:27] well, you want to track how many<br>[32:28] downloads of the episode there were or<br>[32:30] how many listens. Well, that's that's a<br>[32:32] whole another thing. That's another<br>[32:33] layer that has to be dealt with at the<br>[32:34] hosting level, all these sorts of<br>[32:35] things. So, I think it's pretty smart to<br>[32:37] offer that also because I think<br>[32:40] Transistors designs are not that great.<br>[32:42] Um, I mean, they're great for starting<br>[32:43] off, but not if you want really custom<br>[32:46] uh a really custom podcast website. So,<br>[32:49] I mean, I think it makes sense. Um, I<br>[32:52] don't know how many people there are in<br>[32:53] the world that need that service. But<br>[32:56] yeah, we'll we'll we'll we'll see. We'll<br>[32:58] find out. We'll we'll we'll test it out<br>[32:59] and see what happens. Troy asked, "Did<br>[33:01] you build this from scratch or is this a<br>[33:02] variation of the embed block?" Um, I<br>[33:05] just asked Claude Code to build it. I<br>[33:07] didn't um I didn't reference anything<br>[33:10] and it's actually a good sort of segue<br>[33:13] to saying like this you know putting in<br>[33:17] transistor I just did it again I just<br>[33:19] tried to click on the blockh<br>[33:22] so this uh was<br>[33:25] the super like quick concept right this<br>[33:28] was this was the easy like this was the<br>[33:30] easiest part because in the beginning um<br>[33:34] it was just a settings page with an API<br>[33:36] field. That was it. And then I didn't<br>[33:38] really have to do anything else. This<br>[33:40] was the thing that took me like I don't<br>[33:41] know a week playing around with it and I<br>[33:44] got it to this nice like stable version.<br>[33:46] Everything was great. And it was then<br>[33:48] when I started to think like the typical<br>[33:52] foolish product business person that I<br>[33:54] am. I was like, well, what if we did<br>[33:57] more?<br>[33:59] What if we supported just straight up<br>[34:02] RSS feeds? And it really was because I<br>[34:07] started to think, well, maybe I'll<br>[34:08] launch this as transistor.fm only. And<br>[34:11] then<br>[34:12] the, you know, the top three that I<br>[34:13] like, Transistor, Buzzsprout, and<br>[34:15] RSS.com.<br>[34:17] Um, I'll integrate those API field,<br>[34:20] those APIs later. And, uh, so I I<br>[34:23] actually know the guys that started RSS,<br>[34:25] emailed them, said, "Hey, look, I made<br>[34:27] this for Transistor. I'd like to, you<br>[34:29] know, where's your API?" because I log I<br>[34:31] have a free account with them that they<br>[34:32] gave me and I was like let me you know<br>[34:34] do the same thing and so Ben or no<br>[34:36] Alberto uh emailed me back and he was<br>[34:38] just like we have an API but it's not<br>[34:40] for the same thing as transistories he's<br>[34:43] like why don't you support just the<br>[34:44] straight RSS feed because then if you<br>[34:46] did that you could support any podcast<br>[34:49] host and uh podcasting 2.0 fields which<br>[34:52] we'll talk about in a moment so I was<br>[34:54] like do I really want to do that? I<br>[34:56] mean, Brian, you know, I have been like<br>[34:58] vibe coding RSS things for a while and<br>[35:01] parsing RSS sucks,<br>[35:04] right? And I hear this from a lot of<br>[35:06] like real<br>[35:08] >> real developers in the podcast world and<br>[35:10] in WordPress world like parsing RSS is<br>[35:13] is miserable and it's inefficient.<br>[35:15] There's a lot of things that are really<br>[35:16] difficult about it. So, I was like, I<br>[35:17] definitely don't want to do that or I I<br>[35:20] started to think like, do I really want<br>[35:21] to do that? And I ended up so I ended up<br>[35:23] building it and that's where supporting<br>[35:26] the RSS feeds<br>[35:28] became just a hu a whole beast onto<br>[35:32] itself and that was the that was the<br>[35:33] most challenging thing and that's the<br>[35:34] one that took you know the most time um<br>[35:38] throughout all of this stuff.<br>[35:41] So let me go into the settings<br>[35:45] and a lot of it is like the feature set.<br>[35:48] So, the easiest thing is transistor just<br>[35:50] tells you here's what the player looks<br>[35:52] like. Take it or leave it. Light mode,<br>[35:54] dark mode,<br>[35:55] >> pick a color, or pick two colors,<br>[35:57] whatever their color swatch is, and<br>[35:59] that's it. And uh those are the choices<br>[36:02] that you have.<br>[36:04] I went into it going,<br>[36:06] well, how how do how do I build I'm just<br>[36:09] trying to stretch this out so we see<br>[36:10] this a little bit better. How do I build<br>[36:12] something that uh allows the user to<br>[36:16] have some control but also try to keep<br>[36:19] it as lightweight as possible? So I<br>[36:22] don't want to build a heavy JavaScript<br>[36:25] player. I don't want tons of like<br>[36:28] features in it, but I also want it to be<br>[36:32] uh valuable. So on the RSS tab where you<br>[36:37] enable RSS feeds, you can put in your<br>[36:39] RSS feed and it goes and it validates it<br>[36:42] and then you can customize the look and<br>[36:46] feel of the podcast player. This section<br>[36:51] was a pain in the ass,<br>[36:55] right? So let me walk you through my<br>[36:58] thought process when I started. It's<br>[37:02] better if I open up another page and<br>[37:03] just show you<br>[37:07] pod news.<br>[37:10] So, this is the podcast player if you're<br>[37:12] using RSS, right? And you have all the<br>[37:15] features enabled, let's say. So, this is<br>[37:18] a podcast pod news. It didn't start this<br>[37:20] way. It didn't look like this at the<br>[37:22] very beginning, but it was it it wasn't<br>[37:23] very far off. In the very beginning, I<br>[37:26] was just using the<br>[37:28] uh HTML 5 audio element.<br>[37:31] like the sort of like the cheap looking<br>[37:33] one that uh that just shows in your in<br>[37:35] your browser or uh WordPress media<br>[37:38] gallery, I guess. And I eventually<br>[37:40] transitioned to building out a<br>[37:43] JavaScript<br>[37:44] a vanilla JavaScript player that you see<br>[37:47] here with the with the speed controls<br>[37:49] and the rewind and fast forward. Mhm.<br>[37:53] This was a pain in the ass.<br>[37:56] I tried multiple like open-source<br>[37:58] JavaScript<br>[38:01] libraries that are are made for audio<br>[38:04] playing and it was just an absolute<br>[38:06] nightmare.<br>[38:07] >> Yeah.<br>[38:08] >> Um to like build all this stuff and then<br>[38:10] just to get this UI the way it looks now<br>[38:13] to just get it to this was also very<br>[38:17] difficult<br>[38:18] uh you know vibe coding it and making<br>[38:20] those requests. So that was a particular<br>[38:23] challenge but I knew I wanted to go<br>[38:24] lightweight. So, a user can come in and<br>[38:28] enable or disable the elements they want<br>[38:31] to display or not. So, most people<br>[38:34] aren't going to have podcasting 2.0<br>[38:36] features if they're if they're not savvy<br>[38:39] to it.<br>[38:41] And my god, I hope this works if I<br>[38:43] refresh this. Yeah. So, those so those<br>[38:45] tabs go away at the bottom. But you can<br>[38:48] also hide description,<br>[38:52] pretty much all these other elements.<br>[38:53] But if I just do that one, save that.<br>[38:57] Like if you wanted just a lightweight<br>[38:59] player, you could disable those elements<br>[39:03] and,<br>[39:04] you know, have your your podcast<br>[39:07] um, you know, display like this.<br>[39:10] So that was like phase one, if you can<br>[39:13] envision that. And then it was, "All<br>[39:15] right, Matt, how do you allow them to<br>[39:17] change the look and feel like the colors<br>[39:19] and stuff?"<br>[39:21] So then it was like, well, let me build<br>[39:23] out a a bunch of color palettes<br>[39:26] that are going to allow the user to<br>[39:30] change color palettes. And then the<br>[39:33] freaking continuous voice in my head was<br>[39:35] like, what if they want to customize it<br>[39:38] and they're not a developer? So it<br>[39:41] started going down the path of like, I'm<br>[39:43] going to give you all of these features<br>[39:45] to custom all all of those components<br>[39:47] you can customize. So, the title, the<br>[39:49] date. So, you can come in and change all<br>[39:51] the colors, all the fonts, sizes, and<br>[39:53] all that stuff.<br>[39:55] And<br>[39:57] this part was the part that was just<br>[39:59] like<br>[40:01] taking me down a huge rabbit hole. Um,<br>[40:05] but it works now and I feel like it<br>[40:07] works, you know, pretty well from a<br>[40:09] customization feature. UI and layout<br>[40:12] back here might not be the best. Um, but<br>[40:16] I am happy with being able to customize<br>[40:17] an RSS player. And I was constantly<br>[40:23] asking Claude,<br>[40:25] aside from putting it in the projects<br>[40:26] file, to understand that I want<br>[40:30] lightweight and efficiency<br>[40:34] paramount to anything else.<br>[40:36] Um,<br>[40:38] so yeah, that's a long a long entry<br>[40:41] point to how I got to building out the<br>[40:43] RSS side of it.<br>[40:46] I have a few thoughts. Let me know. I<br>[40:47] have like really crazy background noise.<br>[40:49] Let me know if it's too distracting. Um,<br>[40:53] one thing I would have maybe done if I<br>[40:55] were building this from scratch is I<br>[40:57] would have stolen somebody else's open-<br>[40:59] source code and started there. So<br>[41:04] >> you can open if you go if you<br>[41:06] >> borrowed you like to say.<br>[41:08] >> Yeah. Well, that's the I mean that's why<br>[41:09] it exists. It's open source, you know.<br>[41:11] >> If you go to my website and um like in a<br>[41:15] new tab or I can show you I can show you<br>[41:17] the back. Actually, can I share? I can<br>[41:19] show you the back end too. It's pretty<br>[41:20] >> Yeah. Yeah. Yeah.<br>[41:21] >> And scroll down.<br>[41:22] >> Oh,<br>[41:23] >> over here.<br>[41:24] >> I'm wondering if I can share a tab.<br>[41:29] >> Are you pull You're pulling up your<br>[41:30] screen?<br>[41:31] >> I think so. So, let's find out. Screen<br>[41:33] sharing is easy. It's going to like Can<br>[41:35] I pull up in just a<br>[41:36] >> I have to stop my sharing. I'll stop<br>[41:38] mine and then I think you can do it.<br>[41:40] >> Okay.<br>[41:40] >> Let me just check to the comments. Any<br>[41:41] comments? Nope.<br>[41:43] >> On the stage.<br>[41:46] >> This is a block on my homepage. This is<br>[41:49] from Jetack. This is a Jetack block. And<br>[41:51] it's literally just a podcast player<br>[41:54] block. I don't actually don't know what<br>[41:55] it looks like when you first enter it.<br>[41:56] Let's Let's see. Podcast player. So,<br>[42:01] this is essentially what you built,<br>[42:02] right? Like an RSS feed URL.<br>[42:05] >> You put it in and it can show this<br>[42:07] playlist view. It's not as good. I don't<br>[42:09] know if it lets you do single episodes.<br>[42:11] I guess you can. You can do one item and<br>[42:13] just show the latest. It's not It<br>[42:15] doesn't have quite as many options, but<br>[42:17] has a few settings. The one thing that's<br>[42:18] nice is it lets you do the uh colors<br>[42:21] from your theme. So, like whatever<br>[42:22] colors come in your theme and that sort<br>[42:23] of thing. But in the world of WordPress,<br>[42:26] what I would have maybe done is gone to<br>[42:28] their public code, pass that to Claude<br>[42:31] and said, "Hey, uh, what do you think<br>[42:32] about this one that already exists? Is<br>[42:34] there anything we can take from this?"<br>[42:35] Or, yeah, you know, the UI. I actually<br>[42:37] think your UI maybe is a little cleaner.<br>[42:40] >> Um, I don't know if this is the same on<br>[42:42] the on the front end. Let's see.<br>[42:47] I thought it looked a little better on<br>[42:48] the front end. No, it looks the same.<br>[42:50] Yeah, actually I think your UI is a<br>[42:52] little nicer, but um yeah, I mean that's<br>[42:54] one approach. It's kind of the weird<br>[42:55] thing of uh of WordPress and open source<br>[42:59] is that in the past people used to use<br>[43:01] other people's code a lot more often. I<br>[43:03] think like it was pretty normal to put<br>[43:05] your code out there, open source, go<br>[43:07] read it, use it, share it, that sort of<br>[43:09] thing. And it feels like with VIP<br>[43:10] coding, we've lost that a little bit,<br>[43:12] that ability to just go and steal<br>[43:14] someone else's repo and and fork it and<br>[43:17] and do stuff with it. Um, but I I know<br>[43:19] that's just one one thought I had of<br>[43:22] like one place where you can go to find<br>[43:23] some of these things if you're vibe<br>[43:25] coding is did somebody already do it? Is<br>[43:27] it open source? Can I use its code as<br>[43:29] context?<br>[43:30] >> Yeah. Yeah. I mean, I was prompting it<br>[43:32] for<br>[43:34] like JavaScript libraries that are made<br>[43:36] for like audio playing<br>[43:39] >> and uh I think the one that I there's a<br>[43:41] bunch<br>[43:42] >> Yeah. that do all kinds of crazy things,<br>[43:44] but there's one that's player.js.<br>[43:46] Ply.js.<br>[43:47] JS.<br>[43:48] >> Mhm.<br>[43:49] >> And that's one that like I spent so much<br>[43:52] time<br>[43:53] >> trying to get it.<br>[43:55] >> Uh technically it worked. It was just<br>[43:57] like the UI of it was just impossible to<br>[44:01] like move things around. Like I I just<br>[44:03] couldn't do it.<br>[44:04] >> And Claude literally couldn't do it.<br>[44:05] Like it kept failing. And then that's<br>[44:07] actually one of the tests that I went to<br>[44:09] to to anti or Gemini in in<br>[44:12] anti-gravity's interface because every I<br>[44:15] kept reading all these things like<br>[44:16] there's amazing UI stuff and I'm like<br>[44:17] taking screenshots. I there was a moment<br>[44:19] I I wasted so much hours on that part of<br>[44:21] it.<br>[44:22] >> Yeah.<br>[44:23] >> Um because there was there was even a<br>[44:24] point where like that was failing<br>[44:25] miserably and then I went to um what is<br>[44:30] it? Uh is it uh what's Versel's AI? Oh,<br>[44:35] V.<br>[44:36] >> VO. Yeah, VO.<br>[44:37] >> Cuz I was like some I doing a bunch of<br>[44:40] research on that and people were like,<br>[44:40] "Oh, it does so great." Like even uh<br>[44:42] Justin from Transistor, the founder or<br>[44:45] co-founder was like, "Oh, VO works so<br>[44:47] great for like design." So, I went to I<br>[44:49] went to VO and I was like trying to get<br>[44:51] it to make me a podcast player and it<br>[44:53] was just failing miserably. And at some<br>[44:56] point, I'm just like, I'm not asking for<br>[44:58] like I I thought these systems were<br>[45:01] worth trillions of dollars. It's like I<br>[45:02] I got four buttons I need you to put in<br>[45:05] a line for me, right? A play button, a<br>[45:07] rewind, fast forward, and speed. Like,<br>[45:10] come on. You know, and it it couldn't<br>[45:12] get it. Uh, you know, whatever. Beggars<br>[45:14] can't be choosers. And then finally, I<br>[45:16] just went back to Claude and I'm like,<br>[45:17] no more. Yeah, I went back to Claude and<br>[45:20] I was like, um,<br>[45:23] well, I was moving forward with the HTML<br>[45:24] 5 audio element and then I went to like<br>[45:27] mobile testing and it was god awful<br>[45:30] >> on mobile. like the experience of the of<br>[45:33] the element was terrible. So I was like<br>[45:35] I this is not good. So I I started from<br>[45:38] scratch and when it started from scratch<br>[45:39] with just like vanillajs,<br>[45:42] you know, it came to something that was<br>[45:44] a little bit more workable for me.<br>[45:48] >> Yeah. Um I've seen some examples<br>[45:50] recently of like fivecoded landing pages<br>[45:52] and things like that. And I think number<br>[45:54] one like responsive design always ends<br>[45:56] up being the the first issue you see.<br>[45:58] you can tell immediately that they<br>[45:59] didn't even look at it on a computer or<br>[46:02] anything like that. And it's just um I<br>[46:05] don't know, there's just a huge long<br>[46:06] list of items that the better developer<br>[46:11] really does go through. And I think<br>[46:12] people maybe should they'll start like<br>[46:14] appreciating a little bit more being<br>[46:16] like, oh, when you actually get a good<br>[46:18] developer who knows to check for all<br>[46:20] these different situations and check<br>[46:22] these different use cases and all that<br>[46:23] sort of stuff, like there actually is a<br>[46:25] lot to it. And I I still think like<br>[46:28] as long as these models keep improving<br>[46:30] like those specific things will get<br>[46:34] better. I think like we will find that<br>[46:37] it's not like it's impossible for them<br>[46:38] to do it. It's just that nobody sat down<br>[46:40] and said here's all the things you need<br>[46:41] to do as part of your code uh generation<br>[46:44] and stuff. So, I think we'll get there<br>[46:46] eventually, but right now, yeah, you<br>[46:47] still need to like do all the QA that a<br>[46:50] normal human would do, and that honestly<br>[46:52] just is probably tedious work that's<br>[46:55] kind of always going to be there, you<br>[46:57] know. Yeah. Um,<br>[47:00] so when I I sent the email to the<br>[47:02] founder of RSS.com<br>[47:04] and uh when he was like, "Hey, you<br>[47:06] should, you know, build it for RSS."<br>[47:09] Um it's it's you know just like<br>[47:12] WordPress is important to me like why<br>[47:13] I've been covering it forever like<br>[47:15] podcasting is important to me the RSS<br>[47:17] feed is important you know I think to me<br>[47:19] from like yes it's a crude old ugly<br>[47:22] piece of technology but there's a lot of<br>[47:26] like freedom and and what you can build<br>[47:28] on on top of it. I think as you know as<br>[47:30] you said you were building an RSS reader<br>[47:32] and it's still like one of those like<br>[47:34] staple fundamental pieces of technology<br>[47:37] in my opinion that you know you can<br>[47:39] still build great things with it. It's<br>[47:41] just maybe not the maybe not the easiest<br>[47:44] but one of the things in podcasting 2.0<br>[47:48] are these different you know what<br>[47:49] namespace tags and Apple has famously<br>[47:52] started to adopt a lot of them<br>[47:53] transcripts at the earlier start of the<br>[47:56] year um they just pulled in the<br>[47:58] podcasting 2.0 you know, chapters tag<br>[48:00] more officially. And these tags are just<br>[48:03] like it's just data inside the RSS feed.<br>[48:06] There's nothing magical, you know, about<br>[48:08] them. There's nothing proprietary about<br>[48:10] them. If you use the view feature um of<br>[48:14] the RSS feed, you can look at all the<br>[48:16] different RSS feeds that you have. It's<br>[48:18] just data that's in that RSS feed. And<br>[48:20] then how we as podcast player<br>[48:24] developers, see what I did there, and<br>[48:26] podcast hosting companies um and podcast<br>[48:30] mobile apps like Overcast and and<br>[48:32] Pocketcast owned by Automatic um<br>[48:35] choose to leverage how we display that<br>[48:37] information. It's like having<br>[48:38] information in your database and how do<br>[48:39] you display it on the front end is<br>[48:41] totally up to you. We're just giving it<br>[48:42] to you in the database. You can make it<br>[48:43] look good. So<br>[48:46] when you have a podcast 2.0 0 enabled<br>[48:50] podcast like Pod News uh does, you can<br>[48:54] use the person tag. So when you<br>[48:56] interview somebody, you can upload their<br>[48:59] uh picture and their uh a link to their<br>[49:03] uh website or whatever. So like in this<br>[49:05] episode of Pod News, they had Dan<br>[49:07] Meisner on and it's automatically going<br>[49:09] to link out to his website, We Are<br>[49:11] Bumper. Um and then of course the two<br>[49:13] hosts of the show. Um, the chapters tag<br>[49:17] is pulled in and I display the chapter<br>[49:20] artwork. Um, so as a podcaster, you<br>[49:24] choose to make your your chapters and<br>[49:25] you can associate an image with them. So<br>[49:27] if I wanted to jump to this marker, I<br>[49:30] can just click that. It'll start playing<br>[49:33] at that part and then display the um<br>[49:36] chapter art there. And then transcripts<br>[49:40] um delivered right in the RSS feed. This<br>[49:43] was very this was tricky to build.<br>[49:45] There's a nagging thing called corores<br>[49:49] which I learned about deeply uh when I<br>[49:51] was building all those other like<br>[49:52] podcast tools if you remember.<br>[49:54] >> Um so I had to pass for cores.<br>[49:58] So the best way workaround for it that I<br>[50:01] could find is and for like a speed and<br>[50:03] performance thing is to not load the<br>[50:05] transcript by default, but to have the<br>[50:08] user click the transcript button to get<br>[50:11] the transcript and then have those<br>[50:13] clickable points where as you read the<br>[50:15] transcript, you can click that and<br>[50:17] actually hear it play on the timeline.<br>[50:20] Um,<br>[50:22] you know, and I and I think that anyone<br>[50:24] who's like pushing into the podcast 2.0<br>[50:27] scene um will appreciate these types of<br>[50:31] features. And of course, the funding<br>[50:34] tag, which is if they click that, it'll<br>[50:37] go to Pod Newsweekly um<br>[50:40] Buzzsprout/Patreon<br>[50:42] page um to donate. And those are all<br>[50:46] elements that you can uh turn on or off<br>[50:49] um or enable in your podcast host. But<br>[50:51] that's what got me down the the whole<br>[50:53] path of uh the RSS player.<br>[50:58] Um and then mixed in with just a ton of<br>[51:01] back and forth on caching<br>[51:04] >> and optimizing the code which is<br>[51:07] something that I have<br>[51:09] uh documented to<br>[51:12] great detail uh and was also something<br>[51:15] that was very challenging to to vibe<br>[51:18] code. you know, just as challenging as<br>[51:20] the uh the player UI stuff. That was<br>[51:23] probably the second most challenging.<br>[51:25] Like, it's going to download the<br>[51:28] podcast cover art to the media library.<br>[51:31] So, we're not always requesting that<br>[51:33] feature.<br>[51:34] >> Oh, okay.<br>[51:35] >> Um whereas these chapter images are<br>[51:39] pulled in through uh the RSS feed.<br>[51:44] >> Okay.<br>[51:45] So that means and I discovered this<br>[51:47] thanks to Amazon or excuse me AW uh<br>[51:50] Cloudflare going down the other day or<br>[51:52] last week whatever it was where all the<br>[51:55] feeds were broken<br>[51:57] and I was like holy this is a great<br>[52:00] way for me to learn that well what<br>[52:03] happens<br>[52:04] when a feed goes down. Yeah. Uh uh you<br>[52:08] know so if you have chapters and you<br>[52:10] have chapter art you'll lose your<br>[52:12] chapter art. it'll show a broken image<br>[52:14] while that feed is down.<br>[52:17] Uh, but it will save the you do have the<br>[52:20] option to save the cover art of the<br>[52:23] podcast um to the media library. That<br>[52:26] way that at least like your default<br>[52:28] image won't be broken.<br>[52:31] So that's a brain dump of of all that to<br>[52:34] you. I'm curious about the podcasting<br>[52:37] 2.0 no features cuz what's funny is last<br>[52:39] week I did a accessibility meet up with<br>[52:40] Amber Hines and we went through my<br>[52:42] podcast uh website and went through a<br>[52:45] bunch of stuff about making sure<br>[52:46] everything I did on there was accessible<br>[52:48] and as you're talking about some of<br>[52:51] these features I'm like reminded of that<br>[52:53] and it made me wonder is there a way in<br>[52:55] the same way that I can check my site<br>[52:56] for accessibility can I check my podcast<br>[52:59] feed for RSS 2.0 know because I have<br>[53:02] speakers that I save on my site as like<br>[53:06] a taxonomy. Um, how do I know if those<br>[53:10] are getting pulled in in the correct<br>[53:11] fields or how do I know if my chapters<br>[53:13] are even like I don't even think I put<br>[53:15] chapters<br>[53:17] in a field at all on my website. I<br>[53:19] wonder if there's a way to check this<br>[53:21] stuff.<br>[53:22] >> Uh, well, your host definitely has to<br>[53:23] support it<br>[53:24] >> first and foremost because they're the<br>[53:26] one Well, actually, I guess you said<br>[53:28] you're doing your own, right? Um,<br>[53:30] >> well, I'm using Seriously Simple<br>[53:31] Podcasting for the feed and everything.<br>[53:33] Yeah, I just put the files on my own<br>[53:35] Cloudflare, but I use that that plugin<br>[53:37] and I think the feed comes from my<br>[53:39] WordPress site and I think I fill out<br>[53:41] >> Yeah. Every post is an episode.<br>[53:44] >> Yeah. So, you you<br>[53:46] uh I I mean, they didn't support it when<br>[53:48] I worked there. It was something that I<br>[53:50] was trying to advocate for. Um, and I<br>[53:53] don't know if you can customize the RSS<br>[53:56] feed with um<br>[53:58] with Seriously Simple Podcasting plugin<br>[54:00] unless they made changes to that.<br>[54:02] >> Um, but the tag itself is very easy,<br>[54:05] right? But it it's always generated by<br>[54:07] um the host. Most hosts don't let you<br>[54:10] edit their RSS feeds because you would<br>[54:12] break it or you could break it which<br>[54:14] would cause a nightmare scenario for<br>[54:16] them. Um,<br>[54:17] >> yeah,<br>[54:18] >> but it is very simple in terms of like<br>[54:21] it's just this person. Whoops, I just<br>[54:24] hit back on my I'm using the stupid Mac<br>[54:27] touchpad<br>[54:29] today. Hate it. Um,<br>[54:34] person.<br>[54:38] So, it's it's literally just, you know,<br>[54:40] podcast person ro equals host.<br>[54:43] um a link to the image which presumably<br>[54:46] he uploaded at Buzzprout. Um and then<br>[54:51] you know you would do that with the<br>[54:53] guest. You'd have a guest in you put<br>[54:54] their guest name in and that would all<br>[54:56] be an interface on uh the Buzz Sprout<br>[54:58] side. Um, Transistor has that in<br>[55:04] their<br>[55:06] um,<br>[55:12] people tag, which<br>[55:15] I'm apparently not using. I can add my<br>[55:17] first person right here, and I can put<br>[55:19] all the<br>[55:20] all the information right in here for my<br>[55:22] for my host.<br>[55:24] >> Yeah, it looks like they started doing<br>[55:27] some of the fields. uh but not all of<br>[55:31] them. And I'm pretty sure I'm pretty<br>[55:34] sure I've submitted a pull request to<br>[55:35] them in the past and they did not<br>[55:37] respond to me, I'm pretty sure. So if<br>[55:38] that if I'm remembering correctly.<br>[55:40] >> So it's probably something I'll have to<br>[55:42] figure out on my own.<br>[55:46] >> So that's a long way of getting to<br>[55:48] supporting transistor API and uh RSS<br>[55:51] feed. I then added and I I we will wrap<br>[55:55] soon. And I don't know if there's any uh<br>[55:58] other questions coming in, but then I<br>[56:00] did build out another feature which is<br>[56:03] another advantage to transistor<br>[56:06] which if I go to Brian's test<br>[56:11] um<br>[56:12] I built out the<br>[56:17] Whoops.<br>[56:20] I built out the pod loom subscribe<br>[56:22] buttons.<br>[56:25] So, same interaction, drop the block<br>[56:28] onto the editor and then select which<br>[56:30] podcast. And in this case, we'll pick<br>[56:33] the WP Minute. And these are uh<br>[56:39] any of the uh subscribe links that you<br>[56:42] have filled out um in Transistor or on<br>[56:46] the website. So, let me go to Podum<br>[56:48] settings, subscribe links.<br>[56:52] The cool thing is I built it so as soon<br>[56:54] as you add your transistor sites or<br>[56:57] excuse me your transistor podcasts to<br>[56:59] the site um it'll automatically take and<br>[57:03] create your um subscribe block<br>[57:07] with all of the all of the subscribe<br>[57:10] links that you have at transistor and<br>[57:12] that just you just I just grab it<br>[57:14] through the API and display it with the<br>[57:17] um with the icon of that platform.<br>[57:21] Um, so that allows the user to put the<br>[57:23] subscribe blocks anywhere. Like I like<br>[57:25] to have a subscribe page/subscribe for<br>[57:27] my podcasts or a slcast page. And then<br>[57:31] the user can um<br>[57:34] customize the<br>[57:37] um subscribe block right here with<br>[57:39] either just like the brand default<br>[57:41] colors, monochrome for whatever reason,<br>[57:44] and then custom color, which I hate this<br>[57:46] color picker, and I I do want to change<br>[57:49] this. Um, but this would be just like a<br>[57:51] custom color to to match your your<br>[57:53] thing. Um, to match your theme and yeah,<br>[57:58] it gives a subscribe block for any uh<br>[58:02] one of your podcasts.<br>[58:04] Yeah, I think my only<br>[58:07] complaint here is that I think there's a<br>[58:08] lot of core block features that you<br>[58:12] could have built into it that it this<br>[58:16] happens where Claude probably made you a<br>[58:18] custom font size and font family.<br>[58:20] >> Yes,<br>[58:20] >> but it could just in a single line of<br>[58:22] code pull it in from your theme. The<br>[58:24] spacing too, like a there's a single<br>[58:26] supports line it could just add and<br>[58:28] instead of making it but like that's<br>[58:29] what Claude will do. it'll make a custom<br>[58:31] thing for everything cuz it just doesn't<br>[58:33] know, oh wait, this blocks already have<br>[58:35] this. So there's some stuff like the<br>[58:36] alignment you could use. So that way if<br>[58:38] I wanted them left aligned or centered<br>[58:40] or something, you know, there's a few<br>[58:41] things that are<br>[58:42] >> you could pretty easily turn on with a<br>[58:44] single line in your block.json file, but<br>[58:46] like<br>[58:47] >> I don't know. It's like what we need to<br>[58:48] do to get Claude to know, you know,<br>[58:50] people keep saying, "Oh, it's Claude<br>[58:52] knows WordPress so well."<br>[58:53] >> Um, but it really doesn't in my opinion.<br>[58:56] Uh, and it definitely doesn't know the<br>[58:58] block editor very well. And I think<br>[59:00] that's a big problem that I think we<br>[59:03] should be solving by providing some some<br>[59:06] sort of rules files or something that um<br>[59:10] I don't know it's a lot it's a lot of<br>[59:11] context that like ideally should have<br>[59:13] been in the training data over the last<br>[59:14] few years and the fact that it the<br>[59:16] documentation has not kept up is now<br>[59:18] biting us really hard that it's because<br>[59:21] we can provide all that context now but<br>[59:23] now we were wasting tokens like it<br>[59:25] should have been in the training data is<br>[59:27] where it should have been and uh uh it's<br>[59:29] it's a kind of pain that it's not, you<br>[59:30] know.<br>[59:31] >> Yes.<br>[59:31] >> I mean, it does okay. It doesn't do<br>[59:33] terrible, but<br>[59:34] >> Yes. Um,<br>[59:38] and then I built an Elementor widget out<br>[59:40] of all of them, too.<br>[59:44] >> How was that process? I've never built<br>[59:46] an Elementor widget.<br>[59:47] >> It worked.<br>[59:49] >> Uh, it it worked. So that there was uh a<br>[59:54] lot of which I did some quick research<br>[59:58] and um<br>[60:00] like real research, not not just asking<br>[60:03] the AI stuff, but I I saw a lot of folks<br>[60:07] posting about like um<br>[60:10] uh well I guess like the what the block<br>[60:14] looks like or I guess in this case what<br>[60:15] the widget looks like in the editor<br>[60:17] versus what it looks like in the front<br>[60:18] end. And this was a challenge to me for<br>[60:22] me with Gutenberg where once I started<br>[60:24] to launch new things like the podcasting<br>[60:26] 2.0 stuff the Gutenberg block when in<br>[60:29] the editor would never have the features<br>[60:32] but the front end would.<br>[60:34] >> Yeah. So I I was constantly asking it to<br>[60:37] keep it in parody. Right. Um,<br>[60:41] and what I from what I read about<br>[60:43] Elementor is Elementor always struggles<br>[60:45] with that and like a lot of plugins will<br>[60:47] just have a placeholder instead of like<br>[60:50] what I'll call the live the live data or<br>[60:53] the live look and feel.<br>[60:55] >> Yeah.<br>[60:55] >> Um, so I just did that right out of the<br>[60:59] gate. So you won't it'll just be a<br>[61:02] placeholder for the player or the<br>[61:05] playlist. And um<br>[61:08] to view it, to see it, you have to, you<br>[61:10] know, publish the page and look at it.<br>[61:13] Um because I felt like there are<br>[61:15] probably people in the WordPress, excuse<br>[61:17] me, in the podcast world who use<br>[61:18] WordPress who also want to use Elementor<br>[61:21] and those people aren't probably aren't<br>[61:23] going to be like editing blog posts like<br>[61:26] they are with Gutenberg.<br>[61:28] So you probably have a page where you<br>[61:30] put your podcast player and that's it.<br>[61:35] Maybe that's my gut feeling. Um, so I<br>[61:39] was like, it's okay to have a<br>[61:40] placeholder instead of like a live<br>[61:42] widget, for lack of a better phrase. So<br>[61:44] that's what I did. But it worked,<br>[61:47] >> you know? It worked.<br>[61:49] >> Yeah. I mean, I do that a lot when I'm<br>[61:50] just starting off something. It's like,<br>[61:52] let me just get it right. Stick a<br>[61:54] placehold like sometimes I'll just use<br>[61:55] like that first placeholder you showed<br>[61:57] for the block and like not show<br>[61:59] anything. Kind of like a short code, you<br>[62:00] know? It's like, hey, you don't need to<br>[62:01] see this. I just need to get it working<br>[62:03] and get it running. I'm kind of curious<br>[62:05] when you said you do did some research.<br>[62:07] I've been thinking about<br>[62:09] more for Woo Commerce but really for<br>[62:10] WordPress generally which is like we<br>[62:12] have video and we have written<br>[62:14] documentation and we have vibe coding<br>[62:16] which has really destroyed all our<br>[62:18] preconceived notions of how people are<br>[62:20] learning. And I'm thinking that written<br>[62:23] documentation still needs to be really<br>[62:25] good and technical because we really<br>[62:26] need that for these models to learn and<br>[62:28] grow. Whereas I think video I think<br>[62:31] there's going to be like maybe less<br>[62:32] interest of video of watching people<br>[62:34] code versus maybe a video showing how to<br>[62:37] use a block editor, how to do all that<br>[62:39] stuff, some of the more visual things<br>[62:41] like that. But if people are gonna be<br>[62:44] writing less code and they're just going<br>[62:45] to be, you know, sending it straight to<br>[62:48] Claude, is that something where, you<br>[62:51] know, do we need video documentation of<br>[62:54] these development techniques or is the<br>[62:55] written documentation enough because<br>[62:57] that's what the AI is going to use? I'm<br>[62:58] curious what you were using to learn uh<br>[63:01] some of these things.<br>[63:03] I I mean 90% like really the only stuff<br>[63:05] I went outside of<br>[63:08] Claude or or um Chad GPT was for<br>[63:14] Elementor, right? Okay.<br>[63:16] >> So like a lot of this stuff I was um<br>[63:22] literally just either asking Claude or<br>[63:24] um chat GPT every at the end of every<br>[63:28] big feature build air quotes big feature<br>[63:32] build. So if I would<br>[63:34] whatever make the subscribe block<br>[63:35] feature or the caching feature or the<br>[63:39] podcasting 2.0 tag feature I would<br>[63:42] always run through a set of telling<br>[63:44] asking Claude to basically go back<br>[63:47] through and audit everything from a<br>[63:50] WordPress coding standards from a<br>[63:51] security standards from a performance<br>[63:53] standards and from a accessibility<br>[63:55] standards. So, I want you to hit these<br>[63:57] four things after after I feel like I've<br>[64:01] got the feature in a place where I want<br>[64:03] it to be.<br>[64:04] >> Yeah.<br>[64:05] >> Um, then once I got those results, if I<br>[64:08] had to fix stuff, I would fix stuff. It<br>[64:09] had me ask question like, you know, ask<br>[64:11] questions or whatever, I would ask, you<br>[64:13] know, go through those questions and<br>[64:14] then I would run the documentation<br>[64:17] side of it to say like, okay, this is<br>[64:20] good. All the tests pass. Now, document<br>[64:23] everything that we've built. and then<br>[64:25] you know deploy that to the main branch<br>[64:27] and then um you know move on to the next<br>[64:30] feature or whatever. Um but I would say<br>[64:32] that all the learnings came mostly from<br>[64:34] cloud code and some GitHub stuff.<br>[64:39] >> Yeah. And honestly it's not it's getting<br>[64:42] the same information like so yeah it's<br>[64:45] it's not always right. I mean, I<br>[64:46] definitely had a lot of issues, like you<br>[64:47] said. I built an RSS reader plugin for<br>[64:50] WordPress, and I had a lot of issues<br>[64:52] where I'd look at what it did and I<br>[64:53] would just have to be like, "No, that's<br>[64:54] actually just not the right way to do<br>[64:56] this, or that's not going to be<br>[64:57] performant, or you know, you're storing<br>[64:59] all this stuff in a crazy way." Um, and<br>[65:01] it would just, you know, it would lie<br>[65:03] and just be like, "This is actually a<br>[65:04] much more performant way to do this."<br>[65:06] And I'd look at it and so it wasn't<br>[65:07] always right. That was kind of the the<br>[65:09] key issue with it. But if I was newer in<br>[65:13] my WordPress development journey,<br>[65:15] >> I don't know that I would have gotten<br>[65:17] any different information reading blogs<br>[65:19] and all that sort of stuff, I think it<br>[65:21] it learned what I would have learned at<br>[65:23] the same time. So, I don't know. Yeah.<br>[65:24] Uh what the best approach is there. But<br>[65:26] yeah, that's<br>[65:27] >> I think that's definitely interesting.<br>[65:28] And I I have the same issue. I mean, I'm<br>[65:30] I'm setting up WooCommerce stores and I<br>[65:32] const I just go straight to Gemini in my<br>[65:34] browser. All right, where do I find<br>[65:36] this? Where do I find this? And half the<br>[65:37] time it's wrong, but even the wrong<br>[65:39] answers uh like lead me somewhere, you<br>[65:42] know, like I was trying to find a thing<br>[65:44] and it was like, "Oh, go reset this<br>[65:45] option in the database." And the name of<br>[65:47] the option was totally wrong and made<br>[65:49] up, but I was like, "Oh, I let me just<br>[65:51] search for like similar options." And I<br>[65:53] found one that was close enough. And you<br>[65:55] know, it was uh you know, it's it's a<br>[65:58] weird it's a weird time. It's it's funny<br>[66:01] seeing people still posting, "Wow, Cloud<br>[66:03] Code is really good." Yeah.<br>[66:06] >> What do you think we've been saying?<br>[66:07] >> Yeah,<br>[66:08] >> it's crazy.<br>[66:09] >> Um,<br>[66:10] all right. So, we are over time and I<br>[66:13] just one last thing I just want to throw<br>[66:14] out there. So, one of the things that<br>[66:15] was always challenging was and again<br>[66:18] like<br>[66:20] this is just me like the vibe coder<br>[66:23] constantly just telling it uh the system<br>[66:26] to claude to uh analyze our code and uh<br>[66:31] make it again as efficient as possible<br>[66:32] like inline documentation like all that<br>[66:34] stuff was another thing that was part of<br>[66:36] that whole process. Um but then breaking<br>[66:39] up large files of code. Um,<br>[66:43] at one point I had to refactor a lot<br>[66:45] which was scary and kind of like broke a<br>[66:47] lot of stuff. But<br>[66:48] >> yeah,<br>[66:48] >> I got it got it back to a safe spot, you<br>[66:50] know, go through and like Claude will<br>[66:52] also add in like testing data, you know,<br>[66:54] like if if it can't get something right,<br>[66:55] all of a sudden it's like, well, run<br>[66:56] this test and we'll put like<br>[66:58] >> we'll echo this message here and check<br>[67:00] your browser console. It's like get<br>[67:01] that out of here. Like I don't want<br>[67:03] that. I just want to get it right. Um,<br>[67:06] and I think I have two files. I think<br>[67:07] it's the podcast. Well, uh, it's podum<br>[67:11] podcast player. So, this is the biggest<br>[67:14] one. So, it's like 1,800 lines of code.<br>[67:18] Um,<br>[67:21] and like I con like this is this does<br>[67:23] like a lot of like the front-end player<br>[67:25] stuff, the podcast 2.0 stuff. It's all<br>[67:28] like the front-end stuff<br>[67:30] >> mostly,<br>[67:32] >> you know. And I I am con every time I'm<br>[67:34] adding features, I'm asking it to<br>[67:36] analyze this and ask if I should be<br>[67:39] breaking these out into its own<br>[67:42] components and stuff like that. And I<br>[67:43] did that for a few of them. Um,<br>[67:47] but every time it analyzes this this<br>[67:51] file, it it it comes back and it says<br>[67:54] it's largely okay because of everything<br>[67:56] that it does.<br>[67:58] Um<br>[68:00] that's like the biggest uncertainty<br>[68:02] that I have uh really if if like that is<br>[68:06] good sound decision- making just this<br>[68:08] one giant file.<br>[68:10] >> Yeah.<br>[68:11] >> I mean there's no difference especially<br>[68:13] in PHP there's really no difference but<br>[68:16] there's everyone has like a preference.<br>[68:18] I love tons of tiny little files. That's<br>[68:20] how I like to build things. Yeah. I want<br>[68:22] as many little small files as I can.<br>[68:24] Some people really hate that and they<br>[68:26] like one big file and especially with<br>[68:28] the way VS Code works now, it's pretty<br>[68:30] easy or you know any of these forks of<br>[68:32] VS Code, it's pretty easy to get to a<br>[68:34] specific function from one to another.<br>[68:36] It's pretty easy to see the outline view<br>[68:38] of the page. So, it's like less of an<br>[68:40] issue. But I thought it was funny. I<br>[68:41] think on your read me there was<br>[68:43] something where it was like it it was<br>[68:45] like performance is a key thing and then<br>[68:47] it mentioned like the size of the the<br>[68:50] full plugin or something and it was like<br>[68:51] well I think at the end of the day like<br>[68:53] the size of your plugin is you know one<br>[68:56] number 100 on the list of things I'm<br>[68:58] worried about when I look at the<br>[68:59] performance concern it's mostly about<br>[69:01] the code itself and not how it's not how<br>[69:04] much code there is honestly or how much<br>[69:05] it's like what is it doing where is it<br>[69:07] putting things like I'm worried about<br>[69:09] I'm worried about what happens when<br>[69:10] WordPress runs all of its hooks and<br>[69:12] filters. Uh what are you doing? Are you<br>[69:15] fetching 50 RSS feeds every time<br>[69:17] WordPress loads or you know that kind of<br>[69:18] stuff?<br>[69:19] >> Yeah. Yeah. And and I<br>[69:22] Yeah. Like the the caching stuff was<br>[69:24] something that I was like very cognitive<br>[69:27] of and trying to incorporate a smart<br>[69:30] solution for the caching. And um you<br>[69:34] know I just have to keep keep testing it<br>[69:36] and have people test it out and just see<br>[69:38] you know see what happens. Um,<br>[69:42] you know, I I<br>[69:45] the next thing I haven't I haven't even<br>[69:46] gone into yet is I want to start using<br>[69:49] like playright for testing.<br>[69:51] >> Mhm.<br>[69:51] >> Yeah.<br>[69:52] >> Um, which is like a whole thing I I just<br>[69:55] need to learn and can I like automate<br>[69:57] testing? Can I like where can I like<br>[70:00] push this thing to its boundaries? Like<br>[70:01] is there a way for me to have it add<br>[70:03] like a thousand RSS feeds and see what<br>[70:05] happens? Like will it just crumble?<br>[70:08] uh like you know it's those kinds of<br>[70:11] things.<br>[70:12] >> Yeah, there's like two things there. One<br>[70:14] is I've heard that the Google Chrome MCP<br>[70:18] is actually really good and it can<br>[70:21] connect Claude can like open up Google<br>[70:23] Chrome with the MCP, load a website, see<br>[70:27] everything on the page and in the<br>[70:28] console and return. I haven't messed<br>[70:29] with it yet, but I did hear that that's<br>[70:31] a really good alternative to Playright<br>[70:33] is the the Google Chrome MCP and that<br>[70:36] people are seeing it success. And the<br>[70:38] other one is yeah, you do have to<br>[70:39] eventually start if you want a bunch of<br>[70:42] test data. That's where WP CLI comes in<br>[70:44] for me. Uh Claude is really good at WP<br>[70:47] CLI. Um much better than I think it's<br>[70:50] going to be at these like MCPs that<br>[70:51] WordPresses thinks is is going to be a<br>[70:54] big deal. Um, and so I when I was<br>[70:57] building mine, it would be like write me<br>[70:58] a CLI command that adds a hundred fake<br>[71:01] things and another one that deletes them<br>[71:03] all and and then Claude was really good<br>[71:05] at running those commands. So those are<br>[71:07] the two recommendations I have for<br>[71:09] people.<br>[71:09] >> Yeah, I have to check that out. I know<br>[71:11] when I I constantly every time I was<br>[71:13] adding a new feature, I was running it<br>[71:14] against the plug-in checker plugin.<br>[71:17] >> And um I mean, knock on wood if you ran<br>[71:20] it against it. Now, there might be only<br>[71:21] a couple handful of errors or warnings<br>[71:24] uh that that plugin came back at, but I<br>[71:26] was constantly also testing against that<br>[71:28] as well. Um so, we're trying our best<br>[71:32] over here, Brian. We're trying our best.<br>[71:36] Uh that's it for today's episode. Brian,<br>[71:38] thanks for hanging out today.<br>[71:39] briancords.com, woocommerce.com.<br>[71:41] Anywhere else you want folks to go?<br>[71:43] >> Uh, no. Twitter, YouTube, come hang out.<br>[71:47] That's it.<br>[71:48] >> Are you going to release that RSS<br>[71:49] plugin?<br>[71:50] >> Uh, I did release it. I haven't I'm<br>[71:52] going to I need to make some content<br>[71:53] about it. I It's on GitHub, so you can<br>[71:55] go play with it. There's a playground<br>[71:57] link. Um, but I need to make some<br>[71:59] content. There's the easy way where you<br>[72:02] just invite a friend onto a stream and<br>[72:04] then talk about it for an hour. Uh, or<br>[72:06] there's the hard way where you actually<br>[72:07] sit down and do a technical Well, I<br>[72:09] don't know what I'm going to do, but I<br>[72:11] need to do something.<br>[72:12] >> Don't steal all my ideas. You know who's<br>[72:14] building an RSS reader? Uh, John O<br>[72:16] Nolan. I saw<br>[72:17] >> Yeah. Uh, I'm very interested in what he<br>[72:21] builds cuz I built one, but I was like,<br>[72:22] I don't know. Am I really going to use<br>[72:23] this? It was more just for fun and to<br>[72:25] learn some things.<br>[72:26] >> Um, but uh I'm Yeah, I mean I think<br>[72:30] he'll do a good job. I mean, I think<br>[72:32] Ghost is a good,<br>[72:35] you know, Ghost is good. I think all all<br>[72:38] of us old people love RSS and and nobody<br>[72:40] cares about it, but we love it and we<br>[72:42] all make RSS readers and feed<br>[72:45] >> podcast and I don't know what it is, but<br>[72:47] we can't<br>[72:47] >> It's the ham It's the ham radio of the<br>[72:49] internet.<br>[72:50] >> That's exactly what it is. We're all uh<br>[72:53] Yeah. Yeah. We're all hanging out at our<br>[72:55] Elks Lodge. Uh talking about our RSS<br>[72:58] feeds.<br>[72:59] >> Uh the WPinut.com. wpmin.com/podloom<br>[73:03] if you want to check out the plugin and<br>[73:05] uh check out our podcast. We'll see you<br>[73:06] in the next one. <!-- deep-read:sections end -->