TL;DR
Most developers buy boilerplates without a systematic evaluation. This checklist covers 50+ criteria across 6 categories: technical quality, features, documentation, community, business, and fit. Score each boilerplate before buying to avoid the most common mistake: realizing 2 weeks in that the boilerplate doesn't match your needs.
Category 1: Technical Quality (Most Important)
Code Quality
- [ ] TypeScript throughout (not just types for auth/billing)
- [ ] Environment variables validated on startup (t3-env, Zod)
- [ ] No
anytypes in critical paths (auth, billing, data access) - [ ] Consistent error handling (not mix of throw + return null)
- [ ] ESLint + TypeScript strict mode enabled
- [ ] Imports organized, no circular dependencies
Security
- [ ] Stripe webhook signature verified before processing
- [ ] Sessions use httpOnly, secure, sameSite cookies
- [ ] No SQL injection vectors (ORM used throughout)
- [ ] CSRF protection in place
- [ ] Sensitive data not logged
- [ ] Auth state validated server-side (not just client-side)
Performance
- [ ] Images optimized (Next.js Image component or equivalent)
- [ ] No N+1 queries in auth or billing flows
- [ ] Database indexed on frequently queried fields
- [ ] Bundle size reasonable (check Vercel build output)
Testing
- [ ] Any tests at all (many boilerplates have zero)
- [ ] Auth flows tested
- [ ] Billing flows tested
- [ ] CI runs tests on PRs
Category 2: Features
Authentication
- [ ] Email + password
- [ ] OAuth providers (Google minimum)
- [ ] Magic link / passwordless
- [ ] Email verification
- [ ] Password reset
- [ ] 2FA/TOTP (if needed for your market)
Billing
- [ ] Stripe checkout
- [ ] Subscription management
- [ ] Customer portal (update card, cancel)
- [ ] Webhook handler (all relevant events)
- [ ] Plan tiers (free, pro, etc.)
- [ ] Trial period support
- [ ] Annual billing option
- [ ] Per-seat billing (if B2B)
Multi-tenancy (if needed)
- [ ] Organization/team creation
- [ ] Member invitations
- [ ] Role-based permissions (member/admin/owner)
- [ ] Per-organization billing
Communication
- [ ] Transactional email (welcome, password reset)
- [ ] Email templates (HTML, not plain text)
- [ ] Notification system
Content
- [ ] Blog/MDX (if needed)
- [ ] SEO meta tags
- [ ] Sitemap generation
- [ ] OG images
Admin
- [ ] Admin panel (user management, subscription management)
- [ ] Basic analytics/metrics
Category 3: Documentation
Getting Started
- [ ] Clear prerequisites listed
- [ ] Setup guide covers local development
- [ ] All environment variables documented
- [ ] Common errors + solutions
Architecture
- [ ] Project structure explained
- [ ] How to add a new feature (cookbook)
- [ ] How the auth flow works
- [ ] How billing is structured
Deployment
- [ ] At least one deployment platform covered
- [ ] Database migration guide
- [ ] Environment variable management in production
Category 4: Maintenance and Updates
- [ ] Last commit within 2 months
- [ ] Active PRs and issues
- [ ] Changelog or release notes
- [ ] Dependencies not critically outdated (< 6 months)
- [ ] Responds to security issues quickly
- [ ] Version history shows consistent updates
Category 5: Community and Support
- [ ] Discord or forum exists
- [ ] Response time in community < 24 hours
- [ ] Creator active in community
- [ ] Tutorial content (blog, YouTube, examples)
- [ ] Stack Overflow presence (for common questions)
- [ ] GitHub stars (relative signal)
Category 6: Business Fit
Price
- [ ] Purchase price matches budget
- [ ] License type acceptable (lifetime vs annual vs MIT)
- [ ] Refund policy (30-day is industry standard)
- [ ] No hidden costs (some boilerplates require paid services)
License
- [ ] Can use in commercial products
- [ ] Can deploy to client projects (if agency)
- [ ] Open source vs proprietary code
- [ ] Can customize without attribution
Stack Match
- [ ] Framework matches your preference (Next.js, Remix, SvelteKit, etc.)
- [ ] Database matches (PostgreSQL, SQLite, MongoDB)
- [ ] ORM matches (Prisma, Drizzle, TypeORM)
- [ ] Auth provider matches (NextAuth, Clerk, Supabase)
- [ ] UI library matches (shadcn, Tailwind, Radix)
- [ ] Deployment target matches (Vercel, Railway, Fly.io, custom)
Scoring Your Evaluation
Use this scoring template:
| Category | Weight | Your Score (1-10) | Weighted |
|---|---|---|---|
| Technical Quality | 30% | ||
| Features | 25% | ||
| Documentation | 20% | ||
| Maintenance | 10% | ||
| Community | 10% | ||
| Business Fit | 5% | ||
| Total | 100% |
Interpretation:
- 8.0+: Buy with confidence
- 6.5-7.9: Acceptable, with known trade-offs
- 5.0-6.4: Consider alternatives
- Below 5.0: Avoid
Quick Disqualifiers (Instant No)
Any of these is an automatic elimination:
- No commits in 6+ months — Not maintained
- Webhook without signature verification — Security hole
- No documentation — Setup will be painful
- No refund policy on paid product — Red flag
- Real credentials in repository — Bad security practices
-
Only handles
checkout.session.completed— Incomplete billing - Licensing that prevents commercial use — Deal breaker for SaaS
The Final Question
After scoring, ask: "Does the creator build products with this boilerplate?"
Marc Lou (ShipFast) has launched 10+ products with ShipFast. Kent C. Dodds built epicweb.dev on Epic Stack. Creators who dog-food their own tools make better tools.
A boilerplate built by someone who's never shipped a product with it will have different blind spots than one built by a serial founder.
Use StarterPick's comparison data to score boilerplates against this checklist at StarterPick.
Top comments (0)