01Case study · App publishing SaaS

Jhino: An App Publishing SaaS for HTML and AI-Made Apps

Jhino is a SaaS that publishes an HTML file or ZIP, made with Claude or any AI tool, as a live web app with sign-ins, sharing and live sync. I designed and built it as one TypeScript program in September and October 2026, and it is live at jhino.com with free and paid plans.

  • Upload a file, or generate an app from 45 features
  • Saves sync live for everyone with access
  • Free plan, then NPR 500 or NPR 2,000 a month
Jhino app publishing SaaS shown on desktop and mobile
  • RoleProduct & full-stack engineering
  • TypeSaaS for studios, agencies and freelancers
  • BuiltSeptember–October 2026
  • StatusLive at jhino.com

01The problem

The Problem with Hosting Small Client Apps

AI tools now write useful single-file apps in minutes: a client portal, a photo-proofing page, a content calendar. Then the file sits on someone’s desktop.

Studios and freelancers in Nepal build small tools like these for each client: delivery pages for videos, proofing pages for photos, schedules and invoices. Hosting each one properly means a server, a database, logins and sharing, which is too much work for a page a client will use for a month. And AI-made apps save data in the browser with localStorage, so nothing a client types is shared with anyone else.

Jhino turns that file into a live, shared app with sign-ins, saved data and a real address.

02The solution

What I Built: From a File on Your Desktop to a Live App

With Jhino you either upload an HTML file or ZIP, or describe the client and tick features from a list of 45 and let Jhino write the app. It goes live straight away. You share it with named people who sign in with their own password, by a public link, or by a link with a password.

Jhino redirects the app’s browser storage to its own server, so everything a user saves shows up for everyone else, live. Sign-in, hosting, database, files and sharing all run in one program, a pattern I use across my software development work.

Jhino pricing: three plans in rupees, with yearly billing at the price of ten months
Three plans in rupees, with yearly billing at the price of ten months.

03Features

Jhino Features from Upload to Custom Domain

Everything a studio needs to hand a client a working tool: creation, sharing with the right people, and a real address. It is a SaaS product I designed, built and run myself.

Create and Upload

  • Upload an .html file or a .zip made with Claude or any other tool
  • Or generate an app from 45 features: video approvals, photo proofing, design proofs, schedules, invoices and more
  • Dates in Bikram Sambat with AD beside them
  • Older versions kept, with rollback

Share and Collaborate

  • Roles: Owner, Can edit, Can add, Can view
  • Single-use invite links that expire after 7 days
  • Public links and password-protected links
  • Live updates when anyone saves

Publish

  • App addresses like jhino.com/your-studio
  • Custom domains with automatic certificates
  • Each app installs as a PWA
  • A link-in-bio page with 40 designs

Plans

  • Free Forever: 2 apps
  • Plus: NPR 500 a month, 20 apps
  • Pro: NPR 2,000 a month, 100 apps and a custom domain
  • A year costs the price of ten months, paid by QR
The Jhino help centre, where new users start
The help centre, where new users start.

04Architecture

Jhino Architecture and Tech Stack

Jhino is one TypeScript program built on Fastify. It serves the dashboard, the public site, the uploaded apps and the API, and keeps everything in a single SQLite database under /data, so the rest of the container can be wiped on every deploy.

  1. Uploaded appSandboxed iframeNo allow-same-origin; a per-launch handshake
  2. ServerFastify 5 + TypeScriptAbout 50 server modules in one program
  3. RealtimeServer-sent eventsEvery save pushed to everyone with access
  4. DataSQLite under /dataWAL mode, daily backups, 14 kept

The Jhino Tech Stack

Uploaded apps run in a sandboxed iframe without allow-same-origin, and the same sandbox is sent as a response header. An app can only talk to Jhino through a per-launch handshake over a private message channel.

Migrations run at start-up and only apply what is new, so a deploy is a container swap with nothing to run by hand.

Server
Node 22TypeScriptFastify 5About 50 server modules
Front end
React 19Vite 8
Data
SQLite (better-sqlite3, WAL)Daily backups, 14 kept
Realtime
Server-sent events
Security
argon2idHashed server-side sessionsHttpOnly SameSite=Strict cookiesCSRF tokensStrict CSP
Testing
Playwright on Chromium, Firefox and WebKitGitHub Actions CI
Ops
Docker multi-stage buildCoolify deploys/health checkGraceful shutdown

05Engineering

Engineering Decisions Behind Jhino

The four decisions that shaped Jhino, and why I made them. Each one solves a problem a real user would hit.

01

Live Sync That Merges Instead of Overwriting

Every saved key carries a revision number. When two people save at once, the server refuses the older write and the bridge merges both changes, item by item for lists whose items have an id. The page never refreshes while someone is typing. Eutaa uses WebSocket for the same kind of live updates.

02

Custom Domains for a Small SaaS

Pro users can put an app on their own domain. Certificates come from Cloudflare for SaaS, with Caddy on-demand TLS as a fallback. Status moves from Waiting for DNS to Issuing certificate to Live, with background checks that back off from one minute to six hours.

03

Videos That Clients Can Actually Stream

Files from 20 MB up are re-encoded to H.264 at a sensible bitrate and at most 1920 px wide. In testing, a 75 MB 1080p clip became 13.6 MB in about four seconds.

04

Tested in Three Browsers

The test suite runs in Chromium, Firefox and WebKit with Playwright. CI runs type checks, the build and the Chromium tests on every push, and all three browsers weekly. It is the same discipline I offer as QA testing.

Readable by Search Engines and AI Assistants

Public pages are server-rendered snapshots, so search engines and AI assistants read real content rather than an empty shell, as my guide to SEO in 2026 recommends.

  • Organization, WebSite, SoftwareApplication, Offer and FAQPage data on the home page
  • A help centre FAQ of 11 questions
  • robots.txt, sitemap.xml and llms.txt generated by Jhino
  • Per-domain robots, sitemap and llms.txt files for custom domains

06Screens

Jhino on a Phone

Every app published on Jhino installs as a PWA, and the dashboard works the same on a phone as on a laptop.

07Status

Where Jhino Stands Today

Jhino is live at jhino.com with free and paid plans. Its code is private, so this case study shows how it is built.

Live, with a free plan

It shows how I build software for real use: a single deployable program, data that survives redeploys, sync that handles conflicts, sandboxing for untrusted code, and tests in every major browser engine.

What I’d Do Next

  1. A side-by-side view of two versions before a rollback, so owners see exactly what changed.
  2. Ready-made starter apps for the most-used of the 45 features, such as photo proofing and video approvals.
  3. Storage add-ons for video-heavy studios, priced in rupees like the plans.

Related services

Need a Product Like Jhino?

These are the services behind this case study. Each page lists prices, timelines and how I work, and every starting price is on my services page.

Every project, with its stack and status side by side, are in my web development portfolio, and the person behind them is on my about page.

FAQ: Jhino App Publishing

What Jhino does, what it costs and how it keeps uploaded apps safe.

Ask me on WhatsApp

What is Jhino?

Jhino is a hosting and publishing service for small web apps. You upload an HTML file or ZIP made with Claude or any AI tool, or generate one from 45 features, and it goes live with sign-ins, sharing, saved data and its own address, such as jhino.com/your-studio.

How Much Does Jhino Cost?

Jhino has a Free Forever plan with 2 apps. Plus costs NPR 500 a month for 20 apps, and Pro costs NPR 2,000 a month for 100 apps and a custom domain. Paying for a year costs the price of ten months, and payment is made by QR.

How Does Live Sync Work in Jhino?

Jhino redirects an app’s browser storage to its own server. Every saved key carries a revision number, so when two people save at once the server refuses the older write and the bridge merges both changes. Updates reach everyone through server-sent events, and the page never refreshes while someone types.

Is It Safe to Host Untrusted HTML Apps on Jhino?

Uploaded apps run in a sandboxed iframe without allow-same-origin, and the same sandbox is sent as a response header. An app can only talk to Jhino through a per-launch handshake over a private message channel. Sessions use HttpOnly SameSite=Strict cookies, CSRF tokens and a strict CSP.

Which Technologies is Jhino Built With?

Jhino runs on Node 22 with TypeScript and Fastify 5, with a React 19 front end built by Vite 8. Data lives in SQLite in WAL mode, real-time updates use server-sent events, and Playwright tests run in Chromium, Firefox and WebKit. It ships as a Docker image deployed with Coolify.

Can I Put a Jhino App on My Own Domain?

Yes, on the Pro plan. Certificates come from Cloudflare for SaaS, with Caddy on-demand TLS as a fallback. The domain’s status moves from Waiting for DNS to Issuing certificate to Live, and background checks back off from one minute to six hours.

Planning a Product Like Jhino?
I’ll Send a Fixed Quote.

Send a short note about your project and budget. I reply within one working day with questions or a first estimate.

Ujjwal RupakhetiReplies within one working day

What are you planning?

Opens WhatsApp with your message started.