Skip to content
Publishing

What you can publish

Point SnapHost at almost anything you have made and it becomes a live site. SnapHost figures out what kind of content it is when you publish, so there is nothing to configure.

Supported content

  • HTML. A single self-contained page.
  • Markdown. Turned into a clean, styled page automatically.
  • PDF. Shown in a built-in viewer, right on the page.
  • Word documents. A .docx becomes a clean, readable page: headings, lists, tables, images and footnotes. Tracked changes show as accepted; comments, headers, footers and page numbers are not shown, and the page says so when the document has them. The page carries your site title, not the document's hidden metadata title.
  • Slide decks. A .pptx opens as slides you page through with the arrow keys or a swipe, with a grid of every slide, full screen, a link that opens on the slide it was copied on, and charts, tables, pictures and shapes drawn as they were laid out. Speaker notes and hidden slides are never shown; to share notes, export the deck from PowerPoint as a PDF with notes pages.
  • Spreadsheets. An .xlsx, .csv or .tsv shows as a grid with sheet tabs (a link opens on the sheet it was copied on), frozen headers, merged cells, and numbers, dates and currencies formatted the way the author set them. Cells show their values, not their formulas, when the file carries values, and hidden sheets, rows and columns stay hidden. A workbook written by a program (openpyxl, exceljs and most AI tools) carries no computed values, so its formula cells show the formulas; the publish says so. Open it in Excel or Numbers, save it once, and the values travel with it.
  • Jupyter notebooks. A .ipynb file renders as a live notebook.
  • Images, video and audio. A single picture, clip or recording gets a player page of its own, served so that seeking and downloading work. MP4 (H.264) video plays in every browser; .mov (often HEVC, which Windows and Android browsers lack) and .webm depend on the viewer's browser, and the page offers the download when it cannot play.
  • Diagrams. A Mermaid file (.mmd or .mermaid) is drawn once, when you publish, and shown as a picture that fits the window and opens at full size on a click, with the SVG and the text it was drawn from both available to download. Flowcharts, sequence diagrams and class diagrams are drawn; other Mermaid diagram types are not yet, and a diagram that cannot be read is refused with the line that stopped it, so nothing half-drawn is ever published. The page holds no diagram code: the text is never interpreted in a reader's browser.
  • Text and code. A .txt, .json, .yaml, .py, .ts or other source file is shown with line numbers, wrapping on request, and JSON pretty-printing.
  • React components. A single .tsx or .jsx with a default export, the file an AI hands you as an artifact or a canvas, becomes a working page. SnapHost compiles it when you publish, bundles in the libraries it imports and generates the Tailwind utilities its classes name, so the page carries everything it needs and loads nothing from anywhere else. A component may import react, react-dom, recharts, lucide-react, d3, framer-motion and the @radix-ui/react-* primitives, each at one pinned version; an import of anything else, or of a file beside it, is refused by name. A .tsx without a default export is shown as a code listing instead.
  • Full apps. A zip of a multi-file site or a built app (for example a React or other single-page app). SnapHost serves the whole thing and picks the starting page automatically.

You can keep a site as a draft until you are ready, so nothing is reachable before you publish it.

The original file

A Word, PowerPoint or Excel file holds more than its page shows: speaker notes, hidden slides, sheets, rows and columns, formulas, comments, tracked changes and the document's author and history. So the file itself stays off the page unless you choose Let readers download when you publish (or pass include_original from an agent or the API). A new version keeps the choice the live version made unless you change it, and the site page says which it is. An image, video, audio, PDF, CSV, diagram, text or code file is the page, and readers can always download it. A text or CSV page past the 50 MB limit together with its file says the original is not included; an image, video or audio file must leave room for its page, a few kilobytes under the limit, or the publish is refused. A Markdown file, a notebook or a React component becomes its page and has no download. A macro-enabled .docm, .pptm or .xlsm is never offered, since it carries code the page does not need. A site that offers its file can stop doing so from its page without another upload; readers who already have the page open can still download it for up to an hour, and on a plan with version history the earlier version keeps it. A photo is carried as it is, so a phone's capture time and location travel with it if the file holds them.

Limits

A file can be up to 50 MB, page and files together. On Free, a video or audio file can weigh up to 10 MB, on its own or inside a bundle; Pro takes the full 50 MB a file. Video is where the caps bite first: 720p H.264 keeps about half a minute under 10 MB and about three minutes under 50 MB. A sheet shows its first 5,000 rows and 256 columns, a workbook its first 100 sheets and about 2.5 million cells across them, a CSV its first 16 MB, a deck its first 500 slides, and a text or code file its first 2 MB or 100,000 lines; the page says when it cut something. A diagram is drawn whole or not at all: up to 256 KB of text, 500 nodes and 1,000 links. A React component may be up to 512 KB of source and build to at most 4 MB of script; past either, the publish is refused and says so.

Apps and clean links

Built a real app, not just a single page? It works. Deep links like /about or /pricing keep working even when someone refreshes the page, so your app behaves the way you expect. Larger apps and asset-heavy sites are supported too.

If you build your app from code, there are a couple of small setup tips (a relative asset path and reading the base SnapHost injects). Those live in the developer docs.

Loading things from other sites

For safety, a published site cannot quietly pull in code or data from other places. If your page genuinely needs to load a font, call an API, or embed content from another site, you can allow those specific sources in the site's settings (a paid capability). Everything else stays blocked by default.

Your own address

Every site gets a share link right away. To serve it on your own domain instead, see Custom domains.