import { useState, useRef, useEffect } from 'react' import { createRoot } from 'react-dom/client' import { ArrowRight, Shield, Zap, Globe, Lock, Code, Server } from 'lucide-react' import Layout from '@public/layouts' import { Button } from '@public/components/ui/button' import { Card } from '@public/components/ui/card' function App() { const [showForm, setShowForm] = useState(false) const inputRef = useRef(null) useEffect(() => { if (showForm) { setTimeout(() => inputRef.current?.focus(), 500) } }, [showForm]) return (
{/* Header */}
wisp.place
{/* Hero Section */}
Built on AT Protocol

Host your sites on the{' '} decentralized web

Deploy static sites to a truly open network. Your content, your control, your identity. No platform lock-in, ever.

{ e.preventDefault() try { const handle = inputRef.current?.value const res = await fetch( '/api/auth/signin', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ handle }) } ) if (!res.ok) throw new Error('Request failed') const data = await res.json() if (data.url) { window.location.href = data.url } else { alert('Unexpected response') } } catch (error) { console.error('Login failed:', error) alert('Authentication failed') } }} className="space-y-3" >
{/* Stats Section */}
{[ { value: '100%', label: 'Decentralized' }, { value: '0ms', label: 'Cold Start' }, { value: '∞', label: 'Scalability' }, { value: 'You', label: 'Own Your Data' } ].map((stat, i) => (
{stat.value}
{stat.label}
))}
{/* Features Grid */}

Built for the open web

Everything you need to deploy and manage static sites on a decentralized network

{[ { icon: Shield, title: 'True Ownership', description: 'Your content lives on the AT Protocol network. No single company can take it down or lock you out.' }, { icon: Zap, title: 'Lightning Fast', description: 'Distributed edge network ensures your sites load instantly from anywhere in the world.' }, { icon: Lock, title: 'Cryptographic Security', description: 'Content-addressed storage and cryptographic verification ensure integrity and authenticity.' }, { icon: Code, title: 'Developer Friendly', description: 'Simple CLI, Git integration, and familiar workflows. Deploy with a single command.' }, { icon: Server, title: 'Zero Vendor Lock-in', description: 'Built on open protocols. Migrate your sites anywhere, anytime. Your data is portable.' }, { icon: Globe, title: 'Global Network', description: 'Leverage the power of decentralized infrastructure for unmatched reliability and uptime.' } ].map((feature, i) => (

{feature.title}

{feature.description}

))}
{/* How It Works */}

Deploy in three steps

{[ { step: '01', title: 'Upload your site', description: 'Link your Git repository or upload a folder containing your static site directly.' }, { step: '02', title: 'Name and set domain', description: 'Name your site and set domain routing to it. You can bring your own domain too.' }, { step: '03', title: 'Deploy to AT Protocol', description: 'Your site is published to the decentralized network with a permanent, verifiable identity.' } ].map((step, i) => (
{step.step}

{step.title}

{step.description}

))}
{/* Footer */}
) } const root = createRoot(document.getElementById('elysia')!) root.render( )