SLIM: Structured Low-bandwidth Information Markup v1.0

Unofficial Proposal Draft,

More details about this document
This version:
https://cqueern.github.io/slim-spec/
Issue Tracking:
GitHub
Editor:
Caleb Queern
Date:
2025-08-10

Abstract

SLIM is a minimal, text-first authoring profile that improves resilience and usability in low-bandwidth or austere network conditions. It constrains fonts, styling, and client-side behaviors; discourages complex constructs; and prohibits tracking. This Unofficial Draft documents SLIM v1.0 requirements.

Status of this document

1. Introduction

The goal of SLIM is to make essential information load fast and reliably on slow, congested, or intermittent networks. SLIM does this by restricting features that tend to harm resilience or add weight.

1.1 Non-goals

SLIM does not define new browser features, protocols, or conformance classes for user agents.

2. Scope

This document targets authors and publishers who want a predictable, lightweight subset of HTML for information delivery. It may be profiled by organizations (e.g., gov/NGO) with additional local rules.

3. Conformance

The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are to be interpreted as described in RFC 2119. A SLIM document is an HTML document that satisfies all MUST requirements herein. “Discouraged” items are permitted but SHOULD be avoided unless clearly justified.

4. Requirements (SLIM v1.0)

4.1 Document Identification — MUST

Include the following meta tag in <head>:

<meta name="slim-profile" content="SLIM v1.0">

4.2 Fetch Model (Single-Request) — MUST

A SLIM document MUST fully render after exactly one successful HTTPS request for the document URL, with no additional application-layer network requests initiated during load (i.e., without subsequent user interaction).

In-scope “additional requests” (prohibited during initial load):

Explicitly allowed:

Out of scope (not counted as additional requests):

Authoring requirements to satisfy this rule:

Note (favicon behavior): Some user agents may probe /favicon.ico even without a reference. Authors MUST NOT reference icons in the document. Operators SHOULD configure the origin to return 204 No Content (or 410 Gone) for /favicon.ico to avoid extra bytes.

4.3 Fonts — MUST/SHOULD

Third-party or downloadable fonts are NOT allowed. Authors SHOULD use system-default fonts only.

4.4 Styling — MUST NOT / MAY

External stylesheets are NOT allowed. Inline style attributes MAY include only color, font-family, text-align, font-weight, font-style. Layout-related styles are NOT allowed.

4.5 Font Color — SHOULD

Color must NOT be the sole method of conveying meaning. Prioritize accessibility and legibility.

4.6 Transport (TLS) — MUST

SLIM documents MUST be served over HTTPS (HTTP over TLS). Plain HTTP is permitted only for offline/local environments where TLS is technically infeasible.

4.7 Content Delivery and Compression - MUST

SLIM documents MUST be delivered with HTTP content compression enabled when served over a network, unless operating in an environment where compression is technically infeasible or prohibited by policy.

Rationale: Compression substantially reduces payload size and improves load times in low-bandwidth or austere network conditions, which aligns with SLIM’s core goal of efficiency.

4.8 Accessibility — SHOULD

Use a clear heading structure and meaningful link text, and avoid reliance on color alone for meaning. ARIA attributes are not required, but semantic clarity is encouraged.

4.9 Tracking — MUST NOT

No tracking scripts, analytics beacons, or advertising pixels are permitted. If metrics are needed, they MUST be opt-in and external to the SLIM page.

4.10 Inputs — MUST

All <input> elements MUST specify a type attribute.

4.11 Media — MUST NOT

SLIM documents MUST NOT embed, reference, or fetch non-text media of any kind.

Prohibited elements and mechanisms (non-exhaustive):

Allowed:

Rationale: This ensures predictable payload size, eliminates tracking beacons delivered via images, and maximizes reliability in austere networks. Any essential information MUST be conveyed in text.

4.12 Framing & Embedding — MUST NOT

SLIM documents MUST NOT embed other browsing contexts.

Prohibited:

Rationale: Embedded contexts violate the single-request fetch model (§4.14), create side-channel requests, and expand the attack surface (tracking, clickjacking, mixed policy contexts).

4.13 HTTP Version - SHOULD

When SLIM documents are served over a network, servers SHOULD use a modern HTTP version that improves performance and resilience:

Servers MUST maintain compatibility for clients that do not support newer HTTP versions, but SHOULD prioritize protocols that reduce latency, improve multiplexing, and enhance connection reliability — especially in austere network environments.

Rationale: Using HTTP/3 or HTTP/2 enables better performance through features like multiplexed requests, reduced head-of-line blocking, and improved connection handling, all of which support SLIM’s goal of fast, resilient content delivery.

4.14 File Size — ADVISORY

No hard maximum size; authors are encouraged to adopt a “less is more” mindset.

4.15 Versioning — SHOULD

Follow SLIM versioning guidance (e.g., SLIM v1.0) and update the meta tag accordingly.

5. Example SLIM Document

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Example SLIM Page</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="slim-profile" content="SLIM v1.0">
</head>
<body style="font-family: system-ui, -apple-system, Segoe UI, Roboto; color: #222;">
  <h1>Clinic Hours</h1>
  <p>We are open <strong>Mon–Fri, 9–5</strong>. Call <a href="tel:+15125551234">512-555-1234</a>.</p>
</body>
</html>

SLIM authors and operators SHOULD consider deploying a Content Security Policy that enforces SLIM restrictions at the browser level. An example of a maximally restrictive CSP is:

Content-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; font-src 'none'; img-src 'none'; media-src 'none'; script-src 'none'; object-src 'none'; frame-src 'none'; child-src 'none'; connect-src 'self'

This policy prevents the browser from loading or executing any resource type disallowed by SLIM.

6. Security & Privacy Considerations

SLIM enforces several requirements that enhance security and privacy:

Browser enforcement via CSP (Recommended): Operators SHOULD deploy a restrictive Content Security Policy to have the browser refuse violations. A baseline CSP is provided in §5.1. CSP cannot block transport-level operations (DNS, TLS) and does not affect connection hints like dns-prefetch; however, connect-src governs which origins may be contacted (including preconnect).

Operational hardening (Recommended): To avoid extra fetches, operators SHOULD:

7. Change History

v1.0 (2025-08-10): First public Unofficial Draft.

Conformance

Document conventions

Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.

All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [RFC2119]

Examples in this specification are introduced with the words “for example” or are set apart from the normative text with class="example", like this:

This is an example of an informative example.

Informative notes begin with the word “Note” and are set apart from the normative text with class="note", like this:

Note, this is an informative note.

References

Normative References

[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119