Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. prone

prone

NOASSERTIONClojure

A Ring middleware for enhanced exception reporting and debugging in Clojure web applications.

GitHubGitHub
514 stars25 forks0 contributors

What is prone?

Prone is a Ring middleware for Clojure web applications that enhances exception reporting and debugging. It provides a visually rich error page with filtered stack traces, interactive data inspection, and a debug function for runtime exploration. It solves the problem of cryptic stack traces and limited debugging context in development.

Target Audience

Clojure web developers using Ring or compatible frameworks (like Pedestal or Catacumba) who want better debugging and error visualization during development.

Value Proposition

Developers choose Prone for its Rails-inspired, interactive error pages that make debugging faster and more intuitive, with features like application-frame filtering, environment data browsing, and AJAX support not found in standard Ring error handlers.

Overview

Better exception reporting middleware for Ring.

Use Cases

Best For

  • Debugging Ring-based Clojure web applications in development
  • Visualizing and filtering stack traces to focus on application code
  • Inspecting request maps and local bindings during runtime
  • Handling errors in AJAX-heavy ClojureScript frontends
  • Adding interactive debugging similar to better_errors in Rails
  • Improving developer experience in Clojure web projects

Not Ideal For

  • Production deployments where exposing internal application data poses a security risk
  • Clojure web projects not using Ring or compatible frameworks without third-party integrations
  • Teams that rely exclusively on command-line or logging-based debugging without web interfaces
  • Applications with stringent development-time performance requirements that cannot tolerate middleware overhead

Pros & Cons

Pros

Visual Stack Trace Filtering

Automatically filters out non-application frames based on project namespaces, presenting cleaner traces that focus on relevant code, as highlighted in the enhanced stack traces feature.

Interactive Debugging Function

The debug function allows real-time inspection of local bindings, request maps, and custom data during runtime, mimicking Rails' better_errors for hands-on debugging.

AJAX and Frontend Support

Includes a Link header for error page access in AJAX requests, with provided frontend code examples, making it useful for modern web applications with ClojureScript.

Configurable Middleware Options

Offers settings like :skip-prone? and :app-namespaces to customize error handling for specific requests or namespaces, adding flexibility as shown in the Q&A.

Cons

Production Unsafe

Exposes internal data and is explicitly warned against in production, requiring additional configuration like property-based enabling to avoid security risks.

Limited Framework Compatibility

Built primarily for Ring; support for frameworks like Pedestal or Catacumba depends on external libraries, which may lack maintenance or features.

Unresolved Known Issues

Has persistent bugs such as difficulty differentiating kebab-case and snake-case function names and conflicts with middlewares like Austin's browser-connected-repl, as noted in the known problems.

Manual Setup Overhead

Requires manual middleware wrapping and configuration, such as using system properties for enabling, which can be error-prone compared to automated tools.

Frequently Asked Questions

Quick Stats

Stars514
Forks25
Contributors0
Open Issues3
Last commit1 year ago
CreatedSince 2014

Tags

#debugging-tools#stack-trace#dev-tools#ring-middleware#error-reporting#clojure#exception-handling#web-development

Built With

C
Clojure
C
ClojureScript
L
Leiningen
r
ring

Included in

Clojure2.8k
Auto-fetched 18 hours ago

Related Projects

lein-figwheellein-figwheel

Figwheel builds your ClojureScript code and hot loads it into the browser as you are coding!

Stars2,874
Forks204
Last commit2 years ago
ultraultra

A Leiningen plugin for a superior development environment

Stars1,235
Forks34
Last commit3 years ago
flow-storm-debuggerflow-storm-debugger

A debugger for Clojure and ClojureScript with some unique features.

Stars857
Forks39
Last commit2 days ago
prettypretty

Library for helping print things prettily, in Clojure - ANSI fonts, formatted exceptions

Stars623
Forks29
Last commit2 months 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