Does Code Quality Matter Anymore?

๐ **Source:** [Does Code Quality Matter Anymore?](https://www.youtube.com/watch?v=ZTrrVXmAGes)
> [!note]+ Document Notes
> tags: #ai-coding #code-quality #software-development #obsidian #note-taking #second-brain #css-grid #web-standards #browser-support #accessibility
> author: Syntax
> source: YouTube
> reference: https://www.youtube.com/watch?v=ZTrrVXmAGes
> date created: 2024-12-31 14:30
>
> # ๐ท๏ธ Title: Does Code Quality Matter Anymore?
>
<!-- deep-read:sections start -->
## ๐งฐ Action Inbox
- [H1] Evaluate AI-generated code quality standards โ ongoing maintenance concerns #ai-coding
- [H2] Set up QMD vectorized search for markdown notes โ improved knowledge retrieval #obsidian
- [H3] Review browser support policies for new CSS features โ progressive enhancement strategy #web-standards
## ๐งญ Table of Contents
- [[#๐ Summary]]
- [[#๐ Main Content]]
- [[#๐๏ธ Notes]]
- [[#๐ References]]
- [[#๐ฃ๏ธ Paraphrase]]
- [[#๐ฐ Newsletter]]
- [[#โ
Action Items]]
- [[#๐งช Hypotheses]]
- [[#๐ Methodology]]
- [[#โ Questions]]
- [[#๐ฎ Future Research]]
- [[#๐ก Implications]]
- [[#๐ง Learning Styles Assessment]]
- [[#๐ Accessibility Assessment]]
- [[#๐ DEIB Assessment]]
- [[#โ
Logical Validity]]
- [[#๐ก๏ธ DARVO Analysis]]
- [[#๐ฏ Conclusion]]
### ๐ References
- [QMD by Toby Lutke](https://github.com/tobi/qmd)
- [Obsidian](https://obsidian.md/)
- [Effect.ts](https://effect.website/)
## ๐ Summary
- **What happened**: Potluck episode covering AI's impact on code quality, note-taking systems, browser support challenges, and modern CSS frameworks
- **Why it matters**: Addresses fundamental questions about maintaining standards in an AI-driven development environment
- **Key stakeholders**: Web developers, teams supporting legacy browsers, knowledge workers using second brain systems
- **Risks and tradeoffs**: Code quality degradation vs. development speed; modern features vs. browser compatibility
- **Bottom line**: Code organization still matters significantly, especially as AI projects scale and context bloat occurs
## ๐ Main Content
The hosts discuss whether traditional code quality standards remain relevant in an AI-driven development world. They argue that well-organized, DRY (Don't Repeat Yourself) code becomes more important as AI projects scale, not less. The episode covers practical implementations of modern web standards, the challenges of supporting older browsers (particularly Safari on iPads), and the evolution of CSS layout systems from Bootstrap-style frameworks to native grid and flexbox solutions.
Wes shares his successful Obsidian setup integrated with AI tools for knowledge management, demonstrating practical applications of vectorized search for personal data retrieval. The discussion highlights the tension between adopting bleeding-edge features and maintaining broad compatibility.
## ๐๏ธ Notes
#### โฑ๏ธ [00:00](https://youtu.be/ZTrrVXmAGes?t=0) โ [H1] Introduction and Navigation Patterns
- Key idea: Modern HTML dialogue/popover elements don't fundamentally change navigation implementation
- Evidence: "Are we now back to using display none... what are we saying? Isn't that how we've always been doing it?"
#### โฑ๏ธ [05:30](https://youtu.be/ZTrrVXmAGes?t=330) โ [H2] iOS Haptics API Discovery
- Key idea: Vercel app now uses vibration API on iOS through unconventional implementation
- Evidence: "Input type checkbox with a switch attribute triggers it... you cannot use navigator.vibrate API"
#### โฑ๏ธ [08:45](https://youtu.be/ZTrrVXmAGes?t=525) โ [H1] Code Quality in AI Era
- Key idea: Code organization becomes more critical as AI projects scale, not less important
- Evidence: "That organization, that steady structure... is going to really make your projects more maintainable over the long run"
#### โฑ๏ธ [12:20](https://youtu.be/ZTrrVXmAGes?t=740) โ [H1] AI Performance in Existing Codebases
- Key idea: AI tools now perform better with well-structured existing code than generating from scratch
- Evidence: "I see you've already been writing some of this code in web standards... allow me to go ahead and do the rest"
#### โฑ๏ธ [16:15](https://youtu.be/ZTrrVXmAGes?t=975) โ [H2] Obsidian Second Brain Setup
- Key idea: Successful knowledge management requires automated organization and vectorized search
- Evidence: "I took probably 10 years worth of my markdown notes... it analyzed it all and then organized it"
#### โฑ๏ธ [22:30](https://youtu.be/ZTrrVXmAGes?t=1350) โ [H3] QMD Vectorized Search Implementation
- Key idea: Vector search enables semantic discovery across markdown documents beyond keyword matching
- Evidence: "Takes all the sentences... vectorizes them... you can find things when you're not just doing straight up text search"
#### โฑ๏ธ [26:45](https://youtu.be/ZTrrVXmAGes?t=1605) โ [H2] Browser Support Reality Check
- Key idea: Legacy browser support remains a significant constraint despite modern feature enthusiasm
- Evidence: "Safari iPads... people get an iPad and have them kicking around for 10 years... biggest killer for web standards"
#### โฑ๏ธ [32:10](https://youtu.be/ZTrrVXmAGes?t=1930) โ [H3] Progressive Enhancement Strategies
- Key idea: Modern CSS features can be implemented with graceful degradation using feature queries
- Evidence: "I used corner shape scoop... looks fine with regular rounded corners on Safari... wrote it with @supports queries"
#### โฑ๏ธ [35:20](https://youtu.be/ZTrrVXmAGes?t=2120) โ [H2] Accessibility Issue Reporting
- Key idea: Screen recording feedback provides actionable bug reports for accessibility problems
- Evidence: "Flip on a screen recorder... show the accessibility... that company can get in trouble... ambulance chasers"
#### โฑ๏ธ [40:15](https://youtu.be/ZTrrVXmAGes?t=2415) โ [H3] Effect.ts Learning Curve Discussion
- Key idea: Functional programming libraries like Effect require significant architectural buy-in early in projects
- Evidence: "Requires a lot of buy in... at a very early level... it's intense... very Rustlike in its API"
#### โฑ๏ธ [45:30](https://youtu.be/ZTrrVXmAGes?t=2730) โ [H2] JavaScript Ecosystem Choice Overload
- Key idea: Framework selection should prioritize stability, standards-compliance, and ecosystem maturity
- Evidence: "Prioritize stability... is it standards based?... if I need to move, will I need a massive rewrite?"
#### โฑ๏ธ [52:40](https://youtu.be/ZTrrVXmAGes?t=3160) โ [H1] CSS Grid vs Layout Frameworks
- Key idea: Modern CSS eliminates need for Bootstrap-style grid systems in favor of utility classes
- Evidence: "Couple utility classes are more than enough... throwing something on a grid call felt way less flexible"
## ๐ References
- [QMD GitHub Repository](https://github.com/tobi/qmd)
- [Obsidian](https://obsidian.md/)
- [Effect.ts](https://effect.website/)
- [Sentry](https://sentry.io/syntax)
- [Graffiti CSS](https://graffiti-ui.com)
## ๐ฃ๏ธ Paraphrase
- Code quality and organization become more important with AI tools, not less, because projects scale faster and context bloat occurs more quickly
- Modern note-taking systems benefit from AI integration and vectorized search, but require careful setup and organization to be effective
- Browser support challenges persist, particularly with Safari on older iPads, requiring progressive enhancement strategies for new CSS features
## ๐ฐ Newsletter
**AI and Code Quality: Why Standards Still Matter**
As AI coding tools become more prevalent, there's a tempting narrative that code organization matters less since "the robot will handle it." This episode of Syntax challenges that assumption with practical experience from developers using AI daily.
The key insight: well-structured code becomes MORE valuable with AI, not less. When projects scale rapidly (as they do with AI assistance), poor organization leads to context bloat and drift that makes maintenance increasingly difficult. AI tools also perform better when working with existing, well-organized codebases rather than generating everything from scratch.
For WordPress developers, this reinforces the importance of following coding standards and architectural patterns, especially when experimenting with AI-assisted development workflows.
**Practical Takeaways:**
- Maintain DRY principles even when AI can "update everywhere"
- Use progressive enhancement for new CSS features
- Implement proper error tracking to catch browser compatibility issues
Resources: [WordPress Coding Standards](https://developer.wordpress.org/coding-standards/), [Can I Use](https://caniuse.com/), [MDN Web Docs](https://developer.mozilla.org/)
## โ
Action Items
#### DevRel
- Developer advocacy: Create content showing AI coding best practices, demonstrate code quality impact at scale
- Education: Workshop on progressive enhancement strategies for modern CSS features
- Developer experience: Document browser support decision frameworks, AI coding guidelines
- Community management: Gather feedback on AI tool experiences, accessibility reporting processes
#### OSPO
- Policy & Governance: Establish AI-generated code review standards, quality gate requirements
- Security Management: Audit AI-generated code for security patterns, dependency management
- Developer Support: Training on AI tool integration with existing codebases, legacy browser support
- Strategic Alignment: KPIs for code quality metrics in AI-assisted development
#### Community
- Maintainers: Share strategies for maintaining code quality with AI contributors
- Contributors: Guidelines for AI-assisted contributions, code review standards
- Ecosystem: Cross-project coordination on browser support policies
#### WordPress
- Core: Code quality standards for AI-generated contributions, progressive enhancement guidelines
- Core Performance: Profile AI-generated code patterns for performance impact
- Documentation: Update coding standards to address AI-assisted development
- Accessibility: Document progressive enhancement patterns, browser compatibility matrices
- Meta: Review .org codebase organization for AI tool compatibility
## ๐งช Hypotheses
- AI-generated code with poor organization creates exponentially more technical debt as projects scale
- Vectorized search systems significantly improve knowledge retrieval compared to traditional text search
- Progressive enhancement strategies can maintain accessibility while adopting modern CSS features
- Browser support policies should be data-driven rather than assumption-based
### ๐ Methodology
- Comparative analysis of AI-generated code quality over time in structured vs. unstructured projects
- A/B testing of knowledge retrieval systems: traditional search vs. vectorized search
- User experience studies of progressive enhancement implementations across browser matrix
- Analytics review of actual browser usage vs. perceived support requirements
### โ Questions
- How do we measure code quality degradation in AI-assisted development environments?
- What are the long-term maintenance costs of loosely organized AI-generated codebases?
- How can we automate progressive enhancement testing across browser matrices?
### ๐ฎ Future Research
- Automated code quality assessment tools specifically for AI-generated code
- Integration patterns between AI coding assistants and existing development workflows
- Browser support automation tools that adjust feature usage based on real analytics
### ๐ก Implications
- **Practice**: Stricter code organization standards needed for AI-assisted development
- **Policy**: Browser support policies should be evidence-based rather than assumption-driven
- **Security**: AI-generated code requires additional review for security and accessibility patterns
- **Education**: Developer training must emphasize architectural thinking alongside AI tool usage
- **Funding**: Investment in tooling for code quality automation and progressive enhancement testing
### ๐ง Learning Styles Assessment
Reading level estimate: Grade 12 (technical podcast content)
#### ๐ Visual learners
- Present: Code examples, browser compatibility charts, CSS grid layouts
- Improve: Architecture diagrams showing AI integration patterns, visual browser support matrices
#### ๐ Aural learners
- Present: Full podcast episode available for listening
- Improve: Timestamped audio summaries for key technical concepts
#### ๐ฃ๏ธ Verbal learners
- Present: Clear definitions of technical terms, analogies for complex concepts
- Improve: Glossary of AI coding terms, comparison tables for framework selection
#### ๐งฉ Kinesthetic learners
- Present: Practical code examples, hands-on Obsidian setup guide
- Improve: Interactive browser compatibility checker, progressive enhancement workshops
#### ๐ง Logical learners
- Present: Decision trees for framework selection, systematic approaches to browser support
- Improve: Flowcharts for AI code review processes, metrics dashboards for code quality
#### ๐งโ๐คโ๐ง Social learners
- Present: Community discussion prompts, shared experiences with tools
- Improve: Study groups for AI coding practices, collaborative code review sessions
#### ๐งโโ๏ธ Solitary learners
- Present: Individual note-taking strategies, personal knowledge management systems
- Improve: Self-assessment checklists for code quality, private reflection exercises
#### ๐ฟ Naturalistic learners
- Present: Ecosystem thinking about tool selection, organic growth patterns in codebases
- Improve: Natural language processing examples, evolution analogies for code quality
### ๐ Accessibility Assessment
#### Screen reader semantics
- Present: Clear headings structure, descriptive link text in show notes
- Improve: ARIA labels for timestamp links, structured markup for technical concepts
#### Keyboard navigation
- Present: Standard web navigation patterns
- Improve: Skip links for long transcript sections, keyboard shortcuts for timestamp navigation
#### Contrast and readability
- Present: Standard text contrast in show notes
- Improve: High contrast mode support, adjustable text sizing for technical content
#### Text resizing and reflow
- Present: Responsive design for show notes
- Improve: Optimized reflow for technical code examples, mobile-friendly formatting
#### Media and captions
- Present: Full transcript available
- Improve: Time-synced captions, downloadable transcript formats
#### Forms and interactions
- Present: Simple contact forms for questions
- Improve: Accessible error handling, clear submission feedback
### ๐ DEIB Assessment
#### Cultural breadth
- Present: Global perspective on browser usage, international developer challenges
- Improve: Multi-region browser statistics, localization considerations for web standards
#### Inclusive language
- Present: Technical jargon clearly defined, gender-neutral examples
- Improve: Plain language summaries for complex technical concepts
#### Neurodiversity support
- Present: Structured content with clear sections, consistent formatting
- Improve: Visual indicators for content types, predictable navigation patterns
#### Representation
- Present: Diverse range of technical challenges and solutions
- Improve: Examples from different industry contexts, varied developer perspectives
#### Psychological safety
- Present: Respectful discussion of technical disagreements
- Improve: Explicit encouragement of questions, acknowledgment of learning curves
### โ
Logical Validity
#### Strong reasoning
- Deductive strength: AI code quality arguments well-supported by scaling examples
- Inductive strength: Browser support patterns generalized appropriately from specific cases
- Causal reasoning: Clear connection between code organization and maintenance costs
- Analogical strength: Effective comparisons between AI coding and traditional development practices
#### Fallacies
- Appeal to novelty: Some bias toward new tools without sufficient evidence of superiority
- False dichotomy: Occasional framing of choices as either/or when multiple approaches exist
#### Tone of voice
- Overall tone: Conversational and practical, with appropriate technical depth and humor
### ๐ก๏ธ DARVO Analysis
- Deny: No significant denial patterns observed
- Attack: Constructive criticism of tools and practices, not personal attacks
- Reverse victim/offender: No reversal patterns detected
- Emotional cues: Balanced discussion with appropriate enthusiasm and skepticism
## ๐ฏ Conclusion
Code quality and architectural thinking remain fundamental skills in the AI era, becoming more critical as development velocity increases. The episode demonstrates that successful integration of AI tools requires maintaining traditional software engineering principles while adapting workflows for new capabilities. Modern web development benefits from progressive enhancement strategies that embrace new features while maintaining broad accessibility, supported by data-driven decisions about browser support rather than assumptions.
## ๐งฑ Refactor Appendix
### ๐ Literature Split Pad
Purpose: Stage CEE units that become Literature notes.
Split level: H3
### [H1] AI tools perform better with organized codebases
> [!quote] Does Code Quality Matter Anymore? by Syntax via YouTube. Published 2024. Accessed 2024-12-31.
> "I see you've already been writing some of this
---
## Full Transcript
[00:00] Welcome to Syntax. Today we got a<br>[00:02] potluck episode. You bring the<br>[00:03] questions, we bring the answers. We got<br>[00:05] a couple really interesting questions<br>[00:06] today. First of all, I'm going to give<br>[00:08] you an update on my second brain update,<br>[00:10] which is my like notetaking slash I need<br>[00:13] to remember this. I need an easy way to<br>[00:16] log all of these pieces. I made some<br>[00:18] progress. I'm pretty happy. I'm going to<br>[00:19] share that with you. Pop over and<br>[00:21] dialogue for navigations. Is that the<br>[00:24] move? Does code organization even matter<br>[00:27] anymore with AI? Can we just put a whole<br>[00:29] bunch of slop into our repo and it<br>[00:31] doesn't even matter? Do you need a<br>[00:34] layout system with flexbox in grid? You<br>[00:36] know, like before we used to have all<br>[00:38] these layout systems and they don't seem<br>[00:39] to be that popular anymore. Do you even<br>[00:41] need something like that? And whole<br>[00:43] bunch more questions. Effect.ts, some<br>[00:45] stuff about supporting older browsers<br>[00:46] and new CSS features, all kinds of good<br>[00:48] stuff. If you've got a question, go to<br>[00:50] syntax.fm. There is a button in the nav<br>[00:53] that says ask apolla question. Click on<br>[00:55] it, put your question in there. and<br>[00:56] we'll answer it on an upcoming episode.<br>[00:58] My name is Wes Boss. With me as always<br>[01:00] is Scott Tinsky. Let's get into it. All<br>[01:02] right, first question here from Alex.<br>[01:04] With dialogue and popover available to<br>[01:07] us, I understand that we don't need to<br>[01:08] use JavaScript to toggle a navigation<br>[01:11] anymore, but are we now back to using a<br>[01:14] display none or similar on the button if<br>[01:17] the navigation is hidden behind a<br>[01:20] hamburger menu on smaller screens but<br>[01:23] spelled out on larger screens? Are we<br>[01:26] back to using a display? None or similar<br>[01:28] on the button? What?<br>[01:30] >> Yeah, he's talking about like you got<br>[01:31] you have like a nav that slides out from<br>[01:33] the side and then you have a hamburger<br>[01:35] button and you press that and the thing<br>[01:37] slides on on like a desktop.<br>[01:40] >> You're not showing the hamburger menu,<br>[01:42] right? You're you're simply just like<br>[01:43] hiding it.<br>[01:44] >> Yeah. But what are we what are we<br>[01:45] saying? Are we now back to Isn't that<br>[01:46] how we've always been doing it? Even<br>[01:48] >> I think so.<br>[01:49] >> Without this technique?<br>[01:50] >> Yeah. So, to me, this is a nothing<br>[01:54] issue. do a nothing burger. Uh because<br>[01:56] to me, yeah, this is just how I've<br>[01:58] always done it. Um and I do love the<br>[02:01] idea of using dialogue or popover or any<br>[02:04] of these things to toggle a navigation.<br>[02:07] I actually did a demo for that at JS<br>[02:09] Nation a while ago. Uh a JavaScript less<br>[02:12] hamburger menu, slide over that whole<br>[02:15] thing with the animation. You can use um<br>[02:18] the starting style. You can use allow<br>[02:20] discreet. um you can animate these<br>[02:22] things and and granted the browser<br>[02:24] support isn't 100% yet and it's not<br>[02:26] something that's going to work on older<br>[02:27] browsers. If you're asking me, we have<br>[02:31] these techniques and they do work with<br>[02:33] popover and everything like that. But at<br>[02:35] the end of the day, I'm still most<br>[02:37] likely doing this with either CSS to uh<br>[02:42] JavaScript and CSS to apply a class just<br>[02:44] for backwards compatibility reasons.<br>[02:46] That's pretty much how I'm doing it<br>[02:48] today. I think the future is with<br>[02:51] popover and dialogue uh to do these<br>[02:53] things with starting style allow<br>[02:55] discrete these CSS properties that allow<br>[02:57] us to animate something when it goes<br>[02:59] from display none to display whatever<br>[03:02] and to me that is the future but I'm<br>[03:06] still using JavaScript in a class to<br>[03:08] apply that class today. Plus, I think<br>[03:11] most complex websites at at this moment<br>[03:14] are having double navs simply just<br>[03:17] because it's so hard to make a decent<br>[03:20] mobile nav that's not super overwhelming<br>[03:23] >> and people are simply just saying, "All<br>[03:25] right, well on mobile our nav is going<br>[03:27] to Yeah, it can look a little different,<br>[03:28] but like sometimes there's simply just<br>[03:30] less stuff in the navigation that needs<br>[03:33] to be shown." So people are just<br>[03:34] rendering out two different navs, hiding<br>[03:36] and showing them depending. But kind of<br>[03:38] related, I wanted to ask you about this.<br>[03:40] I just saw this yesterday. When you're<br>[03:42] using Versel on iOS, tapping some of the<br>[03:45] like tabs, it now uses the vibrate API,<br>[03:48] which I had no idea. iOS now has<br>[03:52] haptics, meaning that you can make the<br>[03:55] like you can use the little thing inside<br>[03:57] of it. Did you see that?<br>[04:00] >> I I didn't see that because I don't use<br>[04:01] Versell on mobile, but I I I do know<br>[04:04] about this haptics API. And there is I'm<br>[04:07] trying to remember what it is. There is<br>[04:09] some app that I use on the regular and<br>[04:11] when it wants my intention or when it<br>[04:14] wants my attention it does do that buzz<br>[04:16] and I like it uh because I don't have<br>[04:20] sounds turned on and if it needs to get<br>[04:23] my attention I think it I don't know<br>[04:24] what is a uh man what is it what I'm<br>[04:27] trying to remember what web app<br>[04:30] specifically it is but it does it gets<br>[04:32] my attention the moment just with a<br>[04:34] little button and got to say that's nice<br>[04:36] because it's not sound it's not making a<br>[04:38] uh you know, sound on my phone or<br>[04:40] something like that that I might miss<br>[04:42] cuz I always have that stuff turned off.<br>[04:44] >> Yeah, it certainly can be abused and I'm<br>[04:46] curious now that it's it's in iOS if<br>[04:48] people are going to abuse it. But like<br>[04:50] on I absolutely love it on native apps<br>[04:53] like on um chat GPT as the response<br>[04:56] starts to starts to stream in you couple<br>[04:59] little quick little things or if<br>[05:00] something doesn't work. The way that it<br>[05:02] works though is absolutely nuts. is an<br>[05:04] input type of checkbox with a switch<br>[05:07] attribute on it<br>[05:08] >> that triggers it.<br>[05:10] >> Yeah. So, you cannot there's no<br>[05:12] programmatic like navigator.vibrate<br>[05:14] API working, but you can turn a switch<br>[05:18] that is hidden on and off many times.<br>[05:20] Um, and that will make the vibration go<br>[05:22] on and off. I bet they're going to take<br>[05:24] that away because it's just it's too<br>[05:26] good for Apple to let us have that.<br>[05:28] >> Yeah. And this is an Apple thing because<br>[05:31] uh Chrome on Android doesn't navigator<br>[05:34] vibrate API in the web that clear would<br>[05:37] have made way too much sense to use<br>[05:39] >> would have made way too much sense and<br>[05:40] of course it's on uh Chrome and Android<br>[05:42] because they actually implement the web<br>[05:45] APIs that be great.<br>[05:47] >> Yeah.<br>[05:47] >> Next question. Krasmir says code quality<br>[05:50] I hear more and more that people saying<br>[05:53] that if AI is reading and writing the<br>[05:55] code we may not need to make it so well<br>[05:57] organized. So far we are making sure<br>[06:00] that the code is well written so that we<br>[06:02] can maintain it and understanding it.<br>[06:04] But now since a robot is doing that like<br>[06:06] do we do we really need to to have<br>[06:08] well-written code? Certainly I do care a<br>[06:11] lot and this pisses me off a little bit<br>[06:13] because it sounds like we are<br>[06:14] outsourcing the brain job to the machine<br>[06:17] and only focusing on output. So the<br>[06:19] question here is like does it<br>[06:22] necessarily matter that some of this<br>[06:25] code is is ugly is maybe spaghetti is is<br>[06:30] like duplicating code over and over<br>[06:33] again. You know like like one of them<br>[06:34] that that gets me all the time is that<br>[06:36] you have AI generate some CSS and it<br>[06:39] puts like a font size and a line height<br>[06:41] on absolutely everything. I'm like you<br>[06:44] you wrote that nine times<br>[06:46] >> over and over again. And some people are<br>[06:49] saying like it doesn't matter like it<br>[06:51] will update those nine places where<br>[06:53] where you have the line height. And I<br>[06:55] don't think that's that's a very good<br>[06:57] good way to go about it. I think<br>[06:59] eventually these these things are going<br>[07:02] to rot. It's not going to update<br>[07:04] something in the right spot. Things are<br>[07:05] going to change a little bit between the<br>[07:07] two. And we still need to think about<br>[07:08] like performance and and how this code<br>[07:11] writes. And a big part of how these AI<br>[07:15] tools work is discoverability of the<br>[07:17] code. Meaning that it might use like a<br>[07:20] like a TypeScript LSP, the language<br>[07:22] server. It might like look at this<br>[07:24] function and then it can use the LSP to<br>[07:26] figure out where that function is called<br>[07:27] and it can sort of just crawl out and<br>[07:30] and look at your codebase from that<br>[07:32] rather than just doing like raw searches<br>[07:34] on your codebase. And well written,<br>[07:37] wellorganized code is is that, right? So<br>[07:41] I still think this matters quite a bit.<br>[07:43] I' I've certainly have been in many code<br>[07:45] bases where you just let AI do it do its<br>[07:48] thing and then you come back to to<br>[07:50] change something. And of course you have<br>[07:53] to understand it. It's it's very<br>[07:54] frustrating. But once this thing grows<br>[07:56] to a certain size, it's very frushing<br>[07:58] and very hard to to sort of get a handle<br>[08:01] on it.<br>[08:02] >> Yes. Yeah. I I I think now more than<br>[08:05] ever, not not maybe not more than ever,<br>[08:07] but this is so important and and<br>[08:08] actually CJ and I have just been talking<br>[08:10] quite a bit about this. Uh we were just<br>[08:12] talking about it yesterday, but like to<br>[08:14] me, yeah, that that whole argument of<br>[08:19] well the AI will just update it<br>[08:20] everywhere. Dry code becomes less<br>[08:22] important. That sucks. I hate that<br>[08:24] because anybody who knows anything about<br>[08:28] working in AI is that it always starts<br>[08:30] off really well and then as the project<br>[08:33] gets bigger, it starts to get worse and<br>[08:35] worse and worse because that context<br>[08:37] bloat because there's too many things<br>[08:39] because there ends up being drift and<br>[08:41] this is a thing that CJ and I have been<br>[08:43] talking a lot about like what are we<br>[08:45] doing to solve this? Uh and we have some<br>[08:47] really fun ideas or some stuff we're'll<br>[08:49] we'll talk about um in the future here.<br>[08:52] We're working on a a video together<br>[08:53] right now. But uh I think this is<br>[08:56] important because that organization,<br>[09:00] that steady structure, that uh that lack<br>[09:04] of drift and everything like that is<br>[09:06] going to really make your projects more<br>[09:09] maintainable over the long run. And I I<br>[09:12] do agree about outsourcing the brain<br>[09:15] job. We can't outsource the brain job.<br>[09:17] That brain job is our entire like role<br>[09:22] as if we're vibe coding here. And if you<br>[09:25] start to outsource that that brain job,<br>[09:28] what are you even doing? Like what? You<br>[09:30] might as well just be, you know, hitting<br>[09:31] enter on a keyboard and and you know,<br>[09:34] slopping it out. So,<br>[09:35] >> not much there. And like like one more<br>[09:38] thing to say about that is I was<br>[09:39] thinking the other day how we've gone<br>[09:41] from AI is good at making stuff from<br>[09:45] scratch but it's not that good in like<br>[09:48] existing code bases. But I'm starting to<br>[09:50] feel the opposite. um where like of<br>[09:53] course you can<br>[09:54] >> spit something out and it'll it'll make<br>[09:56] something from scratch, but<br>[09:58] >> like I was putting it in my course<br>[10:01] codebase and I said like hey move this<br>[10:04] thing like something I've been wanting<br>[10:05] to do for forever is move from express<br>[10:09] to Hano and I've been writing my code in<br>[10:11] like web standards like all of the new<br>[10:13] stuff for the past probably two years<br>[10:15] I've been writing it all in web<br>[10:16] standards. Um, and then I was like, you<br>[10:18] know what? I'm gonna like throw an agent<br>[10:19] on this and say see if like what it can<br>[10:22] do. And it like it picked up it says,<br>[10:24] ah, I see you've already have been<br>[10:27] writing some of this code in web<br>[10:29] standards um, which is the APIs versus<br>[10:31] like the express way of doing things.<br>[10:33] Allow me to just to go ahead and and do<br>[10:35] the rest of it for you and and convert<br>[10:36] it over. And I was like, man, it's so<br>[10:38] much it did such a better job given<br>[10:42] nice, clear, concise examples and like<br>[10:46] patterns,<br>[10:46] >> structured, established patterns, all of<br>[10:48] that stuff versus just like letting it<br>[10:51] rip. And it it used to be the opposite,<br>[10:52] but now it's just like, oh, that that<br>[10:55] was code that I probably would have<br>[10:57] written myself. And I'm glad that it it<br>[10:59] did it exactly the same way as I had<br>[11:01] been writing it for the last two years.<br>[11:03] >> Yeah, I've been finding the same thing.<br>[11:05] They've gotten a lot better at those<br>[11:07] aspects for certain. Uh, next one here<br>[11:10] is an update on Second Brain from Wes. I<br>[11:14] I would imagine uh you've been talking<br>[11:16] about your Obsidian journey, about how<br>[11:19] you're working with Obsidian to catalog<br>[11:21] data and things like that. And<br>[11:23] >> yeah,<br>[11:24] >> somebody wants an update here and let us<br>[11:26] know. I just I just put this in here.<br>[11:29] This was not a question.<br>[11:30] >> You asked your own question.<br>[11:31] >> I asked my own. I want to It's my<br>[11:33] podcast. I'll talk about what I want,<br>[11:34] but basically like a couple I don't<br>[11:36] know, maybe about a month ago, I asked<br>[11:38] like people, hey, like<br>[11:40] >> like what are you using for<br>[11:42] >> not necessarily just notes, but as like<br>[11:45] like a place to put something. I I said<br>[11:47] like I specifically want to when I have<br>[11:51] something that I need to remember, I<br>[11:53] want to just dump it into some sort of<br>[11:55] system and be able to recall that and<br>[11:57] have it like a like a second brain,<br>[11:58] right? And I specifically in my life, I<br>[12:01] have that for just measurements. Like we<br>[12:03] have these windows at our cottage and<br>[12:06] there's a specific measurement of them<br>[12:08] and every time I'm like, "Oh, there's<br>[12:10] blinds at the store and then I can't<br>[12:12] find it." I'm like, "Did I put this in<br>[12:13] markdown? Is it in my Apple notes? Is it<br>[12:15] in my email? Did I text it to myself?<br>[12:17] Did I text it to my wife?" You know, I<br>[12:19] just can't find it uh wherever it is.<br>[12:21] And then I have that with like like<br>[12:23] links for the show. And just just random<br>[12:26] stuff in my life where I'm just like, I<br>[12:27] need to remember this. Where do I put<br>[12:29] this? A lot of people messaged me and<br>[12:31] said, "Dude, you got it. You got to give<br>[12:32] Obsidian another try. And I have I've<br>[12:35] tried the Obsidian note takingaking<br>[12:37] thing for for many many times and it's<br>[12:40] never really stuck. I've just been like<br>[12:41] a straight up markdown in a folder kind<br>[12:44] of guy, which is like 80% of what<br>[12:46] Obsidian is.<br>[12:48] >> But I decided let's let's give it<br>[12:50] another shot to to see where it is,<br>[12:52] right? So, I<br>[12:55] took I don't know probably 10 years<br>[12:57] worth of my markdown notes and then I<br>[13:01] spun up a cloud code instance and I said<br>[13:03] like like convert these to like an<br>[13:06] Obsidian vault. Um, so I created a vault<br>[13:08] and I put some some things in there and<br>[13:10] it just kind of analyzed it all and then<br>[13:12] organized it and and made the different<br>[13:14] categories and tags and then it it<br>[13:16] figured out who the meetings like I have<br>[13:18] lots of meeting notes with people, you<br>[13:20] know, and then it it tagged the people<br>[13:22] that I had the meeting notes with and I<br>[13:23] was like, "Okay, this is I don't want a<br>[13:25] full-time job. A lot of these like note<br>[13:27] takingaking people are just like their<br>[13:28] whole personality is taking notes.<br>[13:31] >> I'm not into that, right? I just need<br>[13:32] like a good system that that will help<br>[13:34] me." So, it it moved all of that stuff<br>[13:36] over to an Obsidian vault, which I was<br>[13:38] very happy with. And then I also I<br>[13:40] hooked it up to my OpenCloud bot.<br>[13:42] There's a whole Obsidian CLI that you<br>[13:44] can use now. And I've just been like,<br>[13:48] that's the perfect interface for I need<br>[13:50] to remember this at one point. And I'll<br>[13:52] just type it into like make an Obsidian<br>[13:54] note that logs X, Y, and Z. And one<br>[13:57] thing that that I always do is is<br>[13:59] clothing sizes. You know, you you like,<br>[14:01] "Oh, I want to buy this shirt.<br>[14:03] Do I need a medium, a large, an extra<br>[14:05] large? You know, what what size is your<br>[14:08] chest? I don't know. And so what I did<br>[14:10] is I told it to make like um I don't<br>[14:13] know what it's called, but it's kind of<br>[14:15] like notion where you can create extra<br>[14:17] properties that are associated with<br>[14:18] everyone. So I Okay. I just went through<br>[14:20] like<br>[14:21] >> metadata front matter.<br>[14:22] >> Yeah. Yeah. Exactly. So I was like I<br>[14:25] just went I grabbed like five or six of<br>[14:27] my shirts that I like and I just<br>[14:28] measured like the arm and the chest and<br>[14:30] and all of this stuff. And then I also<br>[14:32] gave it notes as to how it fits. Um, if<br>[14:35] I put a hoodie underneath it or if it's<br>[14:36] like a t-shirt.<br>[14:38] >> Um, and then I've just been able to like<br>[14:41] have that data in there where I can<br>[14:42] reference it myself. And I can also ask<br>[14:44] like my open collab like, hey, here's a<br>[14:47] shirt I'm looking at. Here's the sizing<br>[14:49] chart. Which one do you think will will<br>[14:51] fit me best? And that to me is such a<br>[14:54] like I know people are always like this<br>[14:55] open cloth stuff is stupid. There's no<br>[14:57] actual use cases for it, which I'm I<br>[14:59] kind of I'm kind of on board there. But<br>[15:01] this is one thing where I've been like<br>[15:03] really happy with it, you know, and then<br>[15:04] I can like send it eventually what I<br>[15:06] want to get to it is I can I can just<br>[15:08] send it screenshots, you know, you can<br>[15:09] just sometimes I'll screenshot stuff.<br>[15:11] I'm like I got I got to remember this.<br>[15:13] Um I would love just to like share that<br>[15:16] screenshot into some sort of system and<br>[15:18] then it will like OCR it maybe go to the<br>[15:21] web page. And then the final piece of<br>[15:23] this is um QMD which is from Toby um CEO<br>[15:28] of Shopify.<br>[15:31] Nice water bottle. Whoa.<br>[15:33] >> Madcss.com. Make sure you you check that<br>[15:36] out.<br>[15:37] >> You can you can grab one of the water<br>[15:38] bottles. You can grab one of our bombers<br>[15:39] if you want. Anyways, QMD from Toby. So,<br>[15:43] this is a<br>[15:46] kind of solves the like memory issue<br>[15:49] with a lot of these AI things. And what<br>[15:51] it does is that QMD will search all of<br>[15:55] your markdown. Um, so you can you can<br>[15:57] give it all of your your markdown<br>[15:59] documents. What it does is it takes all<br>[16:01] the sentences from each of those<br>[16:02] markdown and and vectorizes them. Um,<br>[16:05] and then you can run like a vector<br>[16:07] search against those. So like if if I<br>[16:10] were to like have a note on like shirt<br>[16:12] size and then if I were to to later do a<br>[16:16] search for like coat measurements, um,<br>[16:19] even though those are not the same<br>[16:21] words, they're they're similar enough.<br>[16:22] you know, the ve the when you vectorize<br>[16:24] something, it it turns it into a<br>[16:26] mathematical representation on all these<br>[16:28] different axes and then you're able to<br>[16:30] like find things when you're not just<br>[16:33] doing straight up like like text search.<br>[16:34] So, it uses vectorization and then it<br>[16:36] also uses a couple different other ways<br>[16:39] to query it and then it will rank them<br>[16:41] for you. It works really well. You can<br>[16:43] hook up your CloudBot to use this<br>[16:45] instead of the the built-in memory and I<br>[16:47] was surprised at how well this work.<br>[16:48] doesn't do like images or video or<br>[16:51] anything like that which I I hope it<br>[16:52] will eventually support. So I ideally I<br>[16:55] would just search like screenshot of uh<br>[16:59] Twitter conversation or something like<br>[17:01] that and it it would then pop up. But I<br>[17:04] feel like I'm on a pretty good like<br>[17:07] space now with Obsidian QMD. I have it<br>[17:11] running on a laptop over here. So I can<br>[17:13] just do it from my phone or I can um I<br>[17:16] can do it in the Obsidian app. I can<br>[17:18] message the bot. I can do it on my<br>[17:19] desktop. You know, I feel like it's in a<br>[17:21] really good spot now. So, that's my<br>[17:23] update on my second brain right now. And<br>[17:25] I'm I'll I'll update as I as I get<br>[17:28] better at it. Yeah, I do the same thing.<br>[17:30] I've been using Obsidian forever and<br>[17:32] ever. And I I like it so much more than<br>[17:34] Notion. I I get so annoyed with Notion<br>[17:37] every other day. If I could have a<br>[17:40] better real time kind like I would have<br>[17:43] no hesitation in dropping Notion. Um,<br>[17:45] now granted I I couldn't make that<br>[17:47] decision uh for the whole team because<br>[17:49] I'm sure there would be so many edge<br>[17:50] cases and bugs, but like for me<br>[17:52] personally, my personal use case, I love<br>[17:54] my Obsidian setup. And I have been doing<br>[17:56] the same thing. And I do think like<br>[17:58] OpenClaw is a or any kind of local agent<br>[18:01] whatever system is a good way to<br>[18:04] interact with Obsidian. One feature that<br>[18:06] I really like in um Obsidian, if you<br>[18:08] aren't using it, Wes, is the daily notes<br>[18:11] feature where it creates a new file<br>[18:14] every time you open Obsidian for that<br>[18:17] day.<br>[18:18] >> Okay?<br>[18:19] >> And that way, I just kind of tag<br>[18:21] everything and I just do brain dumps in<br>[18:23] those files. If I'm having one-on-one<br>[18:26] meetings, if I'm having meetings in<br>[18:27] general, something I need to take notes<br>[18:29] on, it pretty much always just goes as a<br>[18:31] tagged thing inside of the daily notes.<br>[18:33] And then obviously you could then if you<br>[18:36] wanted to use AI to whatever later. Uh<br>[18:39] but just having those tags in there<br>[18:42] makes it really easy for me to just use<br>[18:44] those uh daily notes as a dumping ground<br>[18:47] for stuff that I don't want a full-on<br>[18:49] markdown file for of everything. Uh I<br>[18:51] use a number of different Would you<br>[18:53] believe I actually made a custom theme<br>[18:55] for uh Obsidian West?<br>[18:56] >> I would. I I actually made a Cobalt 2<br>[18:58] one probably three or four years ago and<br>[19:01] I I was surprised. I when I when I came<br>[19:03] back to it, I was like, "Oh yeah, I made<br>[19:05] a theme for this." I like Googled Cobalt<br>[19:07] 2 Obsidian and I was like, "I wonder if<br>[19:08] anyone has done it." I did it.<br>[19:10] >> You did it. Well, maybe we should cuz I<br>[19:12] could go I could go all day on Obsidian.<br>[19:14] So, maybe we should have a full-on<br>[19:16] episode about that because I would love<br>[19:17] to share some of my favorite tips and<br>[19:19] tricks as well as like show off my setup<br>[19:21] a little bit.<br>[19:22] Yeah, I agree because there's so many<br>[19:25] more things I would like to fix about<br>[19:27] it. And then also like the sync thing.<br>[19:28] I'm using iCloud which is is way too<br>[19:31] slow. I want it to like I know they have<br>[19:33] a paid product, Obsidian Sync. So, we'll<br>[19:35] do we'll do an episode on it. So, let us<br>[19:37] know.<br>[19:37] >> There's a number of self-hosted.<br>[19:40] >> Yeah. Yeah.<br>[19:42] Yeah. They're not they're not easy to<br>[19:43] set up. I'll tell you that.<br>[19:45] >> I'll I don't mind that. Give me<br>[19:47] something that's hard to set up and and<br>[19:49] flaky.<br>[19:51] Sounds like my my thing to save four<br>[19:52] bucks a month.<br>[19:54] >> Yeah. Yeah. Oh, and if you want to see<br>[19:58] all of the errors in your application,<br>[20:00] you'll want to check out Sentry at<br>[20:02] centry.io/sax.<br>[20:05] You don't want a production application<br>[20:07] out there that well, you have no<br>[20:08] visibility into in case something is<br>[20:11] blowing up and you might not even know<br>[20:12] it. So, head on over to centry.io/sax.<br>[20:15] Again, we've been using this tool for a<br>[20:17] long time and it totally rules. All<br>[20:19] right.<br>[20:21] Next question here is from I just made<br>[20:23] this one up. Not really a question, but<br>[20:26] maybe a topic for discussion. Awesome<br>[20:29] podcast, by the way. Yeah, let's<br>[20:30] actually just let's discuss how awesome<br>[20:32] the podcast is, Wes. That's the<br>[20:34] discussion. Now, um I often get envious<br>[20:37] when you mention new JavaScript and CSS<br>[20:40] features and state that you can safely<br>[20:43] use them. I mean, sure, if you develop a<br>[20:46] site, which mostly devs use, and that's<br>[20:48] true, but if you work in the industry,<br>[20:50] bank insurance or whatever, you have to<br>[20:52] support older browsers as well. I'm not<br>[20:54] talking IE6, thank God. Uh, but for the<br>[20:58] example, older Safari versions would<br>[21:00] still make up a large amount of traffic.<br>[21:02] Yes, I will absolutely acknowledge that<br>[21:06] we are spoiled as hell over here. Uh,<br>[21:08] I'm not making anything that needs to be<br>[21:10] in that ecosystem.<br>[21:13] And because of that, I get to use the<br>[21:15] the latest and greatest, even the<br>[21:16] popover question earlier, right? Yeah,<br>[21:19] I'm absolutely<br>[21:21] aware of that. And I am sorry for anyone<br>[21:23] that has to support all the older stuff,<br>[21:25] but you know what? I spent most of my<br>[21:27] career supporting IE6 and IE5 and stuff.<br>[21:29] So,<br>[21:31] if you haven't had to support IE5 or IE4<br>[21:34] uh in your career, then uh this is this<br>[21:37] is the uh what you what you got to do<br>[21:39] now. But<br>[21:40] >> yeah, it's much better.<br>[21:42] It's much better. And granted, so many<br>[21:44] of these things like Popover has a great<br>[21:46] polyfill. Yeah.<br>[21:47] >> That you can use that polyfill. So many<br>[21:50] things do exist now that you can just<br>[21:52] polyfill them away. How do you feel<br>[21:54] about the current state of of this West?<br>[21:57] Because to me, we still have the concept<br>[22:00] of progressive enhancement of your users<br>[22:05] on older browsers should have a working<br>[22:08] experience. I mean you can you can make<br>[22:10] that experience nicer for your uh more<br>[22:12] modern users as well through progressive<br>[22:14] a lot of this stuff is you can write it<br>[22:17] in such a way where you fall back you<br>[22:21] progressively enhance um like one<br>[22:23] example is on the the mad CSS website<br>[22:27] there's like the navigation up at the<br>[22:29] top is like kind of these tickets um and<br>[22:31] I I used the new CSS feature corner<br>[22:35] shape<br>[22:36] >> scoop um which allows you to like cut<br>[22:38] the corners. Yeah, big fan. Only on<br>[22:41] Chrome and and Edge right now. Not in<br>[22:44] not in Safari, not in Firefox. And<br>[22:47] someone was giving me crap for that cuz<br>[22:49] like I was like it looks in my opinion<br>[22:52] it looks fine with just regular rounded<br>[22:55] corners on Safari. I ended up going back<br>[22:57] and using like a CSS mask and then just<br>[23:00] punching out the corners. It's not the<br>[23:02] exact same experience, but in my<br>[23:03] opinion, it works great. It looks good.<br>[23:06] It It looks good on all the browsers.<br>[23:07] and then most of our traffic is is going<br>[23:10] to be on like a Chromebased browser and<br>[23:12] and they're going to get the best<br>[23:13] experience. So, in my opinion, that's<br>[23:15] fine. I wrote it in such a way where you<br>[23:18] can just remove those at supports<br>[23:21] queries in your CSS eventually or you<br>[23:24] can throw a polyfill there in there. Not<br>[23:26] a big deal. Some of this other stuff,<br>[23:28] yeah, you simply just have to wait for<br>[23:30] for it to be supported in this. The<br>[23:33] probably the biggest one is<br>[23:36] Safari iPads because like people get an<br>[23:40] iPad and then they have them kicking<br>[23:42] around for like 10 years and and like<br>[23:46] they don't necessarily care to upgrade<br>[23:47] because it they have their email, they<br>[23:50] got their their Safari and they got<br>[23:51] their Netflix and there's a lot of<br>[23:53] people that are simply just happy with<br>[23:54] their iPad. Um and Apple doesn't update<br>[23:58] these old iPads. So you got old versions<br>[24:00] of Safari. like probably the biggest<br>[24:02] killer for all these new web standards<br>[24:04] things.<br>[24:05] >> Even not even just old iPads, iPads in<br>[24:07] general. My buddy Toeer who's on who's<br>[24:09] been on the show before, he said his<br>[24:11] like in main computer usage these days<br>[24:13] is iPad and then he's remoting into<br>[24:15] other things and it's just like oh<br>[24:18] that's that's great and I love I love<br>[24:21] the speed and and some things about the<br>[24:23] iPad but I could not live with Safari on<br>[24:28] the iPad as my main browser experience<br>[24:31] in 2026. Could not live that way.<br>[24:36] No, no. Simply how slow it is to copy<br>[24:39] and paste text is just I don't<br>[24:41] understand how people do that full time.<br>[24:43] But like the features supported on that<br>[24:46] Safari are are great. I was talking to<br>[24:48] people who said we have to support the<br>[24:50] last two major versions. Like that's<br>[24:53] their new mandate at their company. And<br>[24:55] with Safari now releasing a major<br>[24:58] version per year, that means they have<br>[25:00] to support like two-year-old browsers,<br>[25:04] which is kind of weird, but maybe maybe<br>[25:06] okay. You know, like this stuff, you<br>[25:08] can't have like rules for this. You<br>[25:10] really just have to like look at your<br>[25:12] stats for your traffic and then<br>[25:15] >> pipe that into your like<br>[25:17] >> can I use or or pipe that into your<br>[25:19] browser stats and say like are we<br>[25:21] allowed to to to use this new scoop<br>[25:24] feature or whatever or or do we need to<br>[25:26] wait until everybody catches up? But<br>[25:30] man, things are a lot better. Things are<br>[25:32] way better these days. We get a number<br>[25:34] of uh things coming in on Sentry of like<br>[25:37] this feature is not you know this API<br>[25:40] that we are using isn't supportive that<br>[25:42] that error results in a console error on<br>[25:45] our Sentry and then we just fix it. Uh<br>[25:48] we we wire up a polyfill or we whatever.<br>[25:50] So, if that's the type of thing that you<br>[25:52] want to have a handle on of what your<br>[25:55] users are actually using your your stuff<br>[25:57] on, man, Century is a great tool for<br>[25:59] that because not only that, you're<br>[26:00] getting to see what aspects of your app<br>[26:02] are slow, what aspects of your app have<br>[26:05] issues in general, what aspects of your<br>[26:08] app, and when you see these things, you<br>[26:10] can click and see what exactly that<br>[26:12] browser is. And maybe you're only<br>[26:13] getting one or two users with those<br>[26:15] issues and whatever. But, you know, it<br>[26:17] depends on what your tolerance is there.<br>[26:19] But yeah,<br>[26:20] >> some of the hardest bugs I've ever had<br>[26:22] to fix have been they show up on my<br>[26:24] Sentry and it just I just go like, "Oh,<br>[26:26] what? Like, where is this happening?<br>[26:28] Where could this possibly happening?"<br>[26:30] And you go in the sidebar and you say<br>[26:32] it's happening on<br>[26:33] >> iPads or it's happening in Safari, this<br>[26:36] weird version, which is really hard to<br>[26:38] run old versions of Safari. Um, if you<br>[26:41] have a Windows, you're out of luck. If<br>[26:43] you're on a Mac, there's no way to run<br>[26:44] old Safari. have to go and download you<br>[26:47] have to go download like an iOS emulator<br>[26:49] on Xcode that is an older version and<br>[26:52] luckily the versions of desktop Safari<br>[26:55] and iOS Safari are very very close um<br>[26:58] and that way you can replicate the bug<br>[27:01] and and go ahead and fix it. I will say<br>[27:03] that that root cause uh seer which is<br>[27:06] like Century's root cause analysis AI<br>[27:09] tool is so good at this stuff because<br>[27:12] when I have an issue and it's like an<br>[27:13] error and it's a weird error maybe<br>[27:15] something I haven't seen before and then<br>[27:17] I do the root cause analysis and it's<br>[27:19] like older versions of Safari have this<br>[27:21] issue I'm like okay that makes so much<br>[27:23] sense you know so shout out to Centry<br>[27:26] sentry.io/sintax io/sintax. Sign up, get<br>[27:28] two months for free. Yeah, this podcast<br>[27:30] is brought to you by Century, but that's<br>[27:32] on this whole thing's on like an ad, but<br>[27:34] legit uh this is a useful tool in this.<br>[27:37] >> It was an ad. So, but it was a good We<br>[27:41] should use it. You should use it. We are<br>[27:42] sorry. We should use it. We do use it. I<br>[27:44] use it. I've been using it for probably<br>[27:46] 10 years now. It's fantastic.<br>[27:48] >> Yeah. I will say uh we did get a<br>[27:50] question in our our inbox here that was<br>[27:53] like I don't know if you guys would do<br>[27:56] this because the episode might seem like<br>[27:58] an ad, but you should do an episode<br>[27:59] where you're detailing your Sentry<br>[28:01] setup. Folks, would you like to actually<br>[28:03] see that or would that feel too much<br>[28:05] like an ad? Because like Wes, I have<br>[28:07] been using Sentry for longer than I can<br>[28:09] remember at this point. I have a ton of<br>[28:12] projects on Sentry. I use all of the the<br>[28:14] tools and stuff like that. So, if that's<br>[28:16] actually something you'd be interested<br>[28:17] in, leave a comment below. If that feels<br>[28:19] too much like an ad, then we don't have<br>[28:20] to do that as well. Uh, you can always<br>[28:22] make a little side video on it or<br>[28:24] something on my personal channel. Next<br>[28:26] question from Ray Garza says, "What do<br>[28:28] you do if you run into a website that is<br>[28:30] visually bad or has severe accessibility<br>[28:32] issues? Um, this is not a one-off site.<br>[28:34] It's something I visit very often. Do<br>[28:36] you try and contact them or do you just<br>[28:39] ignore it?" Man, this this drives me<br>[28:43] nuts. There's a website that you have to<br>[28:44] go to, I don't know, six or seven times<br>[28:47] a day or or like I don't know, like you<br>[28:49] you have to log into your accounting or<br>[28:51] something like once every month. And<br>[28:53] there's just like these issues where<br>[28:55] that drive you absolutely nuts. In many<br>[28:58] cases,<br>[28:59] I will flip on a screen recorder and<br>[29:02] simply just show the the bug happening<br>[29:06] um or or show the accessibility. It's<br>[29:08] probably even bigger if it's an<br>[29:10] accessibility issue cuz that company can<br>[29:12] get in trouble. There's like people out<br>[29:14] there that will find websites that are<br>[29:17] not accessible um and then they will<br>[29:19] they will sue you. A lot of them are are<br>[29:21] well-meaning, but a lot of them are also<br>[29:23] like ambulance chasers as well. So<br>[29:25] there's there's a bit of an issue there<br>[29:26] if if your website is not accessible. So<br>[29:29] what would you do? Yeah, I flip on a<br>[29:30] screen recorder. I kind of like just<br>[29:31] detail it. I do this all the time for<br>[29:33] people's websites and I I I'll like<br>[29:35] usually preface it by saying like, "Hey,<br>[29:38] feel free to throw this out." Like, I'm<br>[29:40] not trying to be obnoxious. I don't need<br>[29:41] an update on it, but like if this is<br>[29:43] helpful for you, send this to your dev<br>[29:46] here. Here is a problem that I'm<br>[29:48] specifically running into it. And<br>[29:51] sometimes that is the best feedback for<br>[29:53] people because they're not using their<br>[29:55] own product in that way or they don't<br>[29:57] necessarily have those issues. And if<br>[29:59] you can just detail it nice and clearly<br>[30:01] and and speak in terms that the<br>[30:02] developer can do, it can be very helpful<br>[30:04] and you can just send that along.<br>[30:06] >> Yeah, I I I agree to this to some point<br>[30:10] and then other times you are going to be<br>[30:14] screaming into a void. I think it<br>[30:16] depends on what what the company is. We<br>[30:19] had a very fun rant section against the<br>[30:23] well I was ranting. Wes was just<br>[30:24] cracking up at the uh the awfulness of<br>[30:27] the Optimum RX website. And I can<br>[30:29] guarantee you if I were to attempt to<br>[30:32] catalog even one of their numerous<br>[30:34] thousands of issues on the Optimum RX<br>[30:36] website that they would not give two<br>[30:39] shits about it. So sometimes there is<br>[30:42] that, you know, you just you're not<br>[30:44] going to get any progress on there by<br>[30:47] making that. And it's just like uh I I<br>[30:51] would save my energy, but I would also<br>[30:53] take into stock which which companies do<br>[30:56] you think are actually attempting to<br>[30:58] make their product better and which ones<br>[31:00] are just uh pushing out garbage to you?<br>[31:03] This is this is something that I hope AI<br>[31:06] will actually fix is is just like<br>[31:08] listening to people complaining about<br>[31:11] their product and then being able to<br>[31:14] distill that down or possibly even<br>[31:16] fixing it in their codebase cuz<br>[31:18] sometimes it's just these little<br>[31:20] problems where like like one of them is<br>[31:22] I visit a website several times a week<br>[31:25] where my one password autofills but it<br>[31:28] doesn't trigger it until I put a cursor<br>[31:31] in there, hit a space and then backspace<br>[31:34] and then it goes ah your password is<br>[31:36] good. You may now click the button. I'm<br>[31:38] like I know but because you're listening<br>[31:40] for like a key up event<br>[31:42] >> and when I use a password manager it<br>[31:44] doesn't trigger a key up event. So now I<br>[31:46] have to like manually go and trigger a<br>[31:47] key up event. And this is so annoying.<br>[31:49] And like this is probably<br>[31:51] like a 10-second fix where you just<br>[31:53] listen for like an input event instead<br>[31:55] of a key up event additionally. And and<br>[31:58] then you could you can run your<br>[31:59] validations and check it all against.<br>[32:00] And like that would probably be a<br>[32:01] 10-second fix. The AI could probably by<br>[32:04] the time I've done this sendas, AI could<br>[32:05] have that fixed. And I am looking<br>[32:07] forward to that world where where this<br>[32:10] this happens.<br>[32:11] >> I'm going to be honest. If we die I you<br>[32:13] know right now if the craftsmen behind<br>[32:16] these apps aren't good enough to to<br>[32:19] crafts people behind these apps are not<br>[32:21] good enough to create them right now.<br>[32:24] What makes you think they are going to<br>[32:25] take two seconds to type into a chatbot<br>[32:27] and say<br>[32:28] >> they're not going to it's going to this<br>[32:30] is this is what Ben Ben's modem is. So<br>[32:32] Ben Vinegar used to be the manager of<br>[32:34] syntax. He is working on a startup<br>[32:36] called modem modem.dev and it's doing<br>[32:38] exactly this. It's it's listening to all<br>[32:42] of the sources of of feedback of of your<br>[32:44] users and it will say ah people are<br>[32:47] complaining that like password autofill<br>[32:50] needs like a key up event and then it<br>[32:52] would go to your codebase. Ah I see we<br>[32:54] can add an input event instead of a key<br>[32:56] up event and then ah here's a pull<br>[32:58] request for that type of thing. like for<br>[33:00] a dev at a large company, they would<br>[33:02] have to have a meeting and they would<br>[33:04] have to get approval and and they would<br>[33:06] have to like delegate and put story<br>[33:09] points behind it. And for them, it's<br>[33:10] just it's not worth it. You know, it's<br>[33:13] it's a 10-second fix, but probably three<br>[33:15] me three days of of fussing.<br>[33:18] >> I still think that would require<br>[33:19] somebody to care.<br>[33:21] >> It Well, I think I think a lot of these<br>[33:23] devs do care, but it's just like it's<br>[33:25] just so it's just too hard. It's too<br>[33:29] hard for for them to like care that<br>[33:31] much, you know?<br>[33:32] >> Yeah.<br>[33:32] >> And like they don't want to have to talk<br>[33:34] to a manager about input events.<br>[33:37] >> So, next one is effect. Effect, if you<br>[33:39] don't know, at effect. website is that's<br>[33:42] a library for working effectively in<br>[33:46] Typescript. It's intense. Effective. Oh,<br>[33:49] yeah. I didn't even I didn't do that on<br>[33:50] purpose. We've talked about effect a<br>[33:52] number of times on here. Uh it's one of<br>[33:54] those things where you look at it,<br>[33:55] you're like, "Huh, this this looks<br>[33:57] interesting, but it also looks like a<br>[33:58] lot." Uh so the question here is I've<br>[34:01] recently tried it out and it's been<br>[34:02] great. It really does show the power of<br>[34:04] the type system of Typescript, but I<br>[34:07] cannot deny the learning curve. Trying<br>[34:09] to evangelize this is probably what<br>[34:11] folks spreading the word about RxJS felt<br>[34:14] back in the day. But unlike RxJS, I<br>[34:17] actually see the value ad. Any thoughts?<br>[34:20] Um, effect is one of those things I look<br>[34:22] at about every two weeks and think,<br>[34:25] "Yeah, I should give this a try." And I<br>[34:27] I I think for me personally, effect<br>[34:30] becomes more interesting with AI and<br>[34:32] vibe coding than it does without it.<br>[34:34] Because I'm going to be honest, I don't<br>[34:36] want to write all this code to do this<br>[34:38] stuff. This is a lot of extra code to do<br>[34:40] this stuff. But it is one of those<br>[34:43] things that I think will be effective or<br>[34:47] would be effective for AI apps because<br>[34:50] there is Stop laughing every time I say<br>[34:52] effective. That's that's the Yeah, you<br>[34:54] cannot<br>[34:54] >> do a great job explaining it. Yeah.<br>[34:57] >> You think I'm not doing a great job<br>[34:58] explaining?<br>[34:59] >> No, I I mean you're you're saying it's<br>[35:01] effective.<br>[35:03] Go ahead.<br>[35:05] >> It helps you write code without bugs. It<br>[35:08] helps you write code that handles errors<br>[35:10] better, interruptions, async,<br>[35:12] synchronous code, composition. It but it<br>[35:14] is very Rustlike in its API. It is<br>[35:18] intense. There's a lot of extra stuff to<br>[35:20] do stuff that you're used to doing with<br>[35:22] less code in straight up TypeScript. And<br>[35:25] because of that, it feels daunting to<br>[35:28] write by hand for me personally. But as<br>[35:30] I've gotten more into AI coding, I have<br>[35:34] been swayed to say, "Let me let me take<br>[35:37] some time for this." The only thing that<br>[35:39] I the only reason I haven't is because<br>[35:41] it requires a lot of buy in and I don't<br>[35:45] have the time or the projects to deal<br>[35:49] with that buyin at this point in time in<br>[35:52] my life. like a lot of your like lower<br>[35:54] level business logic, concurrency, error<br>[35:57] handling, all of that stuff like that<br>[36:00] you've you have to buy in to effect at a<br>[36:02] very early level of your project. And<br>[36:05] I've I've also like go to effect.webite<br>[36:08] and like I understand it. I totally get<br>[36:10] it. It's the same thing with with RxJS<br>[36:12] as well. The people that that use it are<br>[36:14] just like this is the best thing ever.<br>[36:16] Uh we don't have as many bugs. This<br>[36:18] thing flows really well. Oh, there's<br>[36:19] great concurrency, amazing error<br>[36:21] handling, retrying,<br>[36:23] but it's just if you look at the code,<br>[36:26] it's just like I I don't I'm tired even<br>[36:30] just just looking at this this type of<br>[36:31] thing. And it it requires such a brain<br>[36:34] shift that I think the most regular<br>[36:36] developers are probably not willing to<br>[36:38] to take on.<br>[36:40] >> I have no doubt that it would be useful.<br>[36:43] I have no doubt. Yeah,<br>[36:45] >> that I would probably like it to some<br>[36:48] degree, but even like back when uh Redux<br>[36:53] was becoming the thing, it always just<br>[36:55] felt like, yeah, this is a lot of stuff<br>[36:56] to do what I'm trying to do. And uh that<br>[36:59] turns me off of it a bit, even though it<br>[37:02] is really neat.<br>[37:04] >> Null says, I'm an experienced Rails<br>[37:06] developer interesting building full<br>[37:08] stack apps within the JavaScript<br>[37:10] ecosystem. Since Rails is mature and<br>[37:12] standardizes conventions and all aspects<br>[37:14] of full stack application, I'm finding<br>[37:16] it challenging to know where to get<br>[37:18] started in the JavaScript ecosystem. For<br>[37:20] example, in the Ruby ecosystem, it's<br>[37:22] pretty much just Rails if you want to<br>[37:24] build a full stack app. However, in the<br>[37:26] JavaScript ecosystem, there are many<br>[37:28] options such as Nex, Tanstack, Remix,<br>[37:30] Redwood SDK, and Astro. Not only and<br>[37:33] like that that is only like the full<br>[37:36] stack like SPA framework you know like<br>[37:38] that's just a small part of our our<br>[37:40] JavaScript ecosystem. Not only that but<br>[37:43] the additional burden of having to<br>[37:44] choose between tools for example do I<br>[37:46] choose Prisma or Drizzle. What about<br>[37:48] authentication? There's OJS but it looks<br>[37:50] like better off is a successor. Um the<br>[37:53] list goes on and on and on. I recognize<br>[37:55] that each project and team will be<br>[37:57] different requirements and ship do what<br>[37:59] do I do? This is a very very very common<br>[38:03] complaint in the JavaScript land of like<br>[38:06] where is the rails of JavaScript and<br>[38:08] every time we say this everybody comes<br>[38:09] out and says<br>[38:11] >> you need to be using Nest.js JS or there<br>[38:15] are several other like things in our<br>[38:17] ecosystem that are tiptotail absolutely<br>[38:20] everything and I always ask well why are<br>[38:23] people not using that like like why<br>[38:25] don't people use that and it's because<br>[38:28] as a JavaScript ecosystem we prefer to<br>[38:31] pick and pull all of the different<br>[38:33] pieces together to to build our own<br>[38:37] stack which is sometimes great and and<br>[38:39] sometimes really frustrating. So, what<br>[38:41] what do you do in this situation, right?<br>[38:43] Prioritize stability. If this is a brand<br>[38:45] new thing that has not yet been totally<br>[38:48] figured out, stay away from it because<br>[38:50] like Scott will tell you, with zero<br>[38:53] sync, as amazing as zero sync is, it had<br>[38:56] what, two or three major API changes and<br>[38:58] it it's been been kind of hard to switch<br>[39:01] from one to another, right?<br>[39:02] >> Yeah. Yeah. Totally. and<br>[39:04] >> something that he you like though like<br>[39:06] that's not bad for you but it's if<br>[39:08] you're looking for something that is<br>[39:10] stable and long running<br>[39:12] >> probably<br>[39:12] >> no you're 100% right and I I am the<br>[39:15] worst person to give advice there on<br>[39:16] this type of thing because I I like<br>[39:19] totally am quicksotic on those those<br>[39:22] elements of it where I'm like that's no<br>[39:24] big deal the whole API just changed no<br>[39:26] big deal what's what's that a day's<br>[39:28] worth of work like that's not realistic<br>[39:30] or uh like<br>[39:32] >> so stability maintainability ility is it<br>[39:34] is it well-maintained, right? Like like<br>[39:35] where are we at with it? Is it standards<br>[39:37] based? This is the big one for the<br>[39:39] JavaScript ecosystem because so much of<br>[39:42] what we do will simply just work<br>[39:44] together because these things are built<br>[39:46] upon web standards. You know, request<br>[39:49] response, fetch, all of the standards in<br>[39:52] JavaScript. If these things are built<br>[39:53] together and built on a standard, the<br>[39:55] fact that you you built your API in in<br>[39:57] HANA and doesn't necessarily matter that<br>[40:00] much because 98% of your code will be<br>[40:04] movable to<br>[40:05] >> like a spelt kit server handler because<br>[40:08] they're all built on on these standards,<br>[40:10] right? So that to me is probably the the<br>[40:14] biggest thing here is that if I need to<br>[40:16] move, will I need to have a massive<br>[40:18] rewrite or will the fact that I just use<br>[40:21] web streams and and uploaded a file as<br>[40:23] multiart, will that just work right<br>[40:26] modern ability? Does this support the<br>[40:28] later features that I need? That's a<br>[40:29] good thing to ask yourself. And then<br>[40:30] like docs and and popularity. Is this<br>[40:33] project big enough that I will be able<br>[40:35] to to get help and AI others like my<br>[40:39] personal website is on on Wacku and I<br>[40:43] was upgrading it yesterday and and I hit<br>[40:45] a whole bunch of of problems with it and<br>[40:47] and I had open up bugs on the GitHub<br>[40:49] repo and and say like this is how it is<br>[40:51] and it's just like that framework is not<br>[40:53] as big as some of these other ones. If I<br>[40:55] had built that on on Nex or on Spelkit<br>[40:58] or something like that, I bet that I<br>[41:00] wouldn't have had those issues because<br>[41:01] somebody ran into it first or I would<br>[41:03] have been able to find like a GitHub<br>[41:05] thread where somebody else has hit it.<br>[41:07] But in this case, I'm like creating<br>[41:09] threads on Discord and and whatnot. And<br>[41:11] I'm okay with that, but I would probably<br>[41:12] not bet the farm on like an alpha<br>[41:16] version of some software for a larger<br>[41:19] company with a bigger team. Right.<br>[41:21] >> Totally. I I it's it's totally what what<br>[41:23] your your tolerance is there. Uh but<br>[41:26] also like not just your tolerance but<br>[41:28] your the practicality of it all. It is<br>[41:31] funny that uh like when we were we had<br>[41:34] an episode recently about Electron and a<br>[41:36] lot of the comments were like Electron<br>[41:39] sucks. Use this brand new thing or use<br>[41:41] Tori or use this or that. And like I<br>[41:44] I'll tell you one of the big downsides.<br>[41:47] You could tell this uh the feedback to<br>[41:48] that episode uh drove me nuts a little<br>[41:50] bit. But<br>[41:52] >> one of the things is the ecosystem<br>[41:54] there, right? The amount of times that I<br>[41:56] found things like um inapp payments or<br>[42:00] various like little little APIs that<br>[42:03] like weren't mature enough. Not because<br>[42:06] those systems are bad. In fact, I quite<br>[42:07] like Tori. Tori is not bad at all. It's<br>[42:09] it's great. But the ecosystem is so much<br>[42:12] more mature on electron that you have to<br>[42:16] look at that. That is a big component to<br>[42:18] it. Which is why I choose to use the<br>[42:20] most niche whatever things at all points<br>[42:23] in times on all my projects. So uh I<br>[42:25] will say I Wes I will you believe that I<br>[42:28] recently built an app with React.<br>[42:31] >> Whoa. How come? Are you coming back?<br>[42:35] >> No. Hell no. Uh because I I wanted to<br>[42:38] use Remotion. That's why. And also I'm<br>[42:41] not writing the code. This is a vibe<br>[42:42] coded thing. So I don't actually have to<br>[42:44] look at the React code. So but I have<br>[42:46] that's the first one I' I've touched and<br>[42:48] >> yeah,<br>[42:48] >> woof.<br>[42:49] >> But like that's another example as well.<br>[42:52] It's like if you want to use Remotion or<br>[42:53] you want to use like React Native,<br>[42:56] right?<br>[42:57] >> There's so many use cases for or or<br>[42:59] tools that are simply only out there for<br>[43:01] React. meaning that like yeah like React<br>[43:04] is by far not the best choice<br>[43:06] >> for this thing if if you're looking at<br>[43:08] if you're looking at it from a<br>[43:09] subjective point of view but if you're<br>[43:11] looking at it in terms of like docs and<br>[43:13] and libraries and uh other people that<br>[43:15] have done things and and portability<br>[43:17] from like oh all a sudden I want my<br>[43:19] components to to be in MCP server wow<br>[43:22] somebody's already made something for<br>[43:24] React components and it it just works.<br>[43:27] It pains me to admit that, but I Yeah,<br>[43:29] that's how you know I'm 40 years old<br>[43:31] now, Wes, is I'm starting to make a<br>[43:33] sensible choices.<br>[43:38] >> Oh, man. All right, next question from<br>[43:40] Sam across the pond. With modern CSS<br>[43:43] features like grid, flexbox, and<br>[43:45] container queries becoming widely<br>[43:46] supported, I'm curious. What do you<br>[43:48] think about the traditional column grid<br>[43:50] frameworks like Bootstrap or Bulma<br>[43:53] today? Man, this seems like, man, I<br>[43:56] haven't heard of Bootstrap in in a long<br>[43:58] time. Do you ever reach for a framework<br>[44:01] like that when you want a quick<br>[44:02] responsive layout, or do you generally<br>[44:04] find them unnecessary now that native<br>[44:06] CSS handles a layout so well? Are they<br>[44:08] still relevant for certain teams or<br>[44:10] projects are mostly redundant? At this<br>[44:12] point, I would say in most cases, your<br>[44:16] use of a layout framework, meaning that<br>[44:19] like um different types of layouts,<br>[44:22] columns, things like that, not<br>[44:23] necessarily just like like component<br>[44:25] component frameworks are are bigger than<br>[44:27] ever can simply be replaced by a couple<br>[44:31] classes that that you add on to<br>[44:33] something that are are common for<br>[44:34] different layouts. Like for example, the<br>[44:36] syntax website, I had to throw something<br>[44:38] on there the other day and I needed the<br>[44:41] div to be it was a banner on the top of<br>[44:44] it, right? And I wanted the banner to<br>[44:45] span all the way across and then I<br>[44:46] wanted the contents of the banner to be<br>[44:48] the same width of of the actual website,<br>[44:50] right? And what I did is I just went<br>[44:52] into one of our existing components and<br>[44:54] I just found the the classes that you<br>[44:56] just have to add to these things and<br>[44:58] then it just snapped directly into place<br>[45:02] with the grid. There's no need for a<br>[45:05] massive layout framework. When CSS grid<br>[45:07] first came out, there was tons of people<br>[45:10] trying to build some sort of like<br>[45:12] beautiful grid system that will work<br>[45:14] with it. And the reality is that the<br>[45:16] straight up CSS APIs and a couple<br>[45:19] utility classes are more than enough for<br>[45:21] most cases. Yeah, I I built a grid<br>[45:24] system, believe it or not, uh for CSS<br>[45:27] grid, and I found it to be a tremendous<br>[45:30] pain uh to go back to working in a grid<br>[45:33] system. Not because the code was bad or<br>[45:36] anything like that or the not like CSS<br>[45:38] grid wasn't a good tool for that. It was<br>[45:41] like this just isn't how I work anymore.<br>[45:43] It's just not like throwing something on<br>[45:46] a grid call and stuff. It just felt like<br>[45:48] way less flexible. You know, I've been<br>[45:51] working on uh my graffiti CSS for a<br>[45:53] little while, Wes. And I have recent<br>[45:57] like this is how I I work. I have<br>[45:59] different layouts, layout, sidebar,<br>[46:01] layout wide, layout readable, split,<br>[46:03] whatever. And this is mostly just like<br>[46:05] single classes that then can be composed<br>[46:08] into like full-on classic layouts like a<br>[46:12] appshell or something like that. And<br>[46:14] like most of the stuff that I I'm I'm<br>[46:16] doing is like a single class or two to<br>[46:19] do this. And so just yesterday I was<br>[46:21] like what if I I<br>[46:24] started to see what kind of pages I<br>[46:27] could implement. So I started building<br>[46:28] out a bunch of pages and just to see<br>[46:32] where are the gaps in this library<br>[46:35] because I use this tool for all kinds of<br>[46:37] things. So, it's like, all right, let me<br>[46:38] try to build a landing page without<br>[46:40] writing any CSS with just classes. And<br>[46:43] like unlike and and not to slam on<br>[46:45] Tailwind, unlike Tailwind, you're not<br>[46:47] using eight classes. You're using like<br>[46:48] one class or two classes for most of<br>[46:50] this stuff. And you can see like it's<br>[46:53] not perfect. If you're looking at this<br>[46:54] on video, it's absolutely not perfect,<br>[46:56] but it's like unveiling where the gaps<br>[46:58] are in this library for me. But these<br>[47:01] are all exactly that. These are all<br>[47:03] either container queries or or media<br>[47:05] queries based anything. This is exactly<br>[47:08] that uh using just a handful of classes.<br>[47:12] And to me, this is the way this is the<br>[47:14] way that I'm working. Not just because<br>[47:17] this is my library, but because I'm<br>[47:20] building this library because this is<br>[47:22] the way that I like to work, right? So,<br>[47:24] >> um that's where I'm at right now. And I<br>[47:27] agree fully with what you what you said.<br>[47:29] >> Yeah. Couple reusable classes. No need<br>[47:32] to npm install something. It's it's even<br>[47:34] better when they're just like directly<br>[47:36] in your codebase so that you can find<br>[47:40] >> totally<br>[47:40] >> like where the code is actually written,<br>[47:42] you know.<br>[47:42] >> I would love to do an episode on like<br>[47:44] the 8020 here because there's a there<br>[47:46] are a handful of like classes layout<br>[47:48] classes like I love a stack uh which is<br>[47:50] like a concept that I've seen a little<br>[47:52] bit like a stack which is just a<br>[47:53] vertical display flex with a gap with a<br>[47:56] margin zero on the children. Like<br>[47:59] there's a handful of classes I get a lot<br>[48:01] of value out. So maybe we can spend some<br>[48:03] time in another episode going deep on<br>[48:05] what those 8020 classes are in terms of<br>[48:08] stuff that could actually make your life<br>[48:10] a little bit better.<br>[48:10] >> And even then I think in that case it's<br>[48:12] just a a copy paste throw it in not I<br>[48:16] don't think you need some external thing<br>[48:18] like even if it's something that someone<br>[48:20] has written you know you copy paste your<br>[48:21] CSS normalize and then you throw in your<br>[48:24] your card you throw in your stack all<br>[48:26] your the common things that you need.<br>[48:28] Well, uh, funny that you should say<br>[48:30] that, Wes. I do have a button on<br>[48:32] graffiti that is literally just copy and<br>[48:34] paste this into your CSS. There you go.<br>[48:37] Because that's how I like to work as<br>[48:39] well. Also, uh, this isn't mean to be a<br>[48:41] advertisement or anything, but the whole<br>[48:43] thing is because it's built with CSS<br>[48:45] variables, Wes, I built a theme picker<br>[48:47] where you can change the full like theme<br>[48:50] on this really easily. And even as far<br>[48:53] as like the the fonts and the type<br>[48:56] scale, like if you if the type scale is<br>[48:58] too big for you or whatever, if you want<br>[49:00] it giant, you can have a larger type<br>[49:03] scale. You can make all of the corners<br>[49:06] square if you want square corners for<br>[49:07] everything. And this is like what you do<br>[49:11] with this is you export the theme and<br>[49:14] it's just here are your CSS variables.<br>[49:16] That's it. You just copy and paste the<br>[49:17] overrides. And if people are watching<br>[49:20] this, you can change like massive<br>[49:22] amounts of this library and it's like 10<br>[49:24] CSS variables, maybe like 12, 15 CSS<br>[49:28] variables that you're just overriding on<br>[49:29] top of the system. So I think I'm<br>[49:31] finally getting there with this library.<br>[49:33] I think it is like just looking at this<br>[49:35] to me it's like yeah, I think this is is<br>[49:38] starting to hit the places that I want<br>[49:39] it to hit. Right.<br>[49:41] >> Yeah, it's beautiful. What is it?<br>[49:43] Graffiti-Ui.com.<br>[49:45] You want to check it out?<br>[49:46] >> Yeah, we'll link that up. And I'm I'm<br>[49:48] shipping some of these uh theme variable<br>[49:51] stuff ASAP, so we'll be up by the time<br>[49:53] you're hearing this. All right, let's<br>[49:54] move into the next section, which is<br>[49:56] sick picks and shameless plugs. I'm<br>[49:59] going to sick pick something that I've<br>[50:01] bought probably four times now. And this<br>[50:03] is a power bar with a couple USB plugs<br>[50:09] in it as well. So, all of my kids have I<br>[50:13] don't know, they have like a light and<br>[50:14] they have their yo-yoto that they need<br>[50:16] to charge and whatnot and like you end<br>[50:19] up with this just like there's too many<br>[50:21] things. My wife will unplug something<br>[50:23] cuz they need to plug something else in<br>[50:24] and that drives me crazy or like you've<br>[50:27] got like all these crappy little<br>[50:29] adapters plugged in and then they fall<br>[50:31] out. So, I several times I've bought<br>[50:33] this uh power bar where it's got a nice<br>[50:36] braided cord on it. It's got six or<br>[50:38] seven different plugs and then it has I<br>[50:40] don't know there's different versions of<br>[50:42] them but there's there's between four<br>[50:44] and eight USB things and they're not the<br>[50:46] fastest charging things which is totally<br>[50:48] fine. I don't need like fast charging<br>[50:50] for my kids yoto or something like that<br>[50:52] but you need to be able to<br>[50:53] >> deal<br>[50:54] >> leave the thing plugged in for some<br>[50:56] amount of time and and have it in there<br>[50:58] and these things are fantastic. So I'll<br>[51:00] link them up. There's it's just one of<br>[51:01] these silly Amazon brands called Maso or<br>[51:05] whatever, but they have been awesome.<br>[51:08] And my favorite thing about it is that<br>[51:09] they have flush plugs. So that I don't<br>[51:13] know, kid kids are so rough on plugs and<br>[51:15] they always just bang them and they fall<br>[51:17] out. And like<br>[51:19] >> I'll give it I'll give you one thing<br>[51:20] year up the North American plugs are<br>[51:23] crazy dangerous. the fact that they like<br>[51:27] they like like come out of the outlet<br>[51:28] partially and then they closed.<br>[51:31] >> Yeah.<br>[51:32] >> Yeah.<br>[51:33] >> Yeah. Good. Good. Good pick.<br>[51:35] >> I'm going to sick pick a capture card. I<br>[51:38] can't show you because it's plugged in.<br>[51:40] Uh but I was using the cam link and like<br>[51:43] Wes, I was having some issues. Now I<br>[51:44] think your cam link is actually fine.<br>[51:47] You said now what?<br>[51:49] >> Well, I haven't used my cam link in in<br>[51:50] probably three years. Um, yeah,<br>[51:53] >> but I I still have it, but it drives me<br>[51:55] nuts that it's like this little USB<br>[51:57] thing that just I get like the plugs. It<br>[51:59] hangs out all the time. So, I moved to<br>[52:01] the like the live streamer 4K many years<br>[52:04] ago and it's been been fantastic.<br>[52:07] >> Yeah. So, you had told me that you had<br>[52:09] this Aver Media Live streamer cap 4K,<br>[52:13] which is what you just mentioned, and<br>[52:14] it's 99 bucks and it looks kind of cheap<br>[52:18] in a way. doesn't look like as as<br>[52:21] streamlined as the the Cam Link, but I<br>[52:23] got to say this thing has been rock<br>[52:25] solid for me. I was having like I was<br>[52:27] having like three weeks worth of uh<br>[52:29] video issues where my my cam was not<br>[52:31] connecting reliably and I was just<br>[52:34] getting really frustrated with it. So,<br>[52:36] basically, this takes an HDMI in and uh<br>[52:39] goes USB out so that way you can bring<br>[52:41] in anything HDMI as a camera input into<br>[52:44] your computer. Again, we use this for<br>[52:46] our cameras. And I gotta say, it's been<br>[52:49] so nice not to have to think about this<br>[52:51] thing. I hated having to buy a new one,<br>[52:53] but like I do this for a living and it<br>[52:55] was getting so frustrating to come in<br>[52:57] and having like having to unplug and<br>[52:58] plug back in the cam link every other<br>[53:00] day and being like<br>[53:02] >> I've always unplugged and plugged just<br>[53:03] to make it work. And I've not done that<br>[53:06] with this thing<br>[53:07] >> since I got it a couple years ago.<br>[53:09] >> I haven't had to do it either. Yeah,<br>[53:10] it's amazing. So check it out. A media<br>[53:12] again. I don't I don't know if this is<br>[53:14] just like one of those cheapo brands or<br>[53:16] whatever, but<br>[53:17] >> not Oh, no, it's not. Let me tell you,<br>[53:19] this is a like the I have a few of the<br>[53:23] like crappy knockoff ones on that you<br>[53:27] can just get on Amazon for like 11 bucks<br>[53:29] or whatever. And the quality that comes<br>[53:31] off of those is not the same. Like the<br>[53:33] the colors are off. It skips frames or<br>[53:36] whatever. Like you actually do need like<br>[53:38] a good thing that has a chip in it. So,<br>[53:41] Aver Media is a like a very reputable<br>[53:44] company, very similar to Elgato, and<br>[53:46] they have like a huge suite. They they<br>[53:48] have webcams, they've got microphones,<br>[53:49] they've got like those boards and<br>[53:51] whatever and capture cards. They they<br>[53:53] they came popular in the like gaming. I<br>[53:56] have another one at the cottage that you<br>[53:58] can put in like an SD card in and it<br>[54:00] will record to the SD card and then also<br>[54:03] pass through, which is what gamers use<br>[54:05] to like record their footage in in HD<br>[54:08] and then pass through and stream as<br>[54:09] well. So they they're big in the like<br>[54:11] capture card gaming industry as well.<br>[54:13] But this this thing the best part about<br>[54:15] it is the fact that it's USBC and<br>[54:18] >> yeah,<br>[54:18] >> it can just it can live anywhere you<br>[54:21] want it to go. So it's a it's a great<br>[54:23] company.<br>[54:24] >> Okay, cool. Yeah, I wasn't familiar with<br>[54:26] them until you sent me this and yeah,<br>[54:28] I've been very very very pleasantly<br>[54:30] surprised by this. So uh shout out to<br>[54:32] Aver Media. Good stuff. I do have a<br>[54:34] shameless plug, Wes. We haven't been<br>[54:36] doing shameless plugs on the show, but I<br>[54:39] have a shameless plug. Uh, I mentioned a<br>[54:41] couple episodes ago that my wife was<br>[54:44] starting a podcast at phases.fm,<br>[54:47] but I'd like to officially shamelessly<br>[54:50] plug this because March 4th, our first<br>[54:53] episode was released, our very first<br>[54:56] episode. We had a preview episode up. We<br>[54:58] have uh a website. We have a YouTube<br>[55:01] channel. Uh so if you're the type of<br>[55:03] people who want to watch on YouTube, um<br>[55:05] we're not doing video on YouTube just<br>[55:07] yet, but um we will at some point here.<br>[55:09] We're we're just trying to get it off<br>[55:10] the ground and running and get some uh<br>[55:12] practice, but it's everywhere that you<br>[55:14] want to uh find your podcast. Phases is<br>[55:17] a parenting podcast with my wife uh Dr.<br>[55:20] Tinsky. She's a doctor of educational<br>[55:22] psychology. She's worked in schools as a<br>[55:25] school psych. She's uh done uh testing.<br>[55:28] She's worked with parents. She's uh ran<br>[55:30] a a testing center where she tested for<br>[55:33] learning disabilities and autism and<br>[55:35] things like that. And she even taught a<br>[55:37] master's level course on human<br>[55:38] development. So basically, uh her and I<br>[55:42] are taking a really light-hearted<br>[55:44] approach to talking about parenting in<br>[55:47] regards to like a scientific way. So<br>[55:49] super super light, like super fun, not<br>[55:52] heavy, super non-judgmental. and I get<br>[55:55] to play the role of the uh the person<br>[55:58] who doesn't know anything and I<br>[56:00] basically just get to ask her a lot of<br>[56:01] questions and she gets to share her<br>[56:03] expertise. So if you're a parent and<br>[56:05] you're interested in in that type of<br>[56:06] thing where you're going to learn some<br>[56:08] stuff, low judgment, check us out on<br>[56:10] YouTube at phases FM or phases.fm<br>[56:14] uh as a website or any of your podcast<br>[56:16] players. Although I do find Wes, man, I<br>[56:19] don't know if like search lags on these<br>[56:20] things or what these days. I was just<br>[56:22] going to say I was looking for it on<br>[56:24] Spotify and I couldn't find it until I<br>[56:26] typed in Faz's Dr. Tinsky.<br>[56:29] >> It's weird. And I can't find it at all<br>[56:31] on on Pocketcast unless I click the<br>[56:33] listen on Pocketcast. Faz Pocketcast got<br>[56:35] the worst search. I don't know what<br>[56:37] they're doing.<br>[56:37] >> I bet these companies are getting<br>[56:41] slammed with AI generated podcasts. they<br>[56:44] have to like like say, "Okay, well,<br>[56:47] we're gonna wait and see if people<br>[56:48] actually subscribe to this thing and are<br>[56:50] actually listening to it because<br>[56:51] otherwise just these random podcasts are<br>[56:54] showing up." Like, I would love to talk<br>[56:56] to somebody who works at Spotify or<br>[56:59] Apple Music or whatever.<br>[57:00] >> And like,<br>[57:01] >> show me what you're getting. you're<br>[57:04] you're getting like a 100 thousand AI<br>[57:07] albums submitted every single day or<br>[57:09] like like how are they you know that<br>[57:11] they're probably code red trying to<br>[57:12] fight the stuff right now or figure out<br>[57:14] even what to do with it. Spotify had to<br>[57:17] turn off their developer API. I think<br>[57:19] they're reworking it right now. I don't<br>[57:21] know if it's back yet, but I was I was<br>[57:23] just trying to create a developer<br>[57:24] account for my open claw cuz I wanted to<br>[57:27] connect it to my open claw but it was<br>[57:29] like oh our API is closed. Yeah, I I<br>[57:32] would imagine that's that's the case for<br>[57:34] sure.<br>[57:34] >> Yeah. Oh, I guarantee you that's why,<br>[57:36] man. Can't have anything nice. Can't<br>[57:38] have But also by there's so much like<br>[57:41] I've been using I use use Spotify for<br>[57:43] listening to music and the amount of<br>[57:46] >> like AI music that pops in. It makes me<br>[57:50] so mad cuz I hear it immediately. I<br>[57:53] immediately hear it and then I like do a<br>[57:55] search for this band and then you find<br>[57:58] all these like fake Tik Toks of these<br>[58:01] that they're they're cranking out, you<br>[58:02] know, and then I commented AI slop on<br>[58:05] them and they delete your comment right<br>[58:06] away. Just like<br>[58:08] >> AI slop,<br>[58:09] >> brutal, brutal, brutal.<br>[58:12] >> Yes.<br>[58:12] >> I don't know. But I also have a theory<br>[58:14] that Spotify is behind a lot of this AI<br>[58:16] music cuz why pay humans for music when<br>[58:19] you can just generate it yourself? Wes<br>[58:22] with the uh busting out the tin foil and<br>[58:25] uh Yeah, I love it. All right. Well,<br>[58:26] thank you so much for joining us.<br>[58:28] >> Peace.<br>[58:28] >> Peace.
<!-- deep-read:sections end -->
๐ **Full text:** ![[Full Document Contents/Articles/Does Code Quality Matter Anymore|Does Code Quality Matter Anymore?, YouTube]]
## Highlights
- uh Chrome on Android doesn't navigator vibrate API in the web that clear would have made way too much sense to use >> would have made way too much sense and of course it's on uh Chrome and Android because they actually implement the web APIs that be great. >> Yeah. >> Next question. Krasmir says code quality I hear more and more that people saying that if AI is reading and writing the code we may not need to make it so well organized. So far we are making sure that the code is well written so that we ([View Highlight](https://read.readwise.io/read/01kker47p34y96qfzwnwtb4r8n))
- Tags: ๐ป ai highlighted
- like duplicating code over and over again. You know like like one of them that that gets me all the time is that you have AI generate some CSS and it puts like a font size and a line height on absolutely everything. I'm like you you wrote that nine times >> over and over again. And some people are saying like it doesn't matter like it will update those nine places where where you have the line height. And I don't think that's that's a very good good way to go about it. I think eventually these these things are going ([View Highlight](https://read.readwise.io/read/01kker47pwxrw98bxfbvner20q))
- Tags: ๐ป ai highlighted
- might as well just be, you know, hitting enter on a keyboard and and you know, slopping it out. So, >> not much there. And like like one more thing to say about that is I was thinking the other day how we've gone from AI is good at making stuff from scratch but it's not that good in like existing code bases. But I'm starting to feel the opposite. um where like of course you can >> spit something out and it'll it'll make something from scratch, but >> like I was putting it in my course ([View Highlight](https://read.readwise.io/read/01kker47r89c53ksrxz5yw47yw))
- Tags: ๐ป ai highlighted
- >> I'm not into that, right? I just need like a good system that that will help me." So, it it moved all of that stuff over to an Obsidian vault, which I was very happy with. And then I also I hooked it up to my OpenCloud bot. There's a whole Obsidian CLI that you can use now. And I've just been like, that's the perfect interface for I need to remember this at one point. And I'll just type it into like make an Obsidian note that logs X, Y, and Z. And one thing that that I always do is is clothing sizes. You know, you you like, ([View Highlight](https://read.readwise.io/read/01kker47ser86bd42yp9y0xzyb))
- Tags: ๐ป ai highlighted
- I I was surprised. I when I when I came back to it, I was like, "Oh yeah, I made a theme for this." I like Googled Cobalt 2 Obsidian and I was like, "I wonder if anyone has done it." I did it. >> You did it. Well, maybe we should cuz I could go I could go all day on Obsidian. So, maybe we should have a full-on episode about that because I would love to share some of my favorite tips and tricks as well as like show off my setup a little bit. Yeah, I agree because there's so many more things I would like to fix about it. And then also like the sync thing. I'm using iCloud which is is way too ([View Highlight](https://read.readwise.io/read/01kker47vbendgyn5hbnch8cvm))
- Tags: ๐ป ai highlighted
- actually just let's discuss how awesome the podcast is, Wes. That's the discussion. Now, um I often get envious when you mention new JavaScript and CSS features and state that you can safely use them. I mean, sure, if you develop a site, which mostly devs use, and that's true, but if you work in the industry, bank insurance or whatever, you have to support older browsers as well. I'm not talking IE6, thank God. Uh, but for the example, older Safari versions would ([View Highlight](https://read.readwise.io/read/01kker47zqrtwty90c1dr4fn31))
- Tags: ๐ป ai highlighted
- very early level of your project. And I've I've also like go to effect.webite and like I understand it. I totally get it. It's the same thing with with RxJS as well. The people that that use it are just like this is the best thing ever. Uh we don't have as many bugs. This thing flows really well. Oh, there's great concurrency, amazing error handling, retrying, but it's just if you look at the code, it's just like I I don't I'm tired even ([View Highlight](https://read.readwise.io/read/01kker4847x8gvgke9k594ra1h))
- Tags: ๐ป ai highlighted
- just just looking at this this type of thing. And it it requires such a brain shift that I think the most regular developers are probably not willing to to take on. >> I have no doubt that it would be useful. I have no doubt. Yeah, >> that I would probably like it to some degree, but even like back when uh Redux was becoming the thing, it always just felt like, yeah, this is a lot of stuff to do what I'm trying to do. And uh that turns me off of it a bit, even though it ([View Highlight](https://read.readwise.io/read/01kker488234x2jbsrv8j16kjx))
- Tags: ๐ป ai highlighted
- like docs and and popularity. Is this project big enough that I will be able to to get help and AI others like my personal website is on on Wacku and I was upgrading it yesterday and and I hit a whole bunch of of problems with it and and I had open up bugs on the GitHub repo and and say like this is how it is and it's just like that framework is not as big as some of these other ones. If I had built that on on Nex or on Spelkit or something like that, I bet that I ([View Highlight](https://read.readwise.io/read/01kker48gs4xthm6jgcq9m4mvt))
- Tags: ๐ป ai highlighted
- to npm install something. It's it's even better when they're just like directly in your codebase so that you can find >> totally >> like where the code is actually written, you know. >> I would love to do an episode on like the 8020 here because there's a there are a handful of like classes layout classes like I love a stack uh which is like a concept that I've seen a little bit like a stack which is just a vertical display flex with a gap with a margin zero on the children. Like there's a handful of classes I get a lot ([View Highlight](https://read.readwise.io/read/01kker490y381bbkr94ar9zmy8))
- Tags: ๐ป ai highlighted
## New Highlights added 2026-03-16 at 1:35 PM
- uh Chrome on Android doesn't navigator vibrate API in the web that clear would have made way too much sense to use >> would have made way too much sense and of course it's on uh Chrome and Android because they actually implement the web APIs that be great. >> Yeah. >> Next question. Krasmir says code quality I hear more and more that people saying that if AI is reading and writing the code we may not need to make it so well organized. So far we are making sure that the code is well written so that we ([View Highlight](https://read.readwise.io/read/01kkvv9hrk9901tze7hr68bpg7))
- Tags: ๐ป ai highlighted
- like duplicating code over and over again. You know like like one of them that that gets me all the time is that you have AI generate some CSS and it puts like a font size and a line height on absolutely everything. I'm like you you wrote that nine times >> over and over again. And some people are saying like it doesn't matter like it will update those nine places where where you have the line height. And I don't think that's that's a very good good way to go about it. I think eventually these these things are going ([View Highlight](https://read.readwise.io/read/01kkvv9hse0khkad0bxyxyhq30))
- Tags: ๐ป ai highlighted
- might as well just be, you know, hitting enter on a keyboard and and you know, slopping it out. So, >> not much there. And like like one more thing to say about that is I was thinking the other day how we've gone from AI is good at making stuff from scratch but it's not that good in like existing code bases. But I'm starting to feel the opposite. um where like of course you can >> spit something out and it'll it'll make something from scratch, but >> like I was putting it in my course ([View Highlight](https://read.readwise.io/read/01kkvv9htgmchvcn6v9h8xgjge))
- Tags: ๐ป ai highlighted
- >> I'm not into that, right? I just need like a good system that that will help me." So, it it moved all of that stuff over to an Obsidian vault, which I was very happy with. And then I also I hooked it up to my OpenCloud bot. There's a whole Obsidian CLI that you can use now. And I've just been like, that's the perfect interface for I need to remember this at one point. And I'll just type it into like make an Obsidian note that logs X, Y, and Z. And one thing that that I always do is is clothing sizes. You know, you you like, ([View Highlight](https://read.readwise.io/read/01kkvv9hvq43rbsr3g51zjyyqd))
- Tags: ๐ป ai highlighted
- I I was surprised. I when I when I came back to it, I was like, "Oh yeah, I made a theme for this." I like Googled Cobalt 2 Obsidian and I was like, "I wonder if anyone has done it." I did it. >> You did it. Well, maybe we should cuz I could go I could go all day on Obsidian. So, maybe we should have a full-on episode about that because I would love to share some of my favorite tips and tricks as well as like show off my setup a little bit. Yeah, I agree because there's so many more things I would like to fix about it. And then also like the sync thing. I'm using iCloud which is is way too ([View Highlight](https://read.readwise.io/read/01kkvv9hxt2njv77scv3n4je2x))
- Tags: ๐ป ai highlighted
- actually just let's discuss how awesome the podcast is, Wes. That's the discussion. Now, um I often get envious when you mention new JavaScript and CSS features and state that you can safely use them. I mean, sure, if you develop a site, which mostly devs use, and that's true, but if you work in the industry, bank insurance or whatever, you have to support older browsers as well. I'm not talking IE6, thank God. Uh, but for the example, older Safari versions would ([View Highlight](https://read.readwise.io/read/01kkvv9j2844jqaha8sfcy9abw))
- Tags: ๐ป ai highlighted
- very early level of your project. And I've I've also like go to effect.webite and like I understand it. I totally get it. It's the same thing with with RxJS as well. The people that that use it are just like this is the best thing ever. Uh we don't have as many bugs. This thing flows really well. Oh, there's great concurrency, amazing error handling, retrying, but it's just if you look at the code, it's just like I I don't I'm tired even ([View Highlight](https://read.readwise.io/read/01kkvv9j6r8jmqn660tbcw9fhc))
- Tags: ๐ป ai highlighted
- just just looking at this this type of thing. And it it requires such a brain shift that I think the most regular developers are probably not willing to to take on. >> I have no doubt that it would be useful. I have no doubt. Yeah, >> that I would probably like it to some degree, but even like back when uh Redux was becoming the thing, it always just felt like, yeah, this is a lot of stuff to do what I'm trying to do. And uh that turns me off of it a bit, even though it ([View Highlight](https://read.readwise.io/read/01kkvv9jafgdt7rn6agah4psv1))
- Tags: ๐ป ai highlighted
- like docs and and popularity. Is this project big enough that I will be able to to get help and AI others like my personal website is on on Wacku and I was upgrading it yesterday and and I hit a whole bunch of of problems with it and and I had open up bugs on the GitHub repo and and say like this is how it is and it's just like that framework is not as big as some of these other ones. If I had built that on on Nex or on Spelkit or something like that, I bet that I ([View Highlight](https://read.readwise.io/read/01kkvv9jk6q0mbhrmqx3brgbpe))
- Tags: ๐ป ai highlighted
- to npm install something. It's it's even better when they're just like directly in your codebase so that you can find >> totally >> like where the code is actually written, you know. >> I would love to do an episode on like the 8020 here because there's a there are a handful of like classes layout classes like I love a stack uh which is like a concept that I've seen a little bit like a stack which is just a vertical display flex with a gap with a margin zero on the children. Like there's a handful of classes I get a lot ([View Highlight](https://read.readwise.io/read/01kkvv9k4bjt5hsdvxnpm6bkfj))
- Tags: ๐ป ai highlighted