athost#
An experimental web host built on atproto.
Nothing has been formalized yet. Right now, a website is stored as a "bundle" record that looks something like this:
interface Bundle {
/** The timestamp at which the latest version of the bundle was created. */
createdAt: string;
/** Human-readable summary of the deploy; notes, commit message, etc. */
description?: string;
/** A map of asset paths to blob references. */
assets: Record<string, { $type: "blob"; ref: { $link: string }; mimeType: string; size: number }>;
}
To deploy a new version, upload the relevant blobs and update the record.
To serve the website, you need some sort of proxy server that fetches the appropriate files from the PDS when requests come in. proxy.js is a small (~150 line) example server.