Skip to content

By Design

Some features are missing from Deserve on purpose. Each absence here is a decision, not a gap waiting to be filled. The framework gives the primitives, and the shape of the feature is left to the developer who knows the use case best.

This section explains the reasoning behind each omission and shows how to compose the same behavior from parts that already ship. Every recipe leans on tools covered elsewhere in the docs, mainly global middleware, the Context object, and the observability events.

What Lives Here

FeatureWhy It Is Not Built In
CompressionThe runtime and proxies already compress responses.
Pretty JSONFormatting is the consumer's job, so the wire stays minified.
HTTPS RedirectTLS belongs at the edge, and a forced redirect at the app can loop.
Bearer AuthToken schemes vary, so verification stays open to compose.
XSS Input SanitizerEscaping belongs at output, and the view engine already does it.
CachingStateless sessions plus in-memory maps cover the need.
Rate LimitingEvery team wants a different shape, composed with middleware.
Request IDThe resolved client IP is the trustworthy identity, not a random ID.
Method OverrideEvery HTTP method is a first-class route, so no verb to fake.
Locale RedirectReading the language header and redirecting is a few lines.
Server-TimingThe lifecycle measures duration, and the header is one line.
Distributed TracingNo OpenTelemetry SDK, since OTel-aligned events feed any backend.

Each page follows the philosophy of staying small on purpose. Leaving a feature out is not a missing piece, it is one less thing that can go wrong, and the primitives that ship are enough to build the rest.

Released under the MIT License.