Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. Duct

Duct

MITClojure

A server-side application framework for Clojure built on Integrant.

GitHubGitHub
1.2k stars52 forks0 contributors

What is Duct?

Duct is a server-side application framework for Clojure that provides a structured approach to building web applications and services. It helps developers create maintainable systems by organizing code into reusable components with clear dependencies using Integrant for component management.

Target Audience

Clojure developers building web applications, APIs, or backend services who want a structured, component-based architecture for maintainable code.

Value Proposition

Developers choose Duct for its clean integration with Integrant, modular design that promotes code reuse, and production-ready approach to building scalable Clojure applications.

Overview

Server-side application framework for Clojure

Use Cases

Best For

  • Building maintainable web applications in Clojure
  • Creating RESTful APIs with component-based architecture
  • Developing microservices with clear dependency management
  • Projects requiring REPL-driven development workflows
  • Applications needing environment-specific configuration
  • Teams wanting structured Clojure application patterns

Not Ideal For

  • Projects requiring rapid prototyping with minimal configuration and boilerplate, where simpler frameworks like Compojure might suffice.
  • Teams that prefer convention-over-configuration approaches with integrated frontend tooling, as Duct focuses on server-side modularity.
  • Applications needing extensive real-time features or WebSockets out-of-the-box without additional library integration.

Pros & Cons

Pros

Integrant-Based Architecture

Leverages Integrant for clear component lifecycle and dependency management, making code reusable and easy to test, as highlighted in its key features.

Modular Design

Encourages building applications from small, focused components, promoting maintainability and code organization per the philosophy of simplicity and composability.

Configuration Flexibility

Supports external configuration with environment-specific overrides, simplifying deployment across different stages, a core feature for production readiness.

Development Tools

Includes tools for REPL-driven development and hot code reloading, enhancing developer productivity and workflow efficiency.

Cons

Deprecated Initial Setup

The Leiningen template is deprecated, complicating project initialization and potentially relying on outdated resources, as noted in the README.

Integrant Learning Curve

Requires familiarity with Integrant's component system, adding overhead for teams new to this pattern and increasing initial development time.

Limited Frontend Integration

Focused solely on server-side development, necessitating additional setup for frontend frameworks or real-time features, which might not suit full-stack projects.

Frequently Asked Questions

Quick Stats

Stars1,152
Forks52
Contributors0
Open Issues10
Last commit6 months ago
CreatedSince 2014

Tags

#server-side#modular-design#framework#repl-driven-development#clojure#web-framework#web#configuration-management#application-architecture

Built With

C
Clojure
L
Leiningen

Included in

Clojure2.8k
Auto-fetched 6 hours ago

Related Projects

CompojureCompojure

A concise routing library for Ring/Clojure

Stars4,115
Forks260
Last commit7 months ago
PedestalPedestal

The Pedestal Server-side Libraries

Stars2,768
Forks311
Last commit2 days ago
ReititReitit

A fast data-driven routing library for Clojure/Script

Stars1,565
Forks260
Last commit1 month ago
Compojure-apiCompojure-api

Sweet web apis with Compojure & Swagger

Stars1,121
Forks146
Last commit1 year 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