# middleman/middleman

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/middleman-middleman).**

7,110 stars · 752 forks · Ruby · MIT

## Links

- GitHub: https://github.com/middleman/middleman
- Homepage: https://middlemanapp.com
- awesome-repositories: https://awesome-repositories.com/repository/middleman-middleman.md

## Topics

`middleman` `static-site-generator`

## Description

Middleman is a Ruby-based static site generator and web framework used to transform templates and assets into standalone HTML, CSS, and JavaScript files. It functions as a multi-engine template processor and build tool, converting source markup into production-ready websites that can be hosted on any web server.

The system is distinguished by a comprehensive asset pipeline that handles compression, minification, and fingerprinting to optimize web delivery. It features an extensible architecture with lifecycle hooks and a middleware-based request interception layer, allowing for the programmatic manipulation of content and site structure.

The project covers a broad range of capabilities, including multilingual site localization, static blog management with tag and archive organization, and data-driven content injection. It also provides development tools such as a local preview server with automatic browser refreshing and various deployment options for pushing files via rsync, FTP, or Git.

Project initialization is supported through skeleton creation and templating utilities to bootstrap new site structures.

## Tags

### Web Development

- [Static Site Generators](https://awesome-repositories.com/f/web-development/static-site-generators.md) — Transforms templates and assets into standalone HTML, CSS, and JavaScript files for hosting on any web server. ([source](http://middlemanapp.com/basics/getting-started/))
- [Ruby Frameworks](https://awesome-repositories.com/f/web-development/web-application-frameworks/ruby-frameworks.md) — Implements a Ruby-based web framework for processing assets and rendering dynamic static page content.
- [Filesystem-to-URL Endpoint Mapping](https://awesome-repositories.com/f/web-development/api-management-tools/api-development-management/web-apis/administrative-api-endpoints/endpoint-discovery/endpoint-translation-maps/filesystem-to-url-endpoint-mapping.md) — Automatically generates URL paths based on the physical directory structure of the source files.
- [Nested Layouts](https://awesome-repositories.com/f/web-development/file-system-routing/nested-layouts.md) — Stacks multiple layouts so a page inherits structure from both category-specific and global layouts. ([source](https://middlemanapp.com/basics/layouts/))
- [Asset Optimization Pipelines](https://awesome-repositories.com/f/web-development/front-end-development-workflows/asset-optimization-pipelines.md) — Implements a build pipeline to compile, minify, and optimize CSS and JavaScript assets for production delivery.
- [Site Localization](https://awesome-repositories.com/f/web-development/internationalization-localization/translation-management-platforms/site-localization.md) — Supports multilingual site localization through locale files and language-specific URL mapping.
- [Frontmatter-Driven Page Control](https://awesome-repositories.com/f/web-development/page-generation/frontmatter-driven-page-control.md) — Uses YAML or JSON frontmatter to control individual page variables, layouts, and organization.
- [Pretty URL Generation](https://awesome-repositories.com/f/web-development/pretty-url-generation.md) — Generates a folder for each page with an index file so pages load without file extensions. ([source](https://middlemanapp.com/advanced/pretty-urls/))
- [Shared Layouts](https://awesome-repositories.com/f/web-development/shared-layouts.md) — Wraps individual page content in a common HTML structure to share headers and footers across templates. ([source](https://middlemanapp.com/basics/layouts/))
- [Static Path Resolution](https://awesome-repositories.com/f/web-development/static-path-resolution.md) — Resolves source paths to correct absolute or relative output URLs when creating HTML link tags. ([source](https://middlemanapp.com/basics/helper-methods/))
- [Local Development Hosting](https://awesome-repositories.com/f/web-development/web-application-hosting/local-development-hosting.md) — Provides a local web server to render development files and reflect content changes in real-time. ([source](https://middlemanapp.com/basics/start-new-site))
- [Asset Pipelines](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/asset-management-build-tools/asset-lifecycle-orchestration/asset-pipelines.md) — Integrates build systems that process, transform, and bundle frontend CSS and JavaScript assets. ([source](https://middlemanapp.com/advanced/asset-pipeline/))
- [Asset Optimization Pipelines](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/asset-management-build-tools/asset-lifecycle-orchestration/asset-pipelines/asset-optimization-pipelines.md) — Provides integrated workflows for bundling, minifying, and transforming web assets to optimize production delivery.
- [Collection Partitioning & Grouping](https://awesome-repositories.com/f/web-development/api-management-tools/content-static-site-generation/content-collection-managers/collection-manipulation-utilities/collection-partitioning-grouping.md) — Defines dynamic sets of files and paths using logic to create hashes or arrays for use in templates. ([source](https://middlemanapp.com/basics/upgrade-v4/))
- [Drafting Workflows](https://awesome-repositories.com/f/web-development/api-management-tools/content-static-site-generation/drafting-workflows.md) — Implements a system to hide incomplete content from production builds using draft flags or publication dates. ([source](https://middlemanapp.com/basics/blogging/))
- [Asset Versioning](https://awesome-repositories.com/f/web-development/asset-versioning.md) — Implements asset versioning via content hashing to force browser cache updates for production files. ([source](https://middlemanapp.com/advanced/improving-cacheability/))
- [Global Site Configuration](https://awesome-repositories.com/f/web-development/global-site-configuration.md) — Provides a system for defining shared global data and settings accessible across the entire website. ([source](https://middlemanapp.com/advanced/configuration/))
- [Metadata-Driven Layout Assignment](https://awesome-repositories.com/f/web-development/layout-engines/page-layout-configurations/custom-layout-overrides/metadata-driven-layout-assignment.md) — Allows assigning specific layout files to individual pages or groups via configuration files or page-level metadata. ([source](https://middlemanapp.com/basics/layouts/))
- [Localized URL Mapping](https://awesome-repositories.com/f/web-development/localized-url-mapping.md) — Remaps file names and directory paths for specific languages to ensure URLs are translated for users. ([source](https://middlemanapp.com/advanced/localization/))
- [Relative Asset Path Resolution](https://awesome-repositories.com/f/web-development/relative-asset-path-resolution.md) — Handles the insertion of hyperlinks and scripts, resolving assets relative to the current page path. ([source](https://middlemanapp.com/basics/helper-methods/))
- [Responsive Asset Generation](https://awesome-repositories.com/f/web-development/responsive-asset-generation.md) — Produces multiple image sizes and resolutions for the srcset attribute to load the optimal asset per viewport. ([source](https://middlemanapp.com/advanced/file-size-optimization/))

### Content Management & Publishing

- [Blog Post Scaffolding](https://awesome-repositories.com/f/content-management-publishing/blog-post-scaffolding.md) — Generates article files from templates or commands using frontmatter for titles and metadata. ([source](https://middlemanapp.com/basics/blogging/))
- [Data-Driven Templates](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing/rendering-visualization/document-rendering/data-driven-templates.md) — Injects structured YAML or JSON data into templates to dynamically generate site content.
- [Static Blogging Systems](https://awesome-repositories.com/f/content-management-publishing/static-blogging-systems.md) — Provides specialized infrastructure for static blogging, including chronological archives, tags, and paginated article lists.
- [Build Tools](https://awesome-repositories.com/f/content-management-publishing/static-websites/build-tools.md) — Provides a command-line interface for compiling markup languages and optimizing production assets.
- [Static Article Pagination](https://awesome-repositories.com/f/content-management-publishing/article-list-retrieval/static-article-pagination.md) — Splits long lists of articles across multiple numbered pages to improve navigation and page load. ([source](https://middlemanapp.com/basics/blogging/))
- [Custom Article Collections](https://awesome-repositories.com/f/content-management-publishing/custom-article-collections.md) — Groups articles based on frontmatter attributes to generate corresponding category archive pages. ([source](https://middlemanapp.com/basics/blogging/))
- [Language-Specific Templates](https://awesome-repositories.com/f/content-management-publishing/language-specific-templates.md) — The creation of separate template files for different languages to handle large blocks of translated text efficiently. ([source](https://middlemanapp.com/advanced/localization/))
- [Localized Content Generation](https://awesome-repositories.com/f/content-management-publishing/multilingual-content-mappings/localized-content-generation.md) — Produces multiple language versions of pages through locale files and template helpers. ([source](https://middlemanapp.com/advanced/localization/))
- [Development Preview Servers](https://awesome-repositories.com/f/content-management-publishing/static-site-document-generators/static-site-generators/development-preview-servers.md) — Provides a local development server with live reloading for real-time visual feedback during template development. ([source](https://middlemanapp.com/basics/development-cycle/))
- [Template Partial Reuse](https://awesome-repositories.com/f/content-management-publishing/template-partial-reuse.md) — Provides a mechanism to share reusable HTML or template code snippets across layouts and pages. ([source](https://middlemanapp.com/basics/partials/))
- [Virtual Site Map Manipulation](https://awesome-repositories.com/f/content-management-publishing/virtual-site-map-manipulation.md) — Allows adding or altering pages within the site structure to generate dynamic content or reroute resources. ([source](https://middlemanapp.com/advanced/custom-extensions/))

### Data & Databases

- [Page-Scoped Data Variables](https://awesome-repositories.com/f/data-databases/database-record-management/record-to-page-bindings/page-scoped-data-variables.md) — Assigns custom metadata to individual templates using YAML or JSON blocks to control content on a per-page basis. ([source](https://middlemanapp.com/basics/frontmatter/))
- [Template Function Injections](https://awesome-repositories.com/f/data-databases/data-export/template-based-exports/template-function-injections.md) — Allows the injection of custom Ruby logic and helper functions into the template context for page rendering. ([source](https://middlemanapp.com/advanced/custom-extensions/))
- [Content Archive Pages](https://awesome-repositories.com/f/data-databases/digital-archives/chronological-archives/content-archive-pages.md) — Produces chronological index pages for articles filtered by year, month, or day. ([source](https://middlemanapp.com/basics/blogging/))
- [Site Map Generators](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/site-map-generators.md) — Indexes every page and asset to provide a structured list of resources for navigation and search. ([source](https://middlemanapp.com/advanced/sitemap/))
- [Automated Tag Archives](https://awesome-repositories.com/f/data-databases/tag-based-search/item-tagging-and-organization/automated-tag-archives.md) — Groups articles using frontmatter tags and automatically generates dedicated archive pages for each tag. ([source](https://middlemanapp.com/basics/blogging/))

### Development Tools & Productivity

- [Browser Reload Triggers](https://awesome-repositories.com/f/development-tools-productivity/browser-reload-triggers.md) — Triggers an automatic browser reload whenever project files are edited to show changes instantly. ([source](https://middlemanapp.com/basics/development-cycle/))
- [Static Asset Pipelines](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/asset-file-management/asset-processing-pipelines/asset-transformation-pipelines/static-asset-pipelines.md) — Ships an automated asset pipeline to compress, minify, and fingerprint CSS and JavaScript for optimized delivery.
- [Development Iteration Workflows](https://awesome-repositories.com/f/development-tools-productivity/development-iteration-workflows.md) — Facilitates a rapid development cycle with local preview servers and automatic browser refreshing.
- [Environment Configuration Management](https://awesome-repositories.com/f/development-tools-productivity/environment-configuration-management.md) — Manages project-specific settings and environment variables to control behavior across development and production. ([source](https://middlemanapp.com/basics/upgrade-v4/))
- [Dynamic Page Generators](https://awesome-repositories.com/f/development-tools-productivity/page-skeleton-generators/dynamic-page-generators.md) — Programmatically creates new site resources and pages via extensions or configuration. ([source](https://middlemanapp.com/basics/upgrade-v4/))
- [Template-Based Page Generators](https://awesome-repositories.com/f/development-tools-productivity/page-skeleton-generators/dynamic-page-generators/template-based-page-generators.md) — Creates several unique HTML files from a single template by injecting different variables into each instance. ([source](https://middlemanapp.com/advanced/dynamic-pages/))

### User Interface & Experience

- [HTML Template Renderers](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/html-template-renderers.md) — Transforms source files written in various markup languages into final HTML and CSS output. ([source](https://middlemanapp.com/advanced/template-engine-options/))
- [Multi-Engine Template Support](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/html-template-renderers/multi-engine-template-support.md) — Supports multiple template engines to decouple source markup from the final static HTML output.

### DevOps & Infrastructure

- [Asset Filename Hashing](https://awesome-repositories.com/f/devops-infrastructure/cache-management/asset-filename-hashing.md) — Creates unique filenames based on content hashes to ensure correct asset versioning when using CDNs. ([source](https://middlemanapp.com/basics/build-and-deploy/))
- [Remote File Deployment](https://awesome-repositories.com/f/devops-infrastructure/remote-file-deployment.md) — Pushes built static files to remote hosts using protocols such as rsync, FTP, SFTP, or Git. ([source](https://middlemanapp.com/basics/build-and-deploy/))
- [Static Site Deployment](https://awesome-repositories.com/f/devops-infrastructure/static-site-deployment.md) — Enables exporting production-ready static files and pushing them to remote servers via rsync, FTP, or Git.

### Programming Languages & Runtimes

- [Template Helper Registrations](https://awesome-repositories.com/f/programming-languages-runtimes/language-helpers/custom-helper-creation/template-helper-registrations.md) — Allows the registration of user-defined methods to be accessible across all controllers and view templates. ([source](https://middlemanapp.com/basics/helper-methods/))

### Software Engineering & Architecture

- [Build Lifecycle Hooks](https://awesome-repositories.com/f/software-engineering-architecture/build-lifecycle-hooks.md) — Allows the creation of custom classes that hook into the system lifecycle to manipulate site structure and content. ([source](https://middlemanapp.com/advanced/custom-extensions/))
- [Hook-Based Extensibility](https://awesome-repositories.com/f/software-engineering-architecture/hook-based-extensibility.md) — Implements an extensibility pattern allowing custom classes to hook into the build process and manipulate content.
- [Module-Based Extensions](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/developer-authoring-interfaces/custom-module-implementations/module-functionality-extenders/module-based-extensions.md) — Enables extending functionality by integrating external modules that provide custom helper methods. ([source](https://middlemanapp.com/basics/directory-structure/))

### Part of an Awesome List

- [Ruby Frameworks and Tools](https://awesome-repositories.com/f/awesome-lists/devtools/ruby-frameworks-and-tools.md) — Tool for building static websites.
