AgentSkillsCN

Tech Stack Recommendation

技术栈推荐与项目标准制定指导

SKILL.md
--- frontmatter
description: Tech stack recommendation and project standards generation guidance
globs: []
alwaysApply: false

Tech Stack Recommendation Skill

Project: [PROJECT_NAME] Generated: [DATE] Purpose: Guide for tech stack analysis, recommendation, and standards generation

When to Use

This skill guides you when doing tech stack work for:

  • Tech stack recommendation in /plan-product
  • Project-specific standards generation
  • Technology evaluation and comparison

Quick Reference

Tech Stack Decision Process

  1. Analyze Requirements: Extract platform, scale, complexity, integrations from product brief
  2. Apply Decision Framework: Match requirements to technology categories
  3. Present Recommendations: Show options with trade-offs to user
  4. Get User Decision: Interactive selection via AskUserQuestion
  5. Generate Standards: Optional tech-stack-aware coding standards

Decision is COMPLETE when

  • Backend framework selected with rationale
  • Frontend framework selected (if applicable) with rationale
  • Database(s) selected with rationale
  • Hosting/deployment platform selected
  • CI/CD approach defined
  • All choices documented in tech-stack.md

Detailed Guidance

Decision Framework

Step 1: Requirement Analysis

Extract these dimensions from the product brief:

DimensionQuestionImpact
PlatformWeb? Mobile? Desktop? API-only?Framework selection
ScaleUsers at launch? In 1 year?Database, hosting, architecture
ComplexityCRUD? Rich domain? Real-time?Backend framework complexity
IntegrationsExternal APIs? Payment? Auth?Middleware, library needs
TeamSolo dev? Small team? Large org?Framework learning curve
TimelineMVP in weeks? Months?Rapid vs. robust framework
BudgetStartup? Enterprise? Open-source?Hosting, licensing

Step 2: Technology Matching

Backend Frameworks
Requirement ProfileRecommendedWhy
Rapid MVP, solo/small teamRails, Django, LaravelConvention over configuration, batteries included
Enterprise, large teamSpring Boot, .NETType safety, established patterns
Microservices, high performanceGo, Rust, Node.jsLightweight, fast, concurrent
API-focused, real-timeNode.js (Express/Fastify), ElixirEvent-driven, WebSocket native
Data-heavy, ML integrationPython (FastAPI/Django)Ecosystem, library support
ServerlessNode.js, Python, GoCold start performance, ecosystem
Frontend Frameworks
Requirement ProfileRecommendedWhy
Complex SPA, large teamAngularOpinionated, TypeScript-first, enterprise features
Flexible SPA, component-focusedReactEcosystem, hiring, flexibility
Progressive enhancement, simplicityVue.jsGentle learning curve, good docs
Static sites with dynamic partsNext.js, Nuxt, AstroSSR/SSG, SEO, performance
Mobile-firstReact Native, FlutterCross-platform from single codebase
Minimal JS neededHTMX, Alpine.jsServer-rendered with sprinkles
Databases
Requirement ProfileRecommendedWhy
Relational data, ACID neededPostgreSQLFeature-rich, reliable, JSON support
Simple relational, rapid setupSQLite, MySQLLightweight, familiar
Document-oriented, flexible schemaMongoDBSchema flexibility, horizontal scale
Key-value, cachingRedisIn-memory speed, pub/sub
Time-series dataTimescaleDB, InfluxDBOptimized for temporal queries
Graph relationshipsNeo4jRelationship-first queries
Search-heavyElasticsearch, MeilisearchFull-text search, faceting
Hosting & Deployment
Requirement ProfileRecommendedWhy
Simple deployment, managedRailway, Render, Fly.ioPaaS simplicity, auto-scaling
Full control, cost-effectiveAWS EC2/ECS, DigitalOceanInfrastructure flexibility
Serverless workloadsAWS Lambda, Vercel, Cloudflare WorkersPay-per-use, auto-scale
Container-basedDocker + Kubernetes (EKS/GKE)Orchestration, portability
Static + APIVercel, Netlify, Cloudflare PagesEdge deployment, CDN built-in

Common Stack Patterns

The Indie Hacker Stack

code
Backend: Rails / Django / Laravel
Frontend: Hotwire / HTMX / Livewire (server-rendered)
Database: PostgreSQL
Hosting: Railway / Render / Fly.io
CI/CD: GitHub Actions

Best for: Solo developers, rapid MVPs, content-heavy apps

The Modern SPA Stack

code
Backend: Node.js (Express/NestJS) / Python (FastAPI)
Frontend: React / Vue.js / Angular
Database: PostgreSQL + Redis
Hosting: Vercel (frontend) + Railway/AWS (backend)
CI/CD: GitHub Actions

Best for: Complex UIs, real-time features, separate teams

The Enterprise Stack

code
Backend: Spring Boot / .NET
Frontend: Angular / React
Database: PostgreSQL / Oracle
Hosting: AWS / Azure / GCP (managed)
CI/CD: GitHub Actions / Jenkins / GitLab CI

Best for: Large teams, strict compliance, long-term maintenance

The Serverless Stack

code
Backend: AWS Lambda / Cloudflare Workers
Frontend: Next.js / Nuxt / SvelteKit
Database: DynamoDB / PlanetScale / Turso
Hosting: Vercel / AWS
CI/CD: GitHub Actions

Best for: Variable load, cost optimization, event-driven

Presenting Recommendations

Format for user presentation:

code
Based on your product requirements, I recommend:

**Backend:** [Framework] — [1-sentence rationale]
**Frontend:** [Framework] — [1-sentence rationale]
**Database:** [Database] — [1-sentence rationale]
**Hosting:** [Platform] — [1-sentence rationale]
**CI/CD:** [Tool] — [1-sentence rationale]

Alternative considered: [Alternative stack] — [why not chosen]

Shall I proceed with this stack, or would you like to adjust any choice?

Standards Generation

When user opts for project-specific standards:

  1. Read tech-stack.md to understand chosen frameworks
  2. Read global standards as base (~/.specwright/standards/code-style.md, best-practices.md)
  3. Enhance with tech-stack-specific rules:
Stack ChoiceStandards Enhancement
RailsRuby style, RSpec conventions, ActiveRecord patterns
ReactTypeScript strict, component patterns, hook conventions
AngularAngular style guide, RxJS patterns, module structure
Spring BootJava conventions, Spring patterns, JUnit
Node.js/ExpressAsync/await patterns, middleware conventions
Vue.jsComposition API patterns, Pinia conventions
DjangoPython PEP8, Django conventions, pytest
  1. Write to project: specwright/standards/code-style.md and specwright/standards/best-practices.md

Anti-Patterns

Anti-PatternBetter Approach
Choosing tech because it's trendyChoose based on requirements and team skills
Over-engineering for scale day 1Start simple, design for change
Picking unfamiliar tech for MVPUse what team knows, experiment later
Ignoring deployment complexityConsider ops from the start
One database for everythingRight tool for each data pattern

Template Reference

Use template: specwright/templates/product/tech-stack-template.md

Hybrid lookup:

  • TRY: specwright/templates/product/tech-stack-template.md (project)
  • FALLBACK: ~/.specwright/templates/product/tech-stack-template.md (global)