// Get confident tech stack recommendations for any software project based on requirements, with justification for each choice, Claude Code prompts to build with that stack, deployment strategy, and cost breakdown.
| name | tech-stack-decision-maker |
| description | Get confident tech stack recommendations for any software project based on requirements, with justification for each choice, Claude Code prompts to build with that stack, deployment strategy, and cost breakdown. |
Stop guessing. Get confident tech recommendations backed by reasoning.
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
Software Tailors who:
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
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
Reasons:
Perfect for: Projects that need both a web interface and API logic
Alternative: Separate React + Express if you need API used by multiple frontends
Reasons:
Perfect for: Projects with structured data and relationships
Alternative: MongoDB if data structure is super flexible/undefined
Reasons:
Perfect for: Projects that don't need complex custom backend logic
Alternative: Firebase (similar features, Google ecosystem) or custom backend if complex logic
Reasons:
Perfect for: Next.js projects (it's made by the same company)
Alternative: Railway or Render if using non-Next.js stack
Reasons:
Perfect for: Fast prototyping and modern UI design
Alternative: Plain CSS or styled-components if you prefer
| 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 |
| Resend or SendGrid | $0-10 | Transactional emails (notifications) | |
| Total | ~$46-56/month | Mid-range, scalable |
Annual Cost: ~$552-672/year
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
git init
git add .
git commit -m "Initial commit"
git remote add origin [your-github-repo-url]
git push -u origin main
NEXT_PUBLIC_SUPABASE_URL = [your Supabase project URL]NEXT_PUBLIC_SUPABASE_ANON_KEY = [your Supabase anon key]RESEND_API_KEY = [your Resend API key]your-project.vercel.appinspections.clientcompany.com)Total Deployment Time: 10-15 minutes
Example: Social media app with diverse user-generated content
Example: Mobile app that needs offline functionality
Example: Complex ERP system with intricate business logic
Example: Python/Django project
Stack: Next.js + Supabase + Vercel + Tailwind Why: Minimal configuration, great docs, Claude Code handles it perfectly Best for: 80% of B2B software projects
Stack: React + Node.js/Express + PostgreSQL + AWS/Railway Why: More control, separate frontend/backend Best for: Projects with complex backend logic or existing infrastructure
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
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
Simple CRUD App (basic data management):
Mobile-First Field Service:
Complex Project Management:
E-Commerce / Customer Portal:
The best tech stack is:
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.