Tech Stack Decision Maker
Stop guessing. Get confident tech recommendations backed by reasoning.
What This Skill Does
You describe the project requirements, and this skill recommends:
✅ Exact Tech Stack - Specific technologies for frontend, backend, database, hosting ✅ Why Each Choice - Clear reasoning tied to project needs ✅ Claude Code Prompts - Ready-to-use prompts for building with this stack ✅ Deployment Strategy - Where and how to host ✅ Cost Breakdown - What it will cost the client monthly/annually ✅ Alternatives - When to consider different options
Who This Is For
Software Tailors who:
-
Feel overwhelmed by technology choices
-
Want to make confident recommendations to clients
-
Need to justify tech decisions professionally
-
Want to use modern, AI-friendly tech stacks
-
Avoid picking the wrong stack and having to rebuild
How To Use This Skill
Input Format
Example Input:
Project: Fire inspection management system
Requirements:
- Web app for office staff (desktop primarily)
- Mobile-friendly interface for field inspectors
- User authentication with different roles (admin, inspector)
- Database for buildings, inspections, users
- File uploads (photos from inspections)
- PDF report generation
- Email notifications
- Real-time dashboard
Expected Users: 10-15 concurrent users max Data Volume: ~200 inspections/month, growing slowly Budget: Mid-range (client can afford hosting, but not enterprise costs) Timeline: Need to launch in 4-6 weeks
Output Format
Tech Stack Recommendation: Fire Inspection Management System
Recommended Stack (Modern & AI-Friendly)
Frontend: Next.js 14 (React framework) Backend: Next.js API Routes Database: PostgreSQL (via Supabase) Auth: Supabase Auth File Storage: Supabase Storage Hosting: Vercel Styling: Tailwind CSS
Why This Stack?
✅ Next.js 14 (Frontend + Backend)
Reasons:
-
All-in-one: Frontend and backend in one codebase (simpler for Claude Code to build)
-
Fast development: React components + built-in routing = quick builds
-
Mobile-friendly: Responsive by default
-
SEO-ready: Server-side rendering if needed
-
Claude Code loves it: Widely documented, Claude handles it perfectly
Perfect for: Projects that need both a web interface and API logic
Alternative: Separate React + Express if you need API used by multiple frontends
✅ PostgreSQL (via Supabase)
Reasons:
-
Relational data: Your project has clear relationships (buildings → inspections → users)
-
Robust: Handles complex queries, transactions, data integrity
-
Supabase = managed: No database administration headaches
-
Built-in features: Real-time subscriptions, row-level security, auto-generated REST API
-
Affordable: Free tier for small projects, $25/month for production
Perfect for: Projects with structured data and relationships
Alternative: MongoDB if data structure is super flexible/undefined
✅ Supabase (Auth + Storage + Database)
Reasons:
-
Complete backend: Auth, database, storage all in one
-
Fast setup: No backend server to configure
-
Secure by default: Row-level security policies protect data
-
File storage included: Photo uploads handled easily
-
Great docs: Claude Code knows how to integrate it
Perfect for: Projects that don't need complex custom backend logic
Alternative: Firebase (similar features, Google ecosystem) or custom backend if complex logic
✅ Vercel (Hosting)
Reasons:
-
Made for Next.js: Seamless deployment (literally one click)
-
Automatic deployments: Push to GitHub = instant deploy
-
Edge network: Fast globally (CDN built-in)
-
Free tier: Generous (perfect for small projects)
-
Easy custom domains: Client's domain setup is trivial
Perfect for: Next.js projects (it's made by the same company)
Alternative: Railway or Render if using non-Next.js stack
✅ Tailwind CSS (Styling)
Reasons:
-
Fast styling: Utility classes = rapid UI development
-
Responsive built-in: Mobile-friendly by default
-
Consistent design: Design system in your HTML
-
Claude Code's preference: Most AI code generation uses Tailwind
Perfect for: Fast prototyping and modern UI design
Alternative: Plain CSS or styled-components if you prefer
Complete Tech Stack Breakdown
Layer Technology Monthly Cost Why This Choice
Frontend Next.js 14 Free (included in hosting) All-in-one React framework, fast development
Backend Next.js API Routes Free (included in hosting) Backend logic in same codebase as frontend
Database PostgreSQL (Supabase) $25 Relational data, managed service
Authentication Supabase Auth Included Secure user login, role-based access
File Storage Supabase Storage Included Photo uploads for inspections
Hosting Vercel $20 (Pro plan) Seamless Next.js deployment
Domain Custom domain $12/year (~$1/month) Client's branded URL
Email Resend or SendGrid $0-10 Transactional emails (notifications)
Total
~$46-56/month Mid-range, scalable
Annual Cost: ~$552-672/year
Claude Code Prompts for This Stack
- Project Initialization
Create a Next.js 14 project with TypeScript, Tailwind CSS, and ESLint. Use the App Router (not Pages Router). Set up folder structure: /app, /components, /lib, /types, /public.
- Supabase Setup
Install Supabase client library. Create a Supabase project and get the project URL and anon key. Set up environment variables for NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY. Create a Supabase client utility function in /lib/supabase.ts.
- Database Schema
In Supabase, create the following PostgreSQL tables:
- users (id, email, role, created_at)
- buildings (id, name, address, client_name, inspection_frequency, created_at)
- inspections (id, building_id, inspector_id, scheduled_date, status, notes, created_at)
Set up foreign key relationships:
- inspections.building_id → buildings.id
- inspections.inspector_id → users.id
Create row-level security (RLS) policies so users can only see their own data.
- Authentication
Implement Supabase authentication with email/password. Create a login page at /login and signup page at /signup. Add middleware to protect routes (redirect to /login if not authenticated). Store user session in cookies for persistence.
- Dashboard Page
Create a dashboard page at /dashboard. Show today's inspections, upcoming inspections, and overdue inspections. Use Supabase to fetch data with real-time subscriptions. Style with Tailwind CSS - use cards and a clean layout.
- Buildings Management
Create a page at /buildings that shows a list of all buildings. Add search and filter functionality. Create a form to add/edit buildings with fields: name, address, client_name, inspection_frequency. Implement CRUD operations using Supabase.
- Inspection Scheduling
Create an inspection scheduling page at /inspections/new. Form fields: building (dropdown), inspector (dropdown), scheduled_date (date picker). On submit, create a new inspection record in Supabase. Show success notification and redirect to dashboard.
- File Uploads
Add photo upload functionality to inspection forms. Use Supabase Storage to handle file uploads. Create a storage bucket called "inspection-photos". Allow inspectors to upload multiple photos per inspection. Display uploaded photos in a grid with lightbox functionality.
- PDF Report Generation
Install @react-pdf/renderer library. Create a PDF template for inspection reports that includes:
- Company logo and branding
- Building and client information
- Inspection details and results
- Photos (if any) Generate PDF on demand when user clicks "Download Report" button.
- Email Notifications
Install Resend library for sending emails. Create API route at /api/send-email. Send email when:
- Inspection is scheduled (notify inspector)
- Inspection is completed (notify client) Use email templates with dynamic data (building name, date, etc).
Deployment Steps
Step 1: Push to GitHub
git init git add . git commit -m "Initial commit" git remote add origin [your-github-repo-url] git push -u origin main
Step 2: Connect Vercel
-
Go to vercel.com and sign up
-
Click "Import Project"
-
Connect your GitHub repository
-
Vercel auto-detects Next.js and configures build settings
Step 3: Add Environment Variables in Vercel
-
NEXT_PUBLIC_SUPABASE_URL = [your Supabase project URL]
-
NEXT_PUBLIC_SUPABASE_ANON_KEY = [your Supabase anon key]
-
RESEND_API_KEY = [your Resend API key]
Step 4: Deploy
-
Vercel automatically deploys on every push to main branch
-
Production URL: your-project.vercel.app
Step 5: Custom Domain
-
In Vercel dashboard, go to Settings → Domains
-
Add client's custom domain (e.g., inspections.clientcompany.com )
-
Follow DNS configuration instructions
Total Deployment Time: 10-15 minutes
When to Use Alternatives
Use MongoDB instead of PostgreSQL if:
-
❌ Data structure is highly variable/unpredictable
-
❌ Need extreme flexibility in schema
-
❌ Storing lots of nested JSON objects
Example: Social media app with diverse user-generated content
Use Firebase instead of Supabase if:
-
❌ Client is heavily invested in Google ecosystem
-
❌ Need Google Cloud integrations
-
❌ Want Firestore's offline-first mobile SDKs
Example: Mobile app that needs offline functionality
Use React + Express instead of Next.js if:
-
❌ Backend logic is very complex (heavy business rules)
-
❌ Need separate API consumed by mobile apps + web
-
❌ Team already knows Express well
Example: Complex ERP system with intricate business logic
Use Render/Railway instead of Vercel if:
-
❌ Using backend other than Next.js (like Django, Rails)
-
❌ Need more control over server configuration
-
❌ Want to host database and app on same platform
Example: Python/Django project
Stack Complexity Levels
🟢 Beginner-Friendly (Recommended for new software tailors)
Stack: Next.js + Supabase + Vercel + Tailwind Why: Minimal configuration, great docs, Claude Code handles it perfectly Best for: 80% of B2B software projects
🟡 Intermediate
Stack: React + Node.js/Express + PostgreSQL + AWS/Railway Why: More control, separate frontend/backend Best for: Projects with complex backend logic or existing infrastructure
🔴 Advanced (Avoid unless necessary)
Stack: Custom microservices + GraphQL + Kubernetes + AWS Why: Overkill for most projects, high maintenance Best for: Enterprise systems with huge scale requirements
For software tailors: Stick to 🟢 Beginner-Friendly unless client has specific needs
Tech Stack Red Flags
Avoid these unless you have good reason:
❌ PHP/WordPress - Outdated, hard to maintain, Claude Code struggles with it ❌ Ruby on Rails - Less common, fewer Claude Code examples ❌ Angular - More complex than React, steeper learning curve ❌ MySQL - PostgreSQL is better for modern projects ❌ Shared hosting - Slow, unreliable, use cloud platforms instead ❌ Self-hosted everything - Maintenance nightmare, use managed services
Quick Stack Recommendations
Simple CRUD App (basic data management):
-
Next.js + Supabase + Vercel
-
Cost: $25-50/month
-
Build time: 2-3 weeks
Mobile-First Field Service:
-
Next.js (responsive) + Supabase + Vercel
-
Consider PWA (progressive web app) before native mobile
-
Cost: $25-50/month
-
Build time: 3-4 weeks
Complex Project Management:
-
Next.js + Supabase + Vercel + Advanced features (Stripe, Twilio, SendGrid)
-
Cost: $50-100/month
-
Build time: 6-8 weeks
E-Commerce / Customer Portal:
-
Next.js + Supabase + Stripe + Vercel
-
Cost: $50-100/month (+ Stripe fees)
-
Build time: 4-6 weeks
Remember
The best tech stack is:
-
✅ Simple - Fewer moving parts = fewer bugs
-
✅ Well-documented - Claude Code can help effectively
-
✅ Managed services - Less maintenance = more time building
-
✅ Cost-effective - Under $100/month for most B2B projects
-
✅ Proven - Use battle-tested tech, not bleeding edge
Default recommendation for 80% of projects: Next.js + Supabase + Vercel + Tailwind
This stack is modern, AI-friendly, affordable, and scalable.
Stop overthinking tech choices. Use this stack, build fast, get paid.