droplit

droplit

hostingstaticmarkdownredismastraanthropic
Details
Visibility
public
Deploys
1
Build Number
ba77a62e
Updated
Jun 14, 2026
Contributors
Integrations
AnthropicRedisMastra
Capabilities
Serves a password-gated admin UI at /admin for managing uploaded pages
Accepts .html and .md uploads; markdown is rendered to HTML on upload
Calls Claude on each upload to derive a URL slug, title, and one-line description from the file cont
Stores each page as a Redis hash entry and refreshes the in-process cache via Redis pub/sub on admin
More blueprints
AGENT.md

Overview

droplit is a tiny single-domain hosting agent. Operators drop HTML or markdown files into the admin UI; on each upload, Claude derives a short URL slug (e.g. trip-itinerary), a page title, and a one-line description from the file contents. Markdown is converted to HTML at upload time and wrapped in a minimal styled template. Each page is stored in Redis and served at /<slug>/.

The chat agent's only job is to help visitors discover what's hosted: it calls the list_pages tool to fetch the current catalog and replies with the URL, title, and one-line description for each page.

Usage

Publishing pages

Sign into /admin with ADMIN_PASSWORD. Drag-and-drop one or more .html, .htm, .md, or .markdown files into the upload area. For each file:

  1. Claude reads the contents and picks a kebab-case slug, a page title, and a one-line description.
  2. If the chosen slug collides with an existing page, a numeric suffix is appended (my-pagemy-page-2).
  3. The page is stored in Redis and immediately reachable at /<slug>/.

Existing pages can be deleted from the same view. Changes propagate to the agent's in-process cache immediately via Redis pub/sub — no restart required.

A bundled welcome page is seeded on first boot if Redis is empty.

Browsing pages

  • GET /<slug>/ and GET /<slug>/index.html serve the stored HTML.
  • GET /<slug> 301-redirects to /<slug>/ so relative links work.
  • Reserved prefixes (/admin, /api, /healthz) can never be used as slugs.

Asking the chat agent what's available

In any messaging adapter (web playground, Slack, etc.), ask the agent what's hosted. It will call list_pages and reply with bulleted entries that include the path, title, and description.

Inputs

InputRequiredDescription
ADMIN_PASSWORDyesPassword gating the /admin upload UI
SESSION_SECRETyesHMAC secret used to sign admin session cookies

Limitations

  • Single-replica safe; multi-replica fine. Pages live in Redis, so any replica can serve any page. The in-process cache is refreshed via pub/sub.
  • Uploads are capped at 1 MiB per file. Anything larger is rejected.
  • Session storage is ephemeral. Admin sessions are HMAC-signed cookies — they survive process restarts only if SESSION_SECRET is set to a stable value (otherwise an ephemeral secret is generated and sessions reset on restart).
  • Page content is served as-is. The admin uploads HTML directly; the host does not sanitize it. Only trust people you've given the admin password to.