marten

From public sources

The batteries-included web framework for Crystal.

ApplicationCategory: Web AppsOpen sourcedata checked Oct 16, 2026

Overview

  • backend
  • crystal
  • crystal-lang
  • crystal-language
  • framework
  • http
  • server
  • web
  • web-framework
  • webapp
  • webapplication

Installation

Commands are shown, never run by the marketplace. Check them against the official documentation.

Compatibility

Unknown means no evidence was found — not that the product is incompatible.
PlatformStatusArchitectureEvidenceConfidence
Web browserUnknown———
Server / self-hostedUnknown———
Container (OCI)Unknown———

Releases

checked Oct 30, 2026
v0.7.1LatestOct 10, 2026Official source ↗

Files in 0.7.1

This release has no attached files.

Release history

Quality profile

algorithm quality-v1.0 · assessed Oct 16, 2026
Quality Score83
Risk Score0
Confidence 1.00
Quality Score and Risk Score are different measures. A high score does not guarantee safety.

Score components

Maintenance · 2020
last activity 1 days ago
Documentation · 1515
README 4758 chars, description present
Ready to use · 156
install instructions: no; releases: yes
Metadata · 1010
4/4 of description, homepage, license, topics
Releases · 1010
10 release(s), latest 5 days ago
Category confidence · 105
classifier confidence 0.5
Adoption · 107
488 stars (log-dampened, 10k = max)
License clarity · 55
SPDX MIT
Community · 55
issues enabled, 34 forks

License

MIT
Known licensefrom the repository host

This is the catalog policy status, not legal advice.

Sources

github.com/martenframework/martenPrimary★ 488 starslast activity Oct 15, 2026Primary repository · Confidence 1.00

Reviews

Sign in to write a review

No reviews yet.

Alternatives

README

From martenframework/marten · license MIT · fetched Oct 30, 2026

Marten

[logo]

[Version] [License] [CI] [CI] [Discord]


Marten is a batteries-included web framework for Crystal. It provides a consistent and extensible set of tools for building complete web applications without reinventing the wheel.

Overview

Key characteristics

🧳 Batteries included

Marten adheres to the "batteries included" philosophy. Out of the box, it provides the tools and features that are commonly required by web applications: ORM, migrations, translations, templating engines, sessions, emailing, authentication, etc.

🧩 Consistent

Marten's components are designed to work together and follow consistent conventions across the framework, making its APIs predictable and easy to learn.

🔧 Extensible

Marten gives you the ability to contribute extra functionalities to the framework easily. Things like custom model field implementations, new route parameter types, session stores, etc. can be registered with the framework.

💠 App-oriented

Marten allows separating projects into a set of logical "apps". These apps can also be extracted to contribute features and behaviors to other Marten projects. This provides a foundation for developing and distributing reusable Marten applications.

⚡ Fast

Marten gives you the ability to build full-featured web applications while leveraging the native performance of the Crystal programming language. It also aims to keep compile times under control.

🛡️ Secure by default

Marten comes with security mechanisms out of the box. Things like cross-site request forgeries, clickjacking, or SQL injections are taken care of by the framework to avoid common security issues.

Marten at a glance

Design your models easily

Marten comes with an object-relational mapper (ORM) that you can leverage to describe your database using Crystal classes and a convenient DSL.

class Article < Marten::Model
  field :id, :big_int, primary_key: true, auto: true
  field :title, :string, max_size: 128
  field :content, :text
  field :author, :many_to_one, to: User
end

Process requests with handlers

Handlers are responsible for processing web requests and for returning responses. This can involve loading records from the database, rendering HTML templates, or producing JSON payloads.

class ArticleListHandler < Marten::Handler
  def get
    render "articles/list.html", { articles: Article.all }
  end
end

Render user-facing content with templates

Templates provide a convenient way to define your presentation logic and to write content (such as HTML) that is rendered dynamically. This rendering can involve model records or any other variables you define.

{% extend "base.html" %}
{% block content %}
<ul>
  {% for article in articles %}
    <li>{{ article.title }}</li>
  {% endfor %}
</ul>
{% endblock content %}

Documentation

Documentation is available at https://martenframework.com/docs.

Getting started

Are you new to the Marten web framework? The following resources will help you get started:

  • The installation guide will help you install Crystal and the Marten CLI
  • The tutorial will help you discover the main features of the framework by creating a simple web application

Authors

Morgan Aubert (@ellmetha) and contributors.

Acknowledgments

The Marten web framework initially drew its inspiration from Django and Ruby on Rails. You can browse the Acknowledgments section of the documentation to learn more about the various inspirations and contributions that helped shape Marten.

License

MIT. See LICENSE for more details.

Open the repository ↗