| name | stack-compatibility |
| description | Verifies that chosen technologies integrate well together before a stack decision is committed |
Stack Compatibility Skill
Verifies that chosen technologies integrate well together. Prevents "I picked these tools and they don't work well together" regrets.
When to Use
Use this skill to verify:
- Chosen tools work together โ React + Node + MongoDB = good?
- No hidden incompatibilities โ will I hit issues in production?
- Team can support it โ do we have expertise for this combo?
- Licenses compatible โ can we use these together commercially?
- Performance assumptions hold โ does this stack meet latency targets?
Input
Provide tech stack selections:
{
"frontend": "React 18",
"backend": "Node.js + Express",
"database": "PostgreSQL",
"cache": "Redis",
"monitoring": "Datadog",
"deployment": "Docker + Kubernetes",
"auth": "Clerk",
"cdn": "Cloudflare",
"search": "Elasticsearch"
}
Output
A compatibility report:
{
"overall_compatibility": 0.95,
"green_flags": [
"React + Node.js very common (300k+ GitHub projects)",
"PostgreSQL + Redis standard caching pattern",
"Clerk supports Node.js OAuth natively",
"All chosen tools have mature Docker support"
],
"yellow_flags": [
"Elasticsearch adds operational complexity (requires 8GB RAM minimum)",
"Datadog cost can spike with high cardinality metrics",
"Kubernetes requires DevOps expertise (no junior-friendly)"
],
"red_flags": [
"None detected"
],
"known_issues": [
{
"tools": "React + Node.js",
"issue": "Build times can exceed 30s with large codebases",
"mitigation": "Use cache busting, incremental builds, esbuild"
Compatibility Categories
1. Integration Compatibility
Questions:
- Do these tools have published integrations?
- Do they share common languages (both support Node.js APIs)?
- Are there known version conflicts?
- Do webhooks/APIs work well together?
Example checks:
React + Node.js: โ
Perfect (same language, many libraries)
React + .NET: โ ๏ธ Possible (cross-language requires REST API)
PostgreSQL + Elasticsearch: โ
Standard (data pipeline)
PostgreSQL + DynamoDB: โ Bad (different paradigms, hard to sync)
2. Operational Compatibility
Questions:
- Do these tools have similar operational complexity?
- Can one person manage both?
- Are there conflicts in deployment patterns?
- Do monitoring/logging systems work for both?
Example combinations:
Vercel (fully managed) + Railway (managed) + Neon (managed): โ
Great
โ All fully managed, one dashboard, simple operations
Vercel + self-hosted Kubernetes + managed Neon: โ ๏ธ Mixed complexity
โ Frontend fully managed, backend complex, database managed
โ Operations person needs multi-cloud expertise
Vercel + Kubernetes + self-hosted PostgreSQL: โ Operational nightmare
โ Three different operational models
โ Likely 3 different people, hard to coordinate
3. Performance Compatibility
Questions:
- Do the latencies add up (each tool adds latency)?
- Does one slow tool bottleneck the whole system?
- Are there known performance gotchas?
- Can this stack meet your latency targets?
Example paths:
React (hydration 100ms) + Node.js (request 50ms) + PostgreSQL (query 20ms) = 170ms p99
โ Acceptable for most web apps
React (100ms) + Go (5ms) + PostgreSQL (20ms) = 125ms p99
โ Better for performance-critical apps
React (100ms) + Lambda (cold start 200ms) + DynamoDB (30ms) = 330ms p99
โ Too slow if sub-200ms required, okay for regular web app
4. Ecosystem Compatibility
Questions:
- Are there enough libraries/tools for this combo?
- Is the community large (can find help)?
- Are alternatives limited (vendor lock-in)?
- Will tools still be maintained in 5 years?
Example ecosystems:
Node.js + React: โ
Huge (700k npm packages, thousands of examples)
Go + React: โ ๏ธ Medium (Go ecosystem smaller, but growing)
Python + React: โ
Large (but less integrated than Node + React)
.NET + Vue: โ ๏ธ Small (fewer integrations, harder to find examples)
5. Licensing Compatibility
Questions:
- Can we use these together commercially?
- Are there GPL obligations?
- Do licenses conflict?
- Do we need commercial support licenses?
Common issues:
Open source MIT tools: โ
Safe (can use commercially)
GPL tools: โ ๏ธ Risky (might require open-sourcing your code)
Proprietary + GPL: โ Conflict (usually illegal to combine)
Open source + commercial SaaS: โ
Fine (add proprietary layer on top)
Known Incompatibilities
Hard Incompatibilities (won't work together)
| Combo | Problem | Alternative |
|---|
| Go + slow database | Go handles 100k req/sec but PostgreSQL does 1k/sec โ bottleneck | Use DynamoDB (scales better with Go) or add caching layer |
| Django + microservices | Django is monolith, forces tight coupling | Use FastAPI instead (designed for APIs) |
| Kubernetes + stateful database | Kubernetes assumes stateless, databases are stateful โ conflicts | Use managed database (AWS RDS) instead |
| React SPA + SEO critical | JavaScript rendering invisible to crawlers โ SEO fails | Use Next.js (server-side rendering) |
Soft Incompatibilities (work but harder)
| Combo | Issue | Mitigation |
|---|
| Python + real-time | Python slower than Go/Node โ harder to do real-time | Add Go microservice for real-time, Python for main app |
| Monolith + serverless functions | Monolith always running, functions cold-start โ inconsistent latency | Restructure to microservices first |
| Elasticsearch + small data | Elasticsearch overkill for <1M documents โ waste money and ops time | Use PostgreSQL full-text search instead |
| DynamoDB + complex queries | DynamoDB limited query language โ hard to build reports | Add data warehouse (Snowflake, BigQuery) |
Performance Compatibility Matrix
Frontend | Backend | Database | Typical Latency
-----------------|---------------|----------|----------------
React (100ms) | Node (50ms) | Postgres (20ms) | 170ms p99 โ
React (100ms) | Node (50ms) | MongoDB (30ms) | 180ms p99 โ
React (100ms) | Go (5ms) | Postgres (20ms) | 125ms p99 โ
React (100ms) | Python (100ms)| Postgres (20ms) | 220ms p99 โ ๏ธ
React (100ms) | Lambda (200ms)| Dynamo (30ms) | 330ms p99 โ ๏ธ
Vue (80ms) | Go (5ms) | Postgres (20ms) | 105ms p99 โ
โ
Vue (80ms) | Node (50ms) | Postgres (20ms) | 150ms p99 โ
Legend:
โ
Good (< 200ms) โ acceptable for most web apps
โ ๏ธ Acceptable (200-500ms) โ noticeable but OK
โ Poor (> 500ms) โ users will feel lag
โ
โ
Great (< 100ms) โ competitive advantage
Skill-Based Compatibility
Does your team have expertise for this stack?
Stack: React + Node.js + PostgreSQL
Required skills: JavaScript/TypeScript, basic SQL, npm/GitHub
Required experience: Junior+ (can learn on job)
Hiring difficulty: Easy (highest job market demand)
Compatibility: โ
Great for most teams
Stack: Go + React + Kubernetes + Elasticsearch
Required skills: Go, TypeScript, Docker, Kubernetes, bash scripting
Required experience: Senior+ (need production experience)
Hiring difficulty: Hard (Go specialists rare)
Compatibility: โ ๏ธ Need experienced team or hire consultants
Stack: Python + React + FastAPI + PostgreSQL
Required skills: Python, TypeScript, SQL, async/await patterns
Required experience: Mid-level+ (Python async is tricky)
Hiring difficulty: Medium (Python common, but not as much as JS)
Compatibility: โ
Good for teams with Python background
Compatibility Scoring Algorithm
score = 0.0
// Integration compatibility (0-0.25)
if has_published_integrations:
score += 0.15
if same_primary_language:
score += 0.10
// Operational compatibility (0-0.25)
if both_fully_managed:
score += 0.15
elif both_self_hosted:
score += 0.10 // consistent but harder
elif mixed:
score += 0.05 // harder to manage
if no_operational_conflicts:
score += 0.10
// Performance compatibility (0-0.25)
if latencies_sum_to_target:
score += 0.25
elif sum_within_10_percent:
score += 0.20
elif sum_within_25_percent:
score += 0.10
else:
score += 0.0 // too slow
// Ecosystem compatibility (0-0.15)
if large_community:
score += 0.10
if well_maintained:
score += 0.05
// Licensing (0-0.10)
if all_compatible:
score += 0.10
elif minor_issues:
score += 0.05
else:
score += 0.0 // can't use together
// Team skill match (0-0.10)
if team_has_experience:
score += 0.10
elif similar_to_existing_skills:
score += 0.05
else:
score += 0.0 // hiring/training burden
return min(score, 1.0)
Interpretation:
- 0.9-1.0: Excellent compatibility, go with this stack
- 0.7-0.9: Good compatibility, minor considerations
- 0.5-0.7: Acceptable but has trade-offs, understand them
- <0.5: Poor compatibility, reconsider choices
Usage in Commands
In /architect:recommend-stack
// After recommending 3 stacks:
for each recommended_stack:
compatibility_score = check_compatibility(stack)
if score < 0.7:
add warning: "This stack has compatibility concerns"
list yellow_flags
New command: /architect:check-stack-compatibility
/architect:check-stack-compatibility [--stack-file stack.json]
โ Detailed compatibility report for your chosen stack
In /architect:scaffold
// Before generating code:
check_compatibility(chosen_stack)
if red_flags:
ask user: "This stack has known issues. Continue anyway?"
Real-World Compatibility Examples
Example 1: SaaS MVP (Good Compatibility)
Stack: React + Node.js + PostgreSQL + Vercel + Clerk
Score: 0.95 โ
Green flags:
- React + Node.js industry standard (99,000+ GitHub projects)
- PostgreSQL + Node has mature libraries (Prisma, Knex)
- Vercel + Node native integration (best possible)
- Clerk supports Node.js OAuth natively
- All tools MIT/Apache licensed
Yellow flags: None
Result: This is the "default correct" stack for most SaaS companies
Example 2: High-Performance API (Good Compatibility)
Stack: Go + React + DynamoDB + Lambda + Datadog
Score: 0.88 โ
Green flags:
- Go + DynamoDB excellent fit (both designed for scale)
- Lambda + DynamoDB native AWS integration
- Datadog supports both Go and Lambda monitoring
Yellow flags:
- Go + DynamoDB harder hiring (Go specialists rare)
- React + Lambda cold starts (API might be slow)
- Team needs AWS expertise (Kubernetes simpler in some ways)
Result: Good for e-commerce/real-time, but requires experienced team
Example 3: Data App (Some Compatibility Issues)
Stack: Python + React + PostgreSQL + Airflow + Spark
Score: 0.72 โ ๏ธ
Green flags:
- Python + Airflow natural fit (both Python)
- Spark + PostgreSQL standard data pipeline
Yellow flags:
- Airflow operationally complex (needs dedicated DevOps person)
- Spark cold starts slow (not ideal for real-time)
- Team needs: Python devs + data engineers + DevOps โ 3+ people
Red flags: None
Result: Good for data companies, but higher operational burden
Example 4: Incompatible Choices (Poor Compatibility)
Stack: Java + Go (two backends) + React + 3 databases (PostgreSQL + MongoDB + DynamoDB)
Score: 0.45 โ
Problems:
- Java + Go requires two teams (hard to coordinate)
- 3 databases create data sync nightmare
- Operational complexity extremely high (3 different DB types)
- Hiring: need Java + Go specialists (tiny overlap)
- Team structure breaks (8+ people needed)
Recommendation: Simplify to one backend language (Node or Go)
Related Skills
constraint-solver/ โ picks stack that fits constraints
blueprint-variants/ โ generates architecture for chosen stack
cost-optimizer/ โ estimates costs for different stack combos