u/Hot-Pea4514

I built an ESLint plugin to fix the mess AI coding assistants leave behind

I built an ESLint plugin to fix the mess AI coding assistants leave behind

AI coding tools like Cursor , windsurf , antigravity , kiro , and more are amazing, but I got tired of seeing the same patterns over and over: God files, God functions, orphaned TODOs, and redundant comments. That productive AI sprint was turning into months of refactoring.

So I built eslint-plugin-ai-guardrails.

It’s a structure-first ESLint plugin that catches these issues before they become tech debt:

🔹 max-file-lines & max-function-lines – Warns when a file exceeds 300 lines or a function exceeds 50 lines 🔹 no-orphan-todos – Errors on // TODO or // FIXME without a tracking reference 🔹 no-ai-obvious-comments – Enforces a max comment density of 20% and filters out useless comments

It supports ESLint v8 & v9, TypeScript >=5, and includes a one‑command setup (npx eslint-plugin-ai-guardrails init) that auto‑detects your framework.

Check it out: 🔗 Website & Docs: https://eslint-ai-guardrails.vercel.app/ 💻 GitHub Repo: https://github.com/isaacnewton123/eslint-plugin-ai-guardrails

Let me know what you think! Feedback and contributions are very welcome. 🚀

u/Hot-Pea4514 — 2 days ago
▲ 2 r/tailwindcss+1 crossposts

[Free Template] Portfolio with Next.js 16 & Tailwind CSS v4 – Featuring an Automated PDF Resume Generator (Python/WeasyPrint)

Hey everyone!

I just finished building my personal portfolio using the latest stack (Next.js 16, React, and Tailwind CSS v4), and I decided to open-source it as a template for anyone looking for a modern starter.

I wanted to solve the "manual resume update" problem, so I integrated a Python script (WeasyPrint) that automatically generates a PDF version of my CV during the build process on Vercel/Netlify. No more manual exports!

✨ Key Features:

  • Latest Stack: Built with Next.js 16 (App Router) and Tailwind CSS v4.
  • 📄 Automated PDF Resume: Generates your latest CV automatically via a Python script during deployment.
  • 🌗 Dark/Light Mode: OS preference detection with zero-flash persistence.
  • 🧊 3D & 2D Galleries: Integrated Sketchfab 3D models and lightbox artwork gallery.
  • ⚡ Performance: Architected for ultra-fast performance and SEO.
  • ☁️ Deployment-Ready: Pre-configured vercel.json and netlify.toml included.

🔗 Links:

Feel free to use it, fork it, or give it a star if you find it helpful! I’m open to any feedback or questions regarding the "Vibe Coding" architecture or the PDF generation setup.

Cheers! 🍻

reddit.com
u/Hot-Pea4514 — 5 days ago

[Free Template] Portfolio with Next.js 16 & Tailwind CSS v4 – Featuring an Automated PDF Resume Generator (Python/WeasyPrint)

Hey everyone!

I just finished building my personal portfolio using the latest stack (Next.js 16, React, and Tailwind CSS v4), and I decided to open-source it as a template for anyone looking for a modern starter.

I wanted to solve the "manual resume update" problem, so I integrated a Python script (WeasyPrint) that automatically generates a PDF version of my CV during the build process on Vercel/Netlify. No more manual exports!

✨ Key Features:

  • Latest Stack: Built with Next.js 16 (App Router) and Tailwind CSS v4.
  • 📄 Automated PDF Resume: Generates your latest CV automatically via a Python script during deployment.
  • 🌗 Dark/Light Mode: OS preference detection with zero-flash persistence.
  • 🧊 3D & 2D Galleries: Integrated Sketchfab 3D models and lightbox artwork gallery.
  • ⚡ Performance: Architected for ultra-fast performance and SEO.
  • ☁️ Deployment-Ready: Pre-configured vercel.json and netlify.toml included.

🔗 Links:

Feel free to use it, fork it, or give it a star if you find it helpful! I’m open to any feedback or questions regarding the "Vibe Coding" architecture or the PDF generation setup.

Cheers! 🍻

reddit.com
u/Hot-Pea4514 — 5 days ago

[ESLint Plugin] - AI Guardrails: Prevent AI-generated chaos in your codebase

Hello r/coolgithubprojects community!

I wanted to share a project I just released: eslint-plugin-ai-guardrails.

The problem: I'm a solo developer who uses AI assistants (Copilot, Cursor, etc.) daily. They're incredibly productive for vibe coding, but I noticed they kept bloating my files, writing functions that never end, leaving // TODO implement this with no context, and adding comments like // Set x to 5 right above const x = 5. Over time, this turns a codebase into tech debt.

The solution: I built this ESLint plugin to act as automated guardrails. It enforces four structural rules specifically designed to catch these AI-generated patterns:

Rule Default What it catches
max-file-lines 300 lines Prevents god files from growing out of control
max-function-lines 50 lines Prevents monster functions
no-orphan-todos error Requires issue link or deadline on TODO/FIXME/HACK
no-ai-obvious-comments warn Flags comments that just repeat the next line

Technical details:

  • Written in TypeScript, compiled to JavaScript
  • Supports ESLint v8 (legacy .eslintrc) and v9 (flat config)
  • Zero-config CLI setup: npx eslint-plugin-ai-guardrails init
  • Integration-tested with Vite, Next.js, NestJS, Express
  • 60 unit tests across all rules
  • MIT licensed

Quick start:

npm install --save-dev eslint-plugin-ai-guardrails @typescript-eslint/parser
npx eslint-plugin-ai-guardrails init

Link :

  • GitHub: github.com/isaacnewton123/eslint-plugin-ai-guardrails
  • npm: npmjs.com/package/eslint-plugin-ai-guardrails
  • Docs: eslint-ai-guardrails.vercel.app

Feedback and contributions are very welcome! Has anyone else built tools specifically to keep AI-generated code maintainable?

eslint-ai-guardrails.vercel.app
u/Hot-Pea4514 — 7 days ago
▲ 4 r/vibecoders_+2 crossposts

We vibe code. We speak things into existence. But sometimes the robot gets a little too excited and gives us a 500-line monster file, a function that does literally everything, and ten // TODO: implement this comments sprinkled around like confetti.

Got tired of negotiating. So I built a tiny ESLint plugin called eslint-plugin-ai-guardrails that just tells the AI assistant to chill out. Four rules: max file lines (300), max function lines (50), no orphan TODOs without a deadline, and no comments that just repeat the code like // set x to 5 right above const x = 5.

Now my robot and I have a better relationship. It still generates code, but the guardrails keep things tidy. One command setup: npx eslint-plugin-ai-guardrails init

npm: npmjs.com/package/eslint-plugin-ai-guardrails
GitHub: github.com/isaacnewton123/eslint-plugin-ai-guardrails

Anyone else build tools just to keep the AI in check? Share your "negotiation" stories!

u/Hot-Pea4514 — 2 days ago