WorkU3DEHOST

DeHost

Websites that live on-chain.

Status: Live on testnet

Role: Co-built: front end and Web3 integration

The dehost.io home page: a test-environment warning banner, the “Welcome to DeHost” heading and a card asking the visitor to connect a walletThe “Who is DeHost for?” section of dehost.io, with cards for developers, Web3 teams, communities and DAOs, and creators and activists, above the start of “How It Works”
dehost.io on a phone: the test-environment banner, the welcome heading and the Connect Wallet card

Key specifications

U3 · DEHOST · Rev 2026.10

Role
Co-built: front end and Web3 integration
Status
Live on testnet
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

DeHost, from input to output

  1. Wallet: EIP-⁠1193
  2. Sign-in: account abstraction
  3. On-chain domain: registered by the owner
  4. Publish: files go on-⁠chain
  5. 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