Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. selmer

selmer

EPL-1.0Clojure0.7.9

A fast, Django-inspired template system for Clojure with built-in filters, tags, and template inheritance.

GitHubGitHub
1.0k stars121 forks0 contributors

What is selmer?

Selmer is a fast, Django-inspired template system written in pure Clojure. It allows developers to generate dynamic HTML and other text formats using a familiar syntax with variables, filters, and tags. It solves the need for a robust, feature-rich templating engine in Clojure web applications.

Target Audience

Clojure web developers who need a powerful, Django-like templating system for server-side rendering, especially those familiar with Django or Jinja2 syntax.

Value Proposition

Developers choose Selmer for its performance, extensive built-in filters and tags, template inheritance, and seamless integration with Clojure. It offers a mature alternative to Clojure's built-in templating with a more expressive syntax.

Overview

A fast, Django inspired template system in Clojure.

Use Cases

Best For

  • Generating dynamic HTML in Clojure web applications
  • Building reusable UI components with template inheritance
  • Server-side rendering with complex text formatting needs
  • Migrating Django/Jinja2 templates to a Clojure stack
  • Creating email templates or documentation with dynamic content
  • Extending templating logic with custom Clojure filters and tags

Not Ideal For

  • Applications requiring heavy client-side interactivity or real-time updates with WebSockets
  • Teams preferring pure functional UI composition over markup-based templating
  • Projects with frequent template partial changes where manual cache invalidation is impractical
  • Environments needing out-of-the-box integrations with modern JavaScript frameworks

Pros & Cons

Pros

Django-inspired syntax

Uses familiar {{variable}} and {% tag %} patterns, making it accessible for developers from Django or Jinja2 backgrounds, as highlighted in the README's emphasis on Django inspiration.

Rich filter library

Includes over 50 built-in filters for text manipulation, formatting, and logic, such as date formatting, pluralization, and hashing, with detailed examples provided in the README.

Template inheritance

Supports extends and block tags for reusable layouts and component-based design, demonstrated in the README with examples of parent and child templates.

Extensibility via Clojure

Allows custom tags and filters to be added using Clojure functions, as shown in the README with add-filter! and add-tag! macros for project-specific logic.

Cons

Caching limitations

Changes in referenced templates (via include or extend) do not trigger automatic recompiles, requiring manual file touches or cache management, as warned in the README.

Performance with string keys

Heavily nested context maps with string keys are slower to render compared to keyword keys, a performance trade-off explicitly noted in the README.

Clojure-specific ecosystem

As a niche Clojure library, it lacks the broad third-party plugin ecosystem and community support of more mainstream templating engines like Jinja2 or Handlebars.

Frequently Asked Questions

Quick Stats

Stars1,039
Forks121
Contributors0
Open Issues22
Last commit13 days ago
CreatedSince 2013

Tags

#django-templates#html-template#server-side-rendering#template-engine#html-generation#clojure-library#html#clojure#web-development#text-templating

Built With

C
Clojure

Included in

Clojure2.8k
Auto-fetched 1 day ago

Related Projects

hiccuphiccup

Fast library for rendering HTML in Clojure

Stars2,849
Forks177
Last commit1 year ago
EnliveEnlive

a selector-based (à la CSS) templating and transformation system for Clojure

Stars1,618
Forks149
Last commit4 years ago
clostacheclostache

{{ mustache }} for Clojure

Stars325
Forks60
Last commit4 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub