i think the best products get built with users, not for them
so i built this: message us from inside drift and it hits our slack instantly. no delay, no ticket system
just us talking while we're both working
small feature, big shift in how we think about support π
Always rate limit your AI routes
A single user can burn $50+ in API costs with one stuck loop
Here's the pattern we use:
- Sliding window in Postgres (no Redis needed)
- 50 req / 24h per user per endpoint 429 response with exact reset time
- Admin test route to fill/reset limits without touching prod data
The pg_cron cleanup handles itself. Zero maintenance
Don't wait until you get an unexpected bill. Add this before you launch
π§ Vibecode Hack #6
Partial data is worse than no data
Don't let AI split database updates. If it deducts a credit but crashes before delivering the asset, your system is corrupted
Do prompt Wrap these steps in a single database transaction. Rollback if any step fails
π§ Vibecode Hack 5
AI memory degrades as file size increases.
Don't keep adding features to a single file until the AI starts breaking old code to fix new code.
Do prompt for a "modular refactor" into separate files every time a script exceeds 200 lines.
Don't dump new users into an empty homepage
It creates decision paralysis and high churn
We designed this 4-step checklist to guide users from "zero" to "shipped campaign" immediately:
- Customize Brand DNA
- Generate First Email
- Customize Email
- Export to Klaviyo
Stop showing generic product tours. Give them a clear path to their first win.
π§ Vibecode Hack 4
Errors are instructions, not roadblocks.
Don't blindly copy-paste an error message back into the chat without reading it.
Read the first line of the error. 90% of the time it tells you exactly which variable is missing or misspelled
π§ Vibecode Hack #3
Treat your AI assistant like a junior developer who has never seen your project
Don't just say "fix this error." Copy your file structure or directory tree into the prompt first
The AI needs context. If it knows where your files live and how they connect, it stops guessing and starts solving
I have stopped writing API Routes for most of my AI features.
Next.js Server Actions changed my approach.
Old way: Client -> fetch('/api/generate') -> Route Handler -> OpenAI
New way: Client -> Call generateText() directly (imported from server file)
It is type-safe end-to-end. No URL strings. No manual serialization. Just a function call that happens to run on the server.
π§ Vibecode Hack #2
Security isn't a feature. It's a mindset.
Don't hardcode API keys or secrets. Ever. Not even for "just a quick test."
Use environment variables from day one. If it touches a public repo, consider it compromised.
π§ Vibecode Hack #1
The best code is no code.
Before you write a custom solution, check if a library or an API already does it better.
Your job isn't to write lines of code. It's to solve problems.
Don't reinvent the wheel unless the wheel is the product
Hiding your API keys in your frontend code isn't security
It's like leaving your house key under the doormat
You think you're clever, but everyone knows exactly where to look
Keep secrets on the server. Always
If your "Sign Up" API endpoint sends the welcome email, you have built it wrong.
Network calls to email providers fail. They time out. They hang.
If the email service goes down, your user shouldn't be blocked from creating an account.
Persist the user to the DB. Push an event to a queue. Let a worker handle the email. Return 201 Created immediately