<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ryan Smith</title>
    <description>The latest articles on DEV Community by Ryan Smith (@ryan_patrick_smith).</description>
    <link>https://dev.to/ryan_patrick_smith</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3951700%2F6acc5e78-94cb-459d-9feb-bb12b8a1107f.jpeg</url>
      <title>DEV Community: Ryan Smith</title>
      <link>https://dev.to/ryan_patrick_smith</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ryan_patrick_smith"/>
    <language>en</language>
    <item>
      <title>I scanned 8 popular open source repos with one command. Here's what I found.</title>
      <dc:creator>Ryan Smith</dc:creator>
      <pubDate>Tue, 26 May 2026 04:37:31 +0000</pubDate>
      <link>https://dev.to/ryan_patrick_smith/i-scanned-8-popular-open-source-repos-with-one-command-heres-what-i-found-ig5</link>
      <guid>https://dev.to/ryan_patrick_smith/i-scanned-8-popular-open-source-repos-with-one-command-heres-what-i-found-ig5</guid>
      <description>&lt;p&gt;I built a CLI that scans codebases — stack detection, dependency mapping, convention analysis, security checks. One command, no config, nothing leaves your machine. I ran it against 8 well-known open source projects to see what it picks up.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Dub (dub.co) — YC-backed link management
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript · Next.js · Prisma → MySQL (80 models) · 12 packages
Auth: NextAuth | AI: Vercel AI | Payments: Stripe
Testing: Vitest, Playwright | UI: Tailwind CSS
Deploy: Vercel · GitHub Actions

⚠ 185/464 API routes have no validation imports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;80 Prisma models. That's a big schema. And nearly 40% of API routes have no validation imports — not necessarily bugs, but surface area nobody's checked.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Langfuse — LLM observability platform
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript · Next.js · Prisma → PostgreSQL (65 models) · 7 packages
Auth: NextAuth | Payments: Stripe
Testing: Vitest, Playwright, Testing Library
UI: shadcn/ui (Tailwind)
Services: AWS S3 · Sentry · PostHog · tRPC (+6 more)
Deploy: Docker · GitHub Actions

⚠ 75/93 API routes have no validation imports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;65 Prisma models and a rich service layer. The validation gap is common across these projects — more on that below.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Formbricks — open source survey platform
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript · Next.js · Prisma → PostgreSQL (43 models)
Auth: NextAuth | AI: Vercel AI | Payments: Stripe
Testing: Vitest, Testing Library, Playwright
UI: shadcn/ui (Tailwind)
Services: AWS S3 · Sentry · PostHog · i18next (+5 more)
Deploy: Docker · GitHub Actions

⚠ 76/97 API routes have no validation imports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;43 models, clean stack detection. The scanner picks up that Formbricks uses Vercel AI SDK — not obvious from a surface read of the repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Trigger.dev — background job platform
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript · Remix · Prisma → PostgreSQL (76 models) · 56 packages
Auth: JWT | AI: Vercel AI
Testing: Vitest, Supertest, Playwright
UI: shadcn/ui (Tailwind)
Services: AWS S3 · Resend · PostHog · OpenAI (+7 more)
Deploy: Docker · GitHub Actions

⚠ Hardcoded PostHog project key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;56 packages in the monorepo. Remix detected (not Next.js — the scanner distinguishes). 76 Prisma models is one of the largest schemas in this set.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Inbox Zero — AI email client
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript · Next.js · Prisma → PostgreSQL (63 models)
Auth: Better Auth | AI: Vercel AI | Payments: Stripe
Testing: Vitest, Playwright, Testing Library
UI: shadcn/ui (Tailwind)
Services: Resend · Sentry · PostHog (+9 more)
Deploy: Cloudflare Workers · GitHub Actions

⚠ 108/168 API routes have no validation imports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The scanner detected Better Auth — not just NextAuth. 63 models. 3 surfaces (web, api, cli). 108 out of 168 routes without validation is the second-highest ratio in this set.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Midday — open source finance
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript · Next.js · Drizzle → PostgreSQL (50 models)
Auth: Supabase Auth | AI: Vercel AI | Payments: Stripe
Testing: Vitest
Services: Resend · Sentry · tRPC · React Email (+6 more)
Deploy: Docker · GitHub Actions
Workspace: Turborepo (bun)

⚠ 8/10 API routes have no validation imports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The only project using Drizzle instead of Prisma. Also the only bun workspace in the set. 5 surfaces detected (api, dashboard, website, worker, +1). Shows the scanner isn't just a Prisma counter.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. n8n — workflow automation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript · Express · Supabase · 66 packages
Auth: JWT | AI: Vercel AI
Testing: Vitest, Playwright, Testing Library, Supertest, Jest
Services: AWS S3 · Sentry · OpenAI · Anthropic (+13 more)
Deploy: Docker · GitHub Actions

⚠ Hardcoded PostHog project key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;66 packages. Five test frameworks. The largest monorepo in this set. Express, not Next.js — shows the scanner handles non-Next stacks. The service detection picked up both OpenAI and Anthropic SDKs directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Documenso — open source document signing
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeScript · React Router · Prisma → PostgreSQL (47 models)
Auth: JWT | AI: Vercel AI | Payments: Stripe
Testing: Vitest, Playwright
UI: Tailwind CSS
Services: AWS S3 · Resend · PostHog · tRPC (+5 more)
Deploy: Docker · GitHub Actions

✓ Clean — no secrets, .gitignore covers .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The only clean scan in the set. No findings. This matters — a scanner that flags everything isn't useful. Documenso has its .env handled correctly and the scanner confirms it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What patterns showed up
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Validation gaps are everywhere.&lt;/strong&gt; 6 of 8 projects had API routes with no validation imports detected. The numbers ranged from 8/10 (Midday) to 185/464 (Dub). These aren't necessarily bugs — many routes handle validation elsewhere (middleware, tRPC, shared libraries). But the scan surfaces which routes have no visible validation at the file level. That's the kind of thing a new team member would want to know.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack detection goes deeper than dependencies.&lt;/strong&gt; Prisma model counts, auth provider identification (NextAuth vs Better Auth vs Supabase Auth vs JWT), ORM detection (Prisma vs Drizzle vs TypeORM vs MikroORM), workspace tooling (pnpm vs yarn vs bun), surface detection (web vs api vs cli vs worker). The scan reads the project, not just the package.json.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PostHog keys are common and intentionally public.&lt;/strong&gt; Two projects had PostHog project keys detected. These are designed to be client-side and public — not a security risk. The scanner flags them as a low-severity notice, not a critical finding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean scans matter.&lt;/strong&gt; Documenso came back clean. A tool that cries wolf on every repo isn't useful. The fact that one project out of eight had zero findings builds trust in the findings on the other seven.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx anatomia-cli scan &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One command. 3-8 seconds. No install. No account. No data leaves your machine. MIT licensed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/anatomia-dev/anatomia" rel="noopener noreferrer"&gt;github.com/anatomia-dev/anatomia&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Curious what it finds on your project.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>typescript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
