Blint makes AI-coding
predictable and scalable.
Define your best design ideas as patterns, document the purpose behind your code, and enforce both consistently — across every file, every commit, every contributor.
What's included
The core idea
AI-coded projects need guardrails
to scale well.
Blint introduces controlled code — guardrails that enforce your design opinions automatically. Patterns define how code should be written. Documentation defines why it exists. Not thorough technical specification, but higher-level design principles and domain concepts — enforced consistently across every file, every commit, every contributor.
Keeping Control
Controlled code answers two questions: why was it written, and how should it be designed?
The why
Documentation
Business purpose and domain concepts. What does this service do? Why does this workflow exist? Project-specific context so your AI understands the system it's building, not just the file it's editing.
The how
Patterns
Design decisions and coding conventions. How should data be validated? How should errors be handled? Reusable ideas that keep code consistent as it scales.
Both live as markdown files in your repo — easy to read, edit, and version alongside your code.
Patterns
Share your best ideas between projects and with others
Sometimes it's good to be opinionated. A pattern is your take on how something should be done — a design principle with teeth. Each targets specific files via globs and gets enforced automatically.
A General-Purpose Async Loading Component for React Query
One way to centralise loading, error, and retry UI for React Query without leaking query state into every component.
AI-Managed Documentation That Lives in Your Codebase
Embedding markdown documentation directly in your app and letting Claude maintain it produces docs that stay accurate, include real diagrams, and don't rot.
API Mocking Pattern for React and Storybook
A clean pattern for swapping between real and mock APIs without polluting your components with mocking logic.
Data Model handling in TypeScript
A pattern for shared, runtime-validated data models that catch issues early and keep frontend and backend in sync.
Demo Driven Development
Building components in isolation with comprehensive demos catches edge cases that unit tests miss and ensures your UI handles failure gracefully.
E2E Testing with Playwright and Storybook
A testing strategy that mirrors how you build UIs — composable, isolated, and resilient to change.
Electron App Architecture
Architectural conventions for building an Electron app with Vite, React, Tailwind, shadcn/ui, and typed IPC
Electron Release Pipeline
GitHub Actions CI/CD for building, signing, distributing, and auto-updating an Electron app via S3/CloudFront
Environment Configuration Best Practices
Fail fast with explicit values. No defaults, no fallbacks, no computed configuration.
Fixing Tailwind Culling in Monorepos
A practical pattern for preventing Tailwind v4 from culling classes in shared monorepo components.
Lambda Tips
Tips for making lambdas easier to debug and maintain.
Managing the LocalStack Lifecycle
Treat LocalStack as disposable infrastructure. Destroy the container on every deploy and avoid partial teardowns.
Null vs Undefined
null and undefined are not interchangeable. Treating them as such blurs intent, weakens APIs, and forces defensive code everywhere.
Organising Environment Files
As the number of apps, services and environments grow over time, these tips keep your environment configurations files more manageable
Service Events: Rolling Your Own Event Logging
A lightweight event tracking system built on DynamoDB that provides visibility across your services without the cost or complexity of third-party logging platforms.
A clear, spec-driven workflow
Plan work as specs, implement with guidance, review before merging
Every feature or fix starts as a specification document. Blint guides the process from draft through implementation to review — checking that the code follows your patterns before it ships.
Draft
Write the spec — describe what to build and why
Implement
Build the feature in an isolated environment
Check
Enforce patterns and review the changes
Merge
Ship with confidence
And there's no need to leave Blint to do the implementation — it has agentic coding built right in.
Built-in agentic coding
Claude Code, wrapped with a streamlined workflow
Blint wraps Claude Code directly into the app, so you get full agentic coding without context switching. Start a spec, and Blint opens a Claude session pre-loaded with your patterns, documentation, and an isolated environment.
Sessions scoped to spec branches — no cross-contamination
Patterns and docs fed as context automatically
Uses your existing Claude subscription — no extra API key
Isolated environments for parallel work
Each spec gets its own environment so parallel work doesn't collide
When you start a spec, Blint can set up an isolated environment — a git worktree, a full copy, or just the original folder. Multiple specs can run in parallel without stepping on each other.
Original folder
Work directly in your project. No isolation — best for quick fixes.
Git worktree
Clean checkout on a new branch. Main project stays untouched.
Full copy
Complete project copy with dependencies. Self-contained — no rebuild.
CLAUDE.md management
Keep your AI's context current without manual editing
Blint manages its own sections inside your CLAUDE.md — the file Claude Code reads for project guidance. Your existing content stays untouched. One click to sync the managed sections.
Patterns — routes Claude to the right pattern files based on glob matchers
Documentation — key points from your colocated docs, kept in sync automatically
Conventions — industry principles like DRY, KISS, Fail Fast, toggled on per project
Pointers — project-specific notes like "use AWS profile personal" or "run tests with --watch"
CLAUDE.md
Managed by Blint
Patterns
Documentation
Conventions
Pointers
Get started with Blint
Free for public patterns. Download the desktop app for macOS or Windows.