My view is that users will not immediately adopt a fully on-chain decentralized platform. The best approach is to start with a hybrid model that delivers the scalability, performance, and user experience of traditional cloud platforms while leveraging ICP for hosting and deployment. As the platform grows and users become comfortable with the ecosystem, more functionality can gradually move on-chain, enabling decentralization without sacrificing scalability or adoption.
I am building Canistra — an ICP hosting platform (like a simple Vercel/Netlify, but for the Internet Computer).
The idea
Users sign up, upload a static website (HTML/CSS/JS), and the platform deploys it to an ICP canister so it’s live on-chain. They don’t need to run dfx themselves.
How it works (high level)
flowchart LR
User[User] --> FE[Next.js dashboard]
FE --> BE[FastAPI backend]
BE --> ICP[ICP / dfx]
ICP --> Canister[User's canister]
Canister --> Site[Live website]
- Sign up / log in — email auth, dashboard access
- Create a project — upload a folder (must include
index.html) - Fund wallet — send ICP or TESTICP to an Account ID; convert to cycles (gas for canisters)
- Deploy / publish — backend builds a Motoko canister, deploys via
dfx, serves the site - Visit site — get a canister URL (local replica in dev,
.icp0.ioon mainnet)
Main parts of the stack
| Layer | Tech | Role |
|---|---|---|
| Frontend | Next.js + TypeScript | Dashboard, auth, project editor, wallet UI |
| Backend | FastAPI + PostgreSQL | Users, projects, deploy orchestration, ICP wallet |
| Blockchain | ICP canisters (Motoko) | Host each user’s website on-chain |
Features you’ve been building
- Dashboard — project overview, live/draft status
- Projects — create, edit, publish, delete sites
- Wallet — deposit address, QR code, balance, convert ICP → cycles
- Convert — dedicated flow for cycle conversion
- Metrics — canister usage/stats (in progress)
- Domains — custom domain setup for canisters (backend support exists)
- Auth — login, signup, password reset with ICP branding
Dev vs production
Right now you’re mostly on local/test setup:
DEPLOY_NETWORK=local→ sites onlocalhost:4943USE_TESTICP=true→ free test tokens from the faucet
For production (see docs/PRODUCTION_CHECKLIST.md), you’d switch to mainnet ICP and real .icp0.io URLs.
In one sentence: A web app that lets anyone host static websites on the Internet Computer without being an ICP developer.
View: github/prasangapokharel
Fleek did something like this back in the day. ICDevs.org ran on it for a long time. I think @yrgg may be working on something similar…but maybe more in the backend for motoko.
Nice! Yeah the one I created is sort of similar but its for full stack and uses a credit card instead of cycles wallet: icforge.dev
I agree with you.
It should have always been the strategy from day 1 to make it easy for people to come here.
This is why I like @miadey Michel’s WASP project and his other ideas.