A curated list of best practices, guidelines, standards, and conventions accepted for software engineering.
Creating user-friendly and visually appealing software interfaces.
- 8 Principles of Information Architecture - Eight principles to help designers make the right decisions when creating their build strategies.
- A11Y Project - Community-driven effort to make digital accessibility easier.
- BEM Methodology - Front-end naming method for organizing and naming CSS classes.
- Contrast Rebellion - Multitude of accessibility problems with unreadable, low-contrast texts.
- Guide to Accessible Form Validation - Considerations, so that nobody gets stuck on an inaccessible invalid field.
- Laws of UX - Collection of best practices that designers can consider when building user interfaces.
- Material Design Guidelines - Usability and platform guidance describe how to make sure your app is usable for all users.
Writing code to build software applications.
- Android Developer Guides - These documents teach you how to build Android apps using APIs in the Android framework and other libraries.
- AWS Well-Architected - Helps cloud architects build secure, high-performing, resilient, and efficient infrastructure for a variety of applications and workloads.
- Best practices for writing Dockerfiles - This topic covers recommended best practices and methods for building efficient images.
- Conventional Logs - Specification for adding human and machine-readable meaning to log messages.
- EKS Best Practices Guides - Set of best practices for day 2 operations for Amazon EKS.
- Google API Design Guide - General design guide that Google follows when designing Cloud APIs and other Google APIs.
- Google Best Practices for Java Libraries - Rules that minimize problems for consumers of interconnected Java libraries.
- Google Cloud Architecture Framework - Provides recommendations and best practices for designing and operating a cloud topology.
- Google Engineering Practices - Collective experience of various best practices that were developed over time in Google.
- Google Style Guides - Complete definition of Google's coding standards for different languages.
- Guiding Principles of REST - Guiding principles for designing loosely coupled applications over the network.
- Hitchhiker's Guide to Python! - Best practice handbook for the installation, configuration, and usage of Python on a daily basis.
- OpenFeature - Open specification that provides a vendor-agnostic, community-driven API for feature flagging that works with your favorite feature flag management tool.
- Style Guide for Protobuf - This document is meant as a short reference for developers to refer to when writing Protobuf schemas.
- Kubernetes Configuration Best Practices - Consolidates configuration best practices that are introduced throughout the user guide, Getting Started documentation, and examples.
Methods for software development, delivery, and maintenance.
- C4 Model - An easy to learn, developer friendly approach to software architecture diagramming.
- Conventional Commits - Specification for adding human and machine-readable meaning to commit messages.
- Functional Documentation - Some collected thoughts and ideas around applying a functional approach to writing and maintaining documentation, especially for design systems.
- GitLab Documentation Style Guide - Standards for GitLab documentation, including grammar, formatting, word use, and more.
- Java Design Patterns - Software design patterns, principles, and snippets.
- Keep Changelog - Guidelines for maintaining a curated, chronologically ordered list of notable changes for each version of a project.
- Manifesto for Agile Software Development - Outlines the central values and principles of Agile software development.
- Manifesto for Fluid Software Development - Defines a new approach to software development focused on fluidity and adaptability.
- Minimum Viable CD - Set of practices that give the expected improvements to organizational structure that come with continuous delivery.
- Open GitOps - Set of open-source standards, best practices, and community-focused education to help organizations adopt a structured, standardized approach to implementing GitOps.
- Patterns for Managing Source Code Branches - Patterns that can allow teams to use branching effectively, concentrating around integrating the work of multiple developers and organizing the path to production releases.
- Semantic Versioning - Formal convention for determining the version number of new software releases.
- The Twelve-Factor App - Methodology for building software-as-a-service applications.
- Trunk Based Development - Version management practice where developers merge small, frequent updates into a "trunk" or main branch.
- Write the Docs - Collective wisdom of the Write the Docs community around best practices for creating software documentation.
- Writing Better Release Notes - Some thoughts on how to write better release notes.
Software and hardware for software development and testing.
- Choose a License - Non-judgmental guidance on choosing a license for your open source project.
- Command Line Interface Guidelines - Guide to help you write better command-line programs.
- Command-not-found - Helpful tool for installing any command on any operating system.
- End-of-life - Documents EOL dates and support lifecycles for various products.
- IP Guide - Easy to use API for looking up IP, Network, and ASN data.
- Maven Code Style and Code Conventions - Rules for how the sources should be formatted in order to improve consistency, readability, and maintainability.
- Terraform Best Practices - Best practices for using Terraform and recommendations for the most common issues.
- Think Like (a) Git - Guide to help understand how Git works under the hood.
- Typograms - Lightweight image format useful for defining simple diagrams in technical documentation.
Information storage, processing, and analysis in software.
- MLOps Principles - Best practices and tools to test, deploy, manage, and monitor ML models in real-world production.
- Transparent Telemetry - Designed to give developers the information they need to be effective without having to track detailed user activity.
Protecting software from attacks and misuse.
- Node.js Security Best Practices - This document intends to extend the current threat model and provide extensive guidelines on how to secure a Node.js application.
- OWASP Top 10 - Standard awareness document for developers and web application security.
- TLS Cipher Suite Search - Searchable directory of TLS cipher suites and related security details.
Values and practices influencing software development.
- Amazon Leadership Principles - Core principles for discussing ideas for new projects or deciding the best way to solve a problem in everyday life.
- Code of Conduct for Open Source Communities - Set of rules outlining the norms, rules, and responsibilities or proper practices of an individual party or an organization.
- Conventional Comments - Standard for formatting comments of any kind of review/feedback process.
- Dangit, Git!?! - List of common Git issues and ways to work around them.
- Developer Roadmaps - Step-by-step guides and paths to learn different tools or technologies.
- JSON Resume - Open source initiative to create a JSON-based standard for resumes.
- Open Source Guides - Collection of resources for individuals, communities, and companies who want to learn how to run and contribute to an open-source project.
- Principles of Green Software Engineering - Set of competencies needed to define, build and run green software applications.
- StaffEng - Guides for reaching and succeeding at Staff-plus roles.
- Which Version of JDK Should I Use? - This site gives independent, yet opinionated recommendations.