A curated list of awesome resources for Spec-Driven Development (SDD) - the practice of writing specifications first to guide development, testing, and documentation.
Spec-Driven Development is a methodology where comprehensive specifications are created before implementation begins. This approach ensures better alignment between requirements and delivery, improves code quality, and facilitates better testing and documentation.
- What is Spec-Driven Development?
- API Design
- Tools
- Languages & Frameworks
- Testing
- Documentation
- Articles & Tutorials
- Books
- Videos & Talks
- Communities
- Examples
Spec-Driven Development (SDD) is a development methodology where detailed specifications are written before any implementation begins. These specifications serve as:
- Single Source of Truth: All stakeholders refer to the same specification
- Contract Definition: Clear interfaces between components and services
- Test Foundation: Specifications drive automated testing strategies
- Documentation Base: Living documentation that stays synchronized with code
- Design Tool: Forces thinking about design decisions upfront
- OpenAPI Specification - The OpenAPI Specification (OAS) defines a standard, language-agnostic interface to RESTful APIs
- Swagger Editor - Online editor for writing OpenAPI specifications
- Swagger Codegen - Generate API clients, server stubs and documentation from OpenAPI specs
- Postman - API development environment with OpenAPI support
- GraphQL - A query language and runtime for APIs with strong schema definition
- Apollo Server - GraphQL server with schema-first development
- GraphQL Code Generator - Generate code from GraphQL schemas
- AsyncAPI - Specification for event-driven APIs
- JSON Schema - Vocabulary for validating JSON documents
- Protocol Buffers - Language-neutral, platform-neutral extensible mechanism for serializing structured data
- Insomnia - API client with design-first workflow
- Stoplight Studio - Visual OpenAPI designer
- API Blueprint - High-level API description language
- RAML - RESTful API Modeling Language
- OpenAPI Generator - Generate clients, servers, and documentation from OpenAPI specs
- QuickType - Generate types and converters from JSON, schema, and GraphQL
- JSON Schema to TypeScript - Compile JSON Schema to TypeScript type definitions
- Dredd - HTTP API testing framework based on API Blueprint and OpenAPI
- Prism - Mock server and validator for OpenAPI specifications
- OpenAPI Diff - Compare OpenAPI specifications
- tRPC - End-to-end typesafe APIs made easy
- Zod - TypeScript-first schema validation with static type inference
- TypeScript - Typed superset of JavaScript
- io-ts - Runtime type system for IO decoding/encoding
- Pydantic - Data validation and settings management using Python type annotations
- FastAPI - Modern, fast web framework with automatic API documentation
- Marshmallow - Object serialization/deserialization library
- Spring Boot - Framework with excellent OpenAPI integration
- Bean Validation - Java specification for validating data
- Protocol Buffers for Go - Go tutorial for Protocol Buffers
- Gin with OpenAPI - Gin middleware to automatically generate OpenAPI documentation
- Pact - Contract testing framework
- Spring Cloud Contract - Contract-driven development for JVM applications
- Wiremock - Mock server for HTTP-based APIs
- QuickCheck - Property-based testing library for Haskell
- Hypothesis - Property-based testing for Python
- fast-check - Property-based testing framework for JavaScript/TypeScript
- Swagger UI - Interactive API documentation
- ReDoc - Beautiful API documentation from OpenAPI specs
- Stoplight Elements - Beautiful, interactive API documentation
- GitBook - Documentation platform with API integration
- Notion - All-in-one workspace with API documentation features
- Confluence - Team workspace with API documentation capabilities
- API Design-First vs Code-First - Understanding the design-first approach
- Contract-First Development - Martin Fowler on Consumer-Driven Contracts
- Schema-First GraphQL Development - Apollo's guide to schema-first GraphQL
- Building APIs with Node.js - Comprehensive guide to API development with Node.js
- API Design Patterns - Common patterns for designing web APIs
- Microservices Patterns - Includes patterns for service contracts and API design
- API Design-First Approach - Introduction to design-first API development
- Contract Testing with Pact - Comprehensive guide to contract testing
- GraphQL Schema Design - Best practices for GraphQL schema design
- OpenAPI Community - Discussion forum for OpenAPI specification
- GraphQL Community - GraphQL community resources and forums
- API Evangelist - Community focused on API industry and best practices
- r/webdev - Web development community with API discussions
- OpenAPI Petstore - Sample OpenAPI specification and implementation
- GraphQL Examples - GraphQL.js examples and tests
- tRPC Examples - Various tRPC implementation examples
- GitHub API - Well-documented REST API with OpenAPI specification
- Stripe API - Excellent example of API design and documentation
- Twilio API - Clear API documentation and SDKs
Contributions are welcome! Please read the contribution guidelines first.
This work is licensed under a Creative Commons Attribution 4.0 International License.
