Skip to main content
FlowFn
IntegrationsTemplatesPricingDocsBlogSign inStart free
All posts
PlaygroundsNo-CodeTutorialHosting

Build and Host a Real Website — No Server, No Deploy — with FlowFn Playgrounds

Describe your app, watch AI write the HTML/CSS/JS, tweak it in a real code editor with a live preview, wire up a backend and a database, and hit publish. It's live on the internet — no hosting to set up, nothing to deploy.

FlowFn Team · Product

15 Jul 2026 · 7 min read

Most "app builders" hand you either a rigid drag-and-drop canvas or a blank repo and a deploy pipeline. A FlowFn Playground is neither. It's a full-screen editor where you write (or AI-generates) real HTML, CSS, and JavaScript; add server-side functions with ctx.* capabilities; attach a database; and publish to a public URL on your own domain — all without provisioning a single server.

To make it concrete, we'll build Bloom & Bean, a cozy neighborhood-café website: a landing page, a menu, an online-order backend, and a database — then ship it live. Here's the finished site, served at its public URL:

The live Bloom & Bean café website

A real, hosted website — nav, hero, highlight cards, footer, responsive. Let's build it from scratch.


Where playgrounds live

Playgrounds are an App-owned artifact (alongside Workflows, Forms, Agents, and Data Sheets). Open Playgrounds in the dashboard, hit New playground, and you drop into the editor — a full-canvas workspace with an AI chat rail on the left and, on the right, either the code editor or a live preview.

The playgrounds list

The top bar has the essentials: an editable name, a Draft / Published status, a view switcher (Code · Components · Preview · Assets · Data · Env), and a Save button.


Step 1 — Describe it, and AI builds it

The fastest way to start is to just say what you want. The chat rail — that's Fen, the in-editor assistant — takes a plain-English description and writes the HTML, CSS, and JS for you.

Fen builds the café from a prompt, next to the generated code

"Build a cozy café landing page — a hero with a tagline, three highlight cards, and a footer with our hours."

Fen scaffolds the whole page (an empty playground's first build applies automatically; every later edit is staged as an approve-before-persist card, so nothing changes your files until you say so). It can edit many surfaces in one turn — or, with Plan first, hand you an editable step list it builds one surface at a time. Two standing context surfaces keep it on-brand: an approved Project brief and an AI memory ("brand colour is #5a7d5a; keep copy warm and unfussy").

You're never locked out of the code, though.


Step 2 — It's real HTML/CSS/JS, in a real editor

Every surface has HTML | CSS | JS sub-tabs over a full Monaco editor — syntax highlighting, formatting, folding, and IntelliSense for the injected flowfn.* (client) and ctx.* (server) globals.

The tab strip across the top — Home · Server · Menu · Visit · + — is your whole site: Home is the index page, and each additional tab is a sub-page with its own body (sub-pages share the site's CSS/JS and server code). Add a page and it's live instantly; components let you author a snippet once and drop <component name="…" /> into any page.

Because it's real code, you can hand-tune anything Fen wrote, or paste in code you generated elsewhere with the AI prompt button (it copies a prompt that teaches ChatGPT/Claude FlowFn's exact runtime).


Step 3 — See it exactly as visitors will

Flip to the Preview view and your app runs live in a sandboxed iframe, inside a device frame you can switch between Desktop / Tablet / Mobile.

The editor's live preview in a device frame

That's the café rendering inside the editor, right next to the chat rail — edit, save, watch it update. Check the responsive layout without leaving the page:

The café in a mobile device frame

A "Test data" drawer lets you feed sample URL params, env values, and a JSON blob so you can exercise data-driven pages before wiring up anything real. (The preview iframe runs at an opaque origin with no same-origin access — a genuine sandbox — so what you see is what visitors get.)


Step 4 — Add a real backend

A café needs to take orders, and that means server-side logic — securely, without exposing keys to the browser. The plan-gated Server tab is where you write functions that run as your team with ctx.* capabilities.

The Server tab: a placeOrder function using ctx.sheets and ctx.tools

Here, a placeOrder function writes the order to a sheet and pings the team in Slack:

exports.placeOrder = async (args, ctx) => {
  const order = await ctx.sheets.insertRow('orders', {
    name: args.name, item: args.item, pickup_time: args.pickup_time, status: 'new',
  });
  await ctx.tools.invoke('@slack_post', { channel: '#orders', text: 'New order: ' + args.item });
  return { ok: true, order_id: order.id };
};

ctx gives server code the powerful stuff — ctx.sheets (the attached database), ctx.tools.invoke (integrations), ctx.fetch/ctx.http, ctx.env (secure env vars), even ctx.workflows.run and ctx.agents.run. Your page calls it with flowfn.server.call('placeOrder', {...}) (first-party only), and you can also expose it as an authenticated external REST endpoint. Secrets stay server-side; the browser never sees them.


Step 5 — Attach a database

Tabular data lives in FlowFn's Data Sheets feature; a playground attaches one Database and reads/writes it. The Data tab is where you link it.

The Data tab: an attached Café DB with a flowfn.data snippet

We attach Café DB — a Menu sheet and an Orders sheet. Now the whole app is data-driven: your page reads with flowfn.data.get('menu') (the copyable snippet is right there), visitors can submit orders (only for the specific write operations you opt into, per sheet), and server code reaches everything through ctx.sheets. The data is managed over in Data Sheets — the playground just points at it, so unlinking never deletes a row.

(The same feature powers the CRM/orders data from the workflow and agent posts — one database, many surfaces.)


Step 6 — Publish and embed

Going live is two switches: set the status to Published and flip Public. Your app is now at /<slug> on the App's host — a *.flowfn.com subdomain or your own custom domain (with automatic HTTPS), optionally as the domain's root so there's no /p/ in the URL. You can password-protect it, and you can embed it anywhere:

The Embed drawer: a token-protected iframe URL

Flip Allow embedding and you get a token-protected embed URL + a ready-to-paste <iframe> snippet, lockable to specific domains and rotatable if a link leaks — perfect for dropping an "order now" widget into an existing WordPress or Webflow site.

And that's the payoff from the top of this post — a real café website, live on the internet, that you built in an afternoon.


The whole toolbox

View / surface What it's for
Code Real HTML/CSS/JS per page, + a Server tab for ctx.* functions
Preview Live, sandboxed, device-framed render with test data
Components Reusable <component> snippets across pages
Data Attach a Data Sheets Database; read with flowfn.data.*
Assets S3-hosted images/video/audio in folders
Env Plain (flowfn.env) vs secure (ctx.env) variables
AI chat (Fen) Describe changes; approve-before-persist edits
Publish / Embed Status + Public, slug, password, embed, custom domain

Plus end-user auth (visitors sign up / log in, with per-page requires_auth and ctx.auth) and a 7-day version history with one-click revert and side-by-side diff — so an experiment is never a risk.


Wrap-up

A Playground collapses the whole stack — frontend, backend, database, hosting — into one editor. You describe what you want and refine real code; you write server functions without a server; you attach a database without wiring one up; and you publish to your own domain without a deploy. Start with a single page and the AI chat, flip to Preview to watch it come alive, then add a server function and a database when you're ready for it to do something.

Build one this weekend — a landing page, an internal tool, a little storefront — and share the link. It's already hosted.

Read next

Tutorial
Getting-Started
No-Code

Build a Complete App in a Weekend with FlowFn

Six tutorials, six features — a database, a hosted site, a form, a workflow, a dashboard, an AI agent, and an MCP server. On their own they're building blocks. Put them together and they're a real, running business app. This is the capstone: we take everything from the series and assemble the whole Bloom & Bean café — front to back, no servers, no database ops, no deploy — in a single weekend.

FlowFn Team · 15 Jul 2026 · 6 min read

Data-Sheets
Database
Tutorial

Your App's Database, Without the Server — a Guide to FlowFn Data Sheets

Every app needs somewhere to keep its data. Usually that means standing up Postgres, wiring an ORM, writing migrations, and building an admin panel before you've stored a single row. FlowFn Data Sheets collapses all of that into one design-time object: a real database with a spreadsheet-style editor, twenty typed column kinds, a query API your code can call, and public-write opt-ins — scoped to your App, with no server to run.

FlowFn Team · 15 Jul 2026 · 10 min read

Forms
Tutorial
Getting-Started

Creating a Form People Actually Fill Out: A Complete Guide to FlowFn Forms

Design it, brand it, publish it, and watch the responses roll in — then wire it straight into a workflow. We'll build a real event‑registration form from a blank canvas to a live, shareable page.

FlowFn Team · 15 Jul 2026 · 9 min read

Build your first workflow today

Start free — connect your apps, add AI, and ship an automation you can actually maintain. No credit card required.

Get started free