Obvious/Help Center

Hosted Apps & Folios Overview

Published February 27, 2026 · Last updated March 7, 2026 · 4 min read

Obvious gives you two ways to build web content you can share with a link: folios and hosted apps. Both live inside your project. Both produce something people can open in a browser. But they serve different purposes, and picking the right one saves you time.

This article explains what each is, when to reach for one over the other, and how publishing works.

Folios

A folio is an editorial web presentation — a single HTML page designed to look polished and read well. Think of it like a magazine layout you can build with a conversation.

Folios come in three types: Article (long-form content with clean typography), Presentation (full-viewport sections with dramatic layouts), and Report (data-driven narrative with metrics cards and embedded charts).

Each type has its own structure and pacing, but they all share a core trait: folios are static, self-contained pages. No server running behind them, no database calls, no application logic. The content is baked into the HTML when the folio is created.

When folios make sense

Folios are the right choice when you need to present information, not process it. Quarterly summaries. Executive memos. Client-facing reports. Landing pages for internal initiatives. If a well-designed PDF would solve the problem but you'd rather have a live link, a folio is what you want.

Hosted apps

A hosted app is a full web application built and running inside your Obvious sandbox. If a folio is a magazine page, a hosted app is a storefront — it has a backend, it responds to requests, and it can do things.

The agent writes the code, starts the server, and registers it for persistent hosting. Obvious gives the app a persistent URL (format: {projectId}-{port}.hosted.obvious.ai) that works even when the sandbox is paused. When someone visits the link, the system wakes the sandbox, restarts the service, and proxies the request — automatically. The visitor sees the app. They don't see the infrastructure.

To display a hosted app inside your Obvious project, the agent creates an iframe artifact that embeds the persistent URL. The app renders right in the project workspace, interactive and usable without leaving Obvious.

When hosted apps make sense

Hosted apps are the right choice when you need interactivity, live data, or server-side logic. Real-time dashboards that query an API on load. Tools where someone fills out a form and gets a result. If the content needs to do something, not just say something, build a hosted app.

How they differ

FolioHosted app
What it isA single HTML pageA running web server
InteractivityStatic content, no backendDynamic, server-side logic
Runs onDoesn't run — it's a fileA persistent URL with wake-on-request
Best analogyA designed PDF you can share as a linkA web app you deployed without DevOps
Typical useReports, memos, articles, landing pagesDashboards, tools, data explorers, APIs

There's real overlap in the middle. The deciding question: does the reader need to interact with the data, or just read it? Read → folio. Interact → hosted app.

Publishing and sharing

Folios

Publishing a folio creates a snapshot of the HTML and serves it at a public URL on folio.obvious.ai. You control access with three options: public, restricted (workspace members only), or PIN protected.

If your workspace has an organization slug set up, you get clean URLs like folio.obvious.ai/acme/q4-report. Without one, the URL uses the artifact ID.

Hosted apps

Hosted apps are live the moment they're registered, with the persistent URL working immediately. Sharing means sharing this link, and for project members, the app can also be embedded as an iframe artifact within Obvious.

  • Creating a Folio — Step-by-step guide to building your first folio, including the wizard and agent-first workflow.

  • Building a Hosted App — How to write, register, and share a hosted application from the sandbox.

  • Key Concepts — The mental model for Obvious — how projects, artifacts, threads, and tasks fit together.

Was this helpful?