


- Role
- Co-built: front end and Web3 integration
- Status
- Live on testnet
- Live site
- dehost.io (opens in a new tab)
- Capabilities
- Front-end
- Stack
- Web3 dApp
- Svelte 5
- SvelteKit
- TypeScript
- Tailwind CSS
- Vite
- wallet + smart-contract integration
- account abstraction
Signal path · 5 stages
How it works
- Wallet: EIP-1193
- Sign-in: account abstraction
- On-chain domain: registered by the owner
- Publish: files go on-chain
- Live site: served from the chain
What it does
DeHost is a decentralised platform for censorship-resistant, serverless hosting. It lets users publish websites and files fully on-chain, without relying on traditional servers or centralised providers. Content is stored and served through blockchain infrastructure, which makes it resistant to takedowns and single points of failure. There’s no cloud provider between the site owner and the reader, no server anyone can pressure into removing content, and no single machine whose failure takes the site offline.
End to end, the flow is: connect a wallet, register a blockchain domain, publish a file or a full static site, and the content is reachable through the decentralised network under that domain. Owners manage everything, from domains and deployed sites to their wallet identity, through a single dApp.
I built the front end: a responsive SvelteKit dApp covering wallet onboarding, domain management and the file-publishing experience.
How it’s built
SvelteKit and Svelte 5, TypeScript throughout
The app is built on SvelteKit with Svelte 5 components and TypeScript across the codebase. SvelteKit handles routing, layouts and static generation for the shell; the wallet-connected surfaces are reactive Svelte 5 components with fine-grained state. Vite powers the build for fast local iteration.
A reusable component library
Rather than building each screen from scratch, I composed the front end from a hand-built component library: form inputs, wallet-aware primitives, transaction-status displays, empty states and responsive layouts. Everything is styled with Tailwind, so theming and density adjustments live in one place, and every component is designed responsively rather than as a desktop layout with mobile fixes bolted on.
SEO and first-class loading states
SEO metadata, canonical URLs and preview cards are wired into the SvelteKit shell, so shared links behave properly on Twitter, LinkedIn and in messaging apps. Loading and error states are first-class: every async operation (wallet connect, contract read, publish confirmation) has its own explicit UI rather than a spinner and a hope.
Multi-wallet onboarding
Users can sign in with the wallets they already have, through the standard EIP-1193 injected-wallet path. The interesting part is account-abstraction sign-in for users who don’t want to install a browser extension. Account abstraction (ERC-4337-style) lets a user create a smart-contract wallet from a familiar credential and interact with the chain without ever seeing a raw seed phrase. That path opens the app to users who aren’t already crypto-native.
If your dApp only works for people who already own a MetaMask install, you’ve decided in advance that no one new is coming.
On-chain domain registration and management
Domains are on-chain assets, registered and managed through the app. The front end handles domain lookups, availability checks, registration transactions, ownership transfers and pointing a registered domain at a specific piece of content. The user sees a familiar domains dashboard; underneath, every action is a chain interaction with clear pre- and post-transaction states.
Network handling
The app runs on the Sepolia testnet for now, and the same code path is ready to run against mainnet when the smart-contract side is ready. Network switching is automatic where possible and prompted where it can’t be. The UI always shows which network the user is interacting with, and destructive actions confirm the network before they fire.
Status
The full application surface has shipped: wallet onboarding, domain registration and management, file and site publishing, transaction-status flows and responsive design across breakpoints. Work continues on the smart-contract and infrastructure side, and the mainnet cut-over comes later.
In numbers
- + SvelteKit, TypeScript throughout
- Svelte 5
- injected-wallet sign-in
- EIP-1193
- account-abstraction sign-in
- ERC-4337-style