the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Polish homepage, sidebar, and sign-in

Fix settings route import to point to the Settings page

+42 -17
+8 -5
apps/web/src/components/sidebar/Sidebar.tsx
··· 20 20 tabindex="-1" 21 21 > 22 22 <div className="drawer-body px-2 pt-4 bg-base-100"> 23 - <div 24 - className="pl-[15px] pr-[15px] text-[24px] mb-[20px] mt-[-3px] text-[#ff41b5]" 25 - style={{ fontFamily: "RockfordSansMedium" }} 26 - > 27 - Pocketenv 23 + <div className="mb-[20px]"> 24 + <Link 25 + to="/" 26 + className="pl-[15px] pr-[15px] text-[24px] mt-[-3px] text-[#ff41b5]" 27 + style={{ fontFamily: "RockfordSansMedium" }} 28 + > 29 + Pocketenv 30 + </Link> 28 31 </div> 29 32 <ul className="menu p-0"> 30 33 <li>
+18 -7
apps/web/src/pages/home/Home.tsx
··· 2 2 import Navbar from "./Navbar"; 3 3 4 4 function Home() { 5 + const banner = ` 6 + ____ __ __ 7 + / __ \\____ _____/ /_____ / /____ ____ _ __ 8 + / /_/ / __ \\/ ___/ //_/ _ \\/ __/ _ \\/ __ \\ | / / 9 + / ____/ /_/ / /__/ ,< / __/ /_/ __/ / / / |/ / 10 + /_/ \\____/\\___/_/|_|\\___/\\__/\\___/_/ /_/|___/ 11 + 12 + `; 5 13 return ( 6 14 <> 7 15 <div className="flex flex-col min-h-screen bg-base-100"> 8 16 <Navbar /> 9 17 <div className="flex-1"> 10 - <div className="max-w-[77%] m-auto mt-[10%]"> 11 - <h1 className="mb-[10px] text-7xl mb-[20px]"> 12 - Instant Secure Prototyping. 18 + <div className="max-w-[77%] m-auto mt-[5%]"> 19 + <div> 20 + <pre>{banner}</pre> 21 + </div> 22 + <h1 className="mb-[10px] text-7xl mb-[20px] font-medium"> 23 + A Safe Space to Try Your Ideas 13 24 </h1> 14 - <div className="text-white/50 text-[18px] font-mono font-light mb-[80px]"> 15 - Throw ideas into isolated sandboxes. Run commands, test prompts, 16 - prototype agents — all in a safe, temporary space that vanishes 17 - when you're finished. 25 + <div className="text-purple-200 text-[18px] mb-[80px] font-medium"> 26 + Experiment with AI tools, prompts, and agents in a private 27 + sandbox. No setup, no risk - everything runs in a secure space 28 + that disappears when you're done. 18 29 </div> 19 30 20 31 <Link
+15 -4
apps/web/src/pages/signin/SignIn.tsx
··· 1 + import { useNavigate } from "@tanstack/react-router"; 2 + 1 3 function SignIn() { 4 + const navigate = useNavigate(); 5 + 6 + const onSignIn = () => { 7 + navigate({ to: "/projects" }); 8 + }; 9 + 2 10 return ( 3 11 <> 4 12 <div className="flex items-center justify-center min-h-screen bg-base-100"> ··· 7 15 <label className="label"> 8 16 <span className="label-text text-[15px]">Handle</span> 9 17 </label> 10 - <div className="input input-bordered w-full input-lg text-[15px] font-semibold bg-transparent"> 18 + <div className="input input-bordered w-full input-lg text-[15px] font-semibold bg-transparent focus-within:border-pink-500!"> 11 19 <span className="label-text my-auto text-[16px] opacity-50 mr-[10px]"> 12 20 @ 13 21 </span> ··· 15 23 </div> 16 24 </div> 17 25 18 - <button className="btn btn-primary btn-lg font-bold w-full"> 26 + <button 27 + className="btn btn-lg font-bold bg-pink-500 border-none w-full" 28 + onClick={onSignIn} 29 + > 19 30 Sign In 20 31 </button> 21 32 <p className="text-center text-white/70"> 22 33 Don't have an atproto handle yet? You can create one at 23 - <button className="text-[#8552ff]">selfhosted.social</button>,{" "} 34 + <button className="text-pink-400">selfhosted.social</button>,{" "} 24 35 <a 25 36 href="https://bsky.app/" 26 - className="text-[#8552ff]" 37 + className="text-pink-400" 27 38 target="_blank" 28 39 > 29 40 Bluesky
+1 -1
apps/web/src/routes/settings.tsx
··· 1 1 import { createFileRoute } from "@tanstack/react-router"; 2 - import SettingsPage from "../pages/home"; 2 + import SettingsPage from "../pages/settings"; 3 3 4 4 export const Route = createFileRoute("/settings")({ 5 5 component: SettingsPage,