AI Slop Metrics, Componentry, and the Hidden Cost of Convenience
Published on 16.04.2026
37,000 Lines of Slop
TLDR: Y Combinator CEO Gary Tan claimed to write 37,000 lines of code per day using AI tools. An audit of his own blog suggests the quality tells a different story entirely.
Summary: There is something deeply uncomfortable about watching a prominent tech leader treat line count as a proxy for productivity, and this piece goes after that idea with a scalpel. When someone audits the blog that supposedly came from all that AI output, what they find is 300 kilobytes of test files shipped to every single visitor, uncompressed images weighing multiple megabytes, and a rich text editor loaded for pages that don't need one. The productivity claim dissolves fast when you measure what was actually delivered to users.
The article doesn't just pick on Gary Tan personally. It's pointing at a broader pattern where AI coding tools produce volume without judgment. The AI doesn't know what not to include. It doesn't care that a static blog doesn't need a test suite in the bundle, or that an image should be compressed before it hits production. It writes what it's asked to write, and when the human asking doesn't scrutinize the output, you end up with slop at scale.
I find myself thinking about this every time someone cites raw output as evidence of AI's value. Lines of code have always been a terrible productivity metric, but at least a human writing 37,000 lines was bottlenecked by their own fatigue and attention. AI removes that bottleneck and replaces it with a different problem: volume without quality gates. The responsibility to catch the bloat, the waste, the unnecessary complexity now falls entirely on the developer. That's more cognitive load, not less.
The missing piece in most of these AI productivity conversations is the review cost. Writing code is fast now. Reviewing it, understanding it, owning it when something breaks in production, that's where the time goes. Shipping 300KB of test files to every user isn't a productivity win. It's technical debt with a timestamp.
Key takeaways:
- AI-generated code volume doesn't correlate with quality or production readiness
- Audit your AI output the same way you'd audit any untrusted code
- Line counts as productivity metrics were always weak; AI makes them actively misleading
- The cost of not reviewing AI output shows up in bundle size, performance, and user experience
Why do I care: If you're a frontend developer who cares about performance, this article is a useful reality check. The tools that generate code fast are also the tools that will silently add weight to your bundles and complexity to your builds if you're not paying attention. The discipline of reviewing what goes to production hasn't changed. If anything, it's more important now.
The Hidden Cost of AI
TLDR: Developers often reach for the most powerful AI model by default, without thinking about the cost difference between tiers. This piece breaks down the model families and what each tier actually costs.
Summary: This is a practical breakdown of the three major AI families from OpenAI, Google, and Anthropic, divided into basic, medium, and pro tiers. Token-based pricing gets explained with concrete numbers, and the argument is straightforward: a lot of developers are paying pro-tier prices for tasks that a basic-tier model handles just as well.
The framing I appreciate here is treating AI model selection the same way you'd think about cloud compute tiers. You wouldn't spin up a 64-core machine to run a cron job that sends a daily email. The same logic applies to models. If you're using a frontier model to summarize a short document or classify some text, you're probably wasting money.
What the article doesn't fully address is the developer experience cost of switching between tiers mid-workflow. The cognitive overhead of deciding which tier to use for each task can eat into the savings if your team doesn't have a clear policy. There's also the reliability angle: cheaper models fail more often at edge cases, and the cost of a bad output in production can exceed the token savings.
Still, the core argument holds. Default behavior in most AI-assisted tooling is to use the strongest available model. That default wasn't chosen for cost reasons; it was chosen to maximize demo impressiveness. Revisiting those defaults with actual usage data is reasonable engineering practice.
Key takeaways:
- Not every task needs a frontier model; understand what each tier is actually good for
- Token pricing varies significantly across tiers, and default model selection in tools is not optimized for cost
- Build a team policy for model selection rather than leaving it to individual preference
- The cheapest right answer is better than an expensive right answer
Why do I care: As someone who integrates AI tooling into applications, the billing surprise at the end of the month is real. Understanding model tiers and deliberately choosing them based on task complexity is the kind of architectural decision that has compounding financial impact as usage scales.
Componentry: 40+ Copy-Paste React Components with Tailwind and Framer Motion
TLDR: Componentry is a free, open-source collection of over 40 animated React UI components built with Tailwind CSS, TypeScript, and Framer Motion. Zero configuration, drop-in ready.
Summary: The copy-paste component library space has gotten crowded since shadcn/ui normalized the pattern, and Componentry is the latest entry. The pitch is familiar: animated, visually polished components that you copy into your project rather than install as a dependency. The stack is Tailwind CSS, TypeScript, and Framer Motion, which is a reasonable combination for modern React projects.
What I'd want to know before using any library like this is how opinionated the animation defaults are. Framer Motion components can look excellent or feel overdone depending on how much motion is baked in. If the animations are configurable, that's useful. If they're hardcoded to a specific aesthetic, you may find yourself fighting the library as soon as your design system diverges from the defaults.
The zero-configuration claim is attractive but also a little vague. Zero configuration relative to a full npm package install is a low bar. What it probably means is that there's no provider wrapper, no theme system to configure, no peer dependencies to manage. That's genuinely useful, but it also means you're taking on the responsibility of keeping the code up to date yourself, since there's no package to update.
Componentry is worth a look if you're building a demo, prototype, or internal tool where animation quality matters more than long-term maintainability. For production applications with a real design system, you'd want to evaluate how much of the component's opinion you're willing to keep.
Key takeaways:
- Copy-paste component libraries give you ownership but require manual updates
- Framer Motion adds animation quality but also bundle weight; evaluate whether you need it
- Good fit for prototypes and internal tools; evaluate carefully for production with strict design systems
Why do I care: The copy-paste pattern has real value for frontend developers who want control over their components without owning a complex dependency tree. Componentry is another option worth bookmarking for the next time you need a quick, polished starting point.
Componentry: Premium React UI Component Library
Faved: A Local-First Open-Source Bookmark Manager
TLDR: Faved is a self-hosted bookmark manager that stores everything locally with no tracking, instant search, nested color-tagged organization, and import support from major browsers and Pocket.
Summary: Local-first software has a devoted audience, and for good reason. The pitch for Faved is clean: your bookmarks live on your machine, there's no subscription, no company that might get acquired, and no ads. The feature set covers the basics well, with instant search, nested colored tagging, a browser bookmarklet for saving links without an extension, and import from Chrome, Safari, Firefox, Edge, and Pocket.
The self-hosted angle is interesting because it puts bookmark management back in the category of tools you actually control. Most bookmarking solutions involve some cloud sync component, which means you're dependent on a service staying alive and financially viable. Faved sidesteps that entirely by just not syncing at all.
The obvious limitation is the flip side of local-first: no sync across devices without additional work. If you're someone who bookmarks on mobile and reads on desktop, or who works across multiple machines, local storage becomes a real constraint. The article doesn't address this, which is worth noting. A self-hosted solution can work around it if you're willing to set up your own sync, but that's a meaningful technical lift for most users.
Still, for a developer who works primarily on one machine and wants a fast, private bookmark tool without browser extension dependencies, Faved looks genuinely useful. The nested tagging system is more flexible than most built-in browser bookmark folders.
Key takeaways:
- Local-first means no vendor lock-in but also no built-in cross-device sync
- Nested colored tags are more flexible than traditional folder-based organization
- Browser bookmarklet removes the need for a dedicated extension
Why do I care: Privacy-respecting local tooling is worth knowing about, especially for developers who bookmark a lot of technical resources and don't want that data sitting in a third-party cloud. The lack of sync is a real trade-off to weigh.
Faved: Free Open-Source Bookmark Manager
Building an Admin Dashboard Sidebar with shadcn/ui and Base UI
TLDR: A step-by-step tutorial for building a functional admin dashboard sidebar using shadcn/ui and Base UI's sidebar-06 community block, covering Next.js setup, navigation data modeling, and collapsible sections.
Summary: Tutorial articles like this one are useful for developers who are new to the shadcn ecosystem and want to see how the pieces fit together. The approach here is pragmatic: use a pre-built community block from Shadcn Space as the starting point, then customize it with navigation data defined as a flat typed array. The flat array approach for navigation is a reasonable pattern because it's easy to generate from a CMS or config file and easy to reason about.
The combination of shadcn/ui and Base UI is worth a brief note. Base UI is a headless component library from the MUI team that gives you accessible, unstyled primitives. Using it alongside shadcn/ui means you're layering two component philosophies, and understanding where each one is responsible for what is important before you start customizing deeply.
The tutorial covers project setup with Next.js, installing the sidebar block, defining navigation structure, rendering section labels, leaf items, and collapsible parent items. That's a solid foundation for an admin interface. What it doesn't cover is how to handle dynamic routes, active state management across page navigations, or permissions-based navigation visibility. Those are the things that make admin dashboards genuinely complex in production.
For learning purposes, this is a clear and well-scoped guide. For production, treat it as a starting point that will need meaningful extension.
Key takeaways:
- Flat typed arrays are a clean pattern for defining navigation structure
- shadcn/ui community blocks provide good starting points but expect customization
- Base UI provides accessible headless primitives; understand the boundary between it and shadcn
Why do I care: Admin dashboards are a common requirement, and the shadcn ecosystem has matured enough that community blocks like sidebar-06 are genuinely production-useful starting points. Understanding how these pieces compose is practical knowledge for any frontend developer building internal tools.
How to Build an Admin Dashboard Sidebar with shadcn/ui and Base UI