Deploy in Seconds
A TKO app can be as simple as a single HTML file. No bundler, no server runtime, no build step — just upload to any static hosting provider and you’re live.
The simplest deploy
Section titled “The simplest deploy”Save this as index.html:
<!doctype html><html> <body> <div id="app"> <input data-bind="textInput: name" /> <p>Hello, <strong data-bind="text: name"></strong>.</p> </div> <script src="https://cdn.jsdelivr.net/npm/@tko/build.reference/dist/browser.min.js"></script> <script> const ko = globalThis.tko ko.applyBindings({ name: ko.observable('TKO') }, document.getElementById('app')) </script> </body></html>Or as an ES module (no IIFE needed):
<script type="module"> import ko from 'https://esm.run/@tko/build.reference' ko.applyBindings({ name: ko.observable('TKO') }, document.getElementById('app'))</script>Upload that single file to any of the platforms below. That’s it — a live, reactive web UI.
GitHub Pages
Section titled “GitHub Pages”Free, deploys from a git push.
- Create a repo and add your
index.html - Go to Settings → Pages → Source and select your branch
- Your site is live at
https://username.github.io/repo/
Or use the gh CLI:
gh repo create my-app --public --clone# add index.htmlgit add index.html && git commit -m "init" && git pushgh browse --settings # enable Pages under Settings → PagesCloudflare Pages
Section titled “Cloudflare Pages”Free tier, global CDN, automatic HTTPS.
- Push your files to a GitHub or GitLab repo
- Connect the repo at dash.cloudflare.com → Pages → Create
- No build command needed — just set the output directory to
/(or wherever your HTML lives)
Or deploy directly from the CLI:
npx wrangler pages deploy . --project-name my-appGoogle Cloud Storage
Section titled “Google Cloud Storage”Good for projects already on GCP.
gcloud storage buckets create gs://my-app.example.comgcloud storage buckets update gs://my-app.example.com --web-main-page-suffix=index.htmlgcloud storage cp index.html gs://my-app.example.com/Add a load balancer or use Firebase Hosting for automatic HTTPS and CDN.
Firebase Hosting
Section titled “Firebase Hosting”Free tier, automatic HTTPS, global CDN.
npm install -g firebase-toolsfirebase init hosting # select your project, set public dir to "."firebase deployNetlify
Section titled “Netlify”Free tier, drag-and-drop or git-based deploys.
- Go to app.netlify.com/drop
- Drag your project folder onto the page
- Live in seconds
Or via CLI:
npx netlify-cli deploy --dir . --prodWhy this works
Section titled “Why this works”TKO loads from a CDN (esm.run or jsdelivr). Your app is just HTML + the browser’s ES module loader. No server-side rendering, no Node.js, no build artifacts. The entire deploy is one file.
As your app grows you can add a bundler, but you don’t have to. Many production TKO apps are a handful of HTML files and a CSS stylesheet.