This directory contains the public-facing marketing and landing page for the LabSTX platform. It is a fully standalone React + Vite application that showcases the IDE's capabilities, features, and workflows to prospective users.
The actual IDE application (the editor, compiler, AI assistant, wallet integration, etc.) lives in the
../IDEdirectory. This marketing site links to the deployed IDE athttps://lab-stx-ide.vercel.app/.
frontend/
βββ components/
β βββ LandingPage.tsx # Main landing page β hero, features, CTA sections
β βββ InteractiveMatrixSphere.tsx # Animated 3D sphere hero visual
β βββ WorkflowBuilder.tsx # Interactive workflow builder demo page
β βββ UnderDevelopment.tsx # Placeholder page for features in development
β βββ ModuleCard.tsx # Reusable feature/module card component
β βββ NeoButton.tsx # Neobrutalist-style primary button component
β βββ Header.tsx # Shared header/navigation bar
β βββ Sidebar.tsx # Shared sidebar navigation
βββ public/
β βββ lab_stx.png # Dark-mode logo
β βββ lab_stx_whitee.png # Light-mode logo
βββ App.tsx # Root router β handles page state (landing / builder / underdev)
βββ index.tsx # React entry point
βββ index.html # HTML shell with Tailwind CDN, Google Fonts, and importmap
βββ types.ts # Shared TypeScript type definitions
βββ vite.config.ts # Vite configuration
βββ tsconfig.json # TypeScript compiler settings
βββ package.json # Dependencies and scripts
- Node.js v18+
- npm v9+
# Navigate to the frontend directory
cd frontend
# Install dependencies
npm installnpm run devThe app will be available at http://localhost:3000 (Vite default port).
npm run buildnpm run previewThe frontend uses a Neobrutalist design language with:
| Token | Value | Usage |
|---|---|---|
| Primary Blue | #2d5bff |
Borders, accent lines, interactive states |
| Brand Blue | #3b82f6 |
Buttons, icons, active elements |
| Dark BG | #000000 / #1a1a1a |
Dark mode backgrounds |
| Light BG | #f3f4f6 |
Light mode backgrounds |
| Font Display | Space Grotesk, Inter |
Headlines, uppercase labels |
| Font Mono | Space Mono |
Code snippets, body tertiary |
| Neo Shadow | 4px 4px 0px 0px #2d5bff |
Brutalist card effect |
The app supports light and dark themes toggled by the user. Theme state is managed at the App.tsx root and passed down via props. The data-theme attribute is applied to document.documentElement.
// App.tsx β Theme management
const [theme, setTheme] = useState<'light' | 'dark'>('light');
useEffect(() => {
document.documentElement.setAttribute('data-theme', theme);
if (theme === 'dark') {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
}, [theme]);The primary marketing page. Contains the following sections:
| Section | Description |
|---|---|
| Hero | Full-viewport animated ASCII background with headline and Start Building CTA |
| Marquee | Auto-scrolling marquee of ecosystem keywords (Stacks, Bitcoin Layers, Clarity SDKβ¦) |
| SimulationScroll | Scroll-driven interactive IDE mockup showing Write β Analyze β Debug β Deploy flow |
| Powerful Features | 6-card grid showcasing the IDE's core capabilities |
| Built for Clarity | Split section explaining the Clarity language with a live code snippet |
| Tailored For | Use-case cards (Clarity Mastery, Rapid Prototyping) |
| Getting Started | 3-step onboarding guide with launch CTA |
| Footer | Links, copyright, ecosystem links, social icons |
Both the "Launch App" button in the header and the "Start Building" button in the hero open the IDE in a new tab:
window.open('https://lab-stx-ide.vercel.app/', '_blank', 'noopener,noreferrer')A reusable button with the project's neobrutalist border-shadow style. Accepts variant (primary | secondary) and theme props.
A canvas-based animated sphere rendered as an interactive ASCII/Matrix-style visual used in the hero section.
An interactive visual workflow builder page, accessible by navigating to the builder page state. Allows users to connect and visualize smart contract deployment workflows.
A placeholder component returned when currentPage === 'underdev'. Shows a polished "coming soon" view with a back button.
The app uses in-memory state-based routing (no React Router). Page state is one of:
'landing' | 'builder' | 'underdev'// App.tsx
const [currentPage, setCurrentPage] = useState<'landing' | 'builder' | 'underdev'>('landing');
if (currentPage === 'builder') return <WorkflowBuilder />;
if (currentPage === 'underdev') return <UnderDevelopment onBack={() => setCurrentPage('landing')} theme={theme} />;
return <LandingPage onLaunch={() => setCurrentPage('underdev')} theme={theme} toggleTheme={toggleTheme} />;This landing site is the public entry point to the full LabSTX platform. The IDE is a separate application in ../IDE.
| Frontend (this directory) | IDE (../IDE) |
|
|---|---|---|
| Purpose | Marketing landing page | Full-featured browser IDE |
| Tech | React 19, Vite 6, Tailwind CDN | React 18, Vite 6, Monaco Editor, Stacks SDK |
| Deployed At | lab-stx.vercel.app |
lab-stx-ide.vercel.app |
| AI | β | OpenRouter |
| Blockchain | β | Stacks, Casper Network |
| Wallets | β | Leather, Xverse |
| Build Output | Static HTML/JS/CSS | Static HTML/JS/CSS + WASM |
The landing page's "Launch App" and "Start Building" buttons navigate the user directly to the deployed IDE instance.
| Package | Version | Purpose |
|---|---|---|
react |
^19.2.0 | UI framework |
react-dom |
^19.2.0 | DOM rendering |
lucide-react |
^0.555.0 | Icon library (Ghost, ArrowRight, Rocket, etc.) |
vite |
^6.2.0 | Build tool and dev server |
@vitejs/plugin-react |
^5.0.0 | Vite React plugin |
typescript |
~5.8.2 | Type safety |
@types/node |
^22.14.0 | Node.js type definitions |
Note: Tailwind CSS is loaded via CDN in
index.htmlfor the landing page (not installed as an npm package). This is intentional for the marketing site's lightweight setup.
| Resource | URL |
|---|---|
| Live Landing Page | https://lab-stx-ide.vercel.app/ |
| Live IDE App | https://lab-stx-ide.vercel.app/ |
| Backend API | https://labstx-ide-api.onrender.com |
| Stacks Docs | https://docs.stacks.co |
| Clarity Lang | https://clarity-lang.org |
| Stacks Explorer | https://explorer.hiro.so |
The landing page markets these core features of the IDE (see ../IDE for implementation details):
- Monaco Editor β VS Code-grade editing experience with full Clarity syntax highlighting
- Clarity Static Analysis β In-browser
checkcommand for post-condition and cost analysis - AI Assistant (LabSTX AI) β Powered by OpenRouter
- Wallet Integration β Leather, Xverse (Stacks)
- Deployment β One-click deploy to Stacks Mainnet or Testnet
- GitHub Integration β OAuth-based GitHub auth, file sync, and repo management
- File System β Virtual multi-file workspace with drag-and-drop and ZIP export
- Debugger β Step-through Clarity contract execution
- Terminal Panel β Output, errors, and diagnostics with copy/locate features
- Source Control (soon) β Git status, staging, commits, and branch management panel
- ABI Preview β Parsed contract interface viewer (functions, maps, traits)
- Template Library (soon)β Starter contracts for SIP-010, SIP-009, Counters, etc.
- Adding a new landing page section: Create the section JSX inside
LandingPage.tsx. Use theisDarkvariable and the established color tokens for theme-aware styling. - Adding a new page: Add a new string to the page state union in
App.tsx, add the conditional render, and create the page component incomponents/. - Updating the CTA URL: The IDE URL (
https://lab-stx-ide.vercel.app/) appears inLandingPage.tsxin three places β the header "Launch App" button, the hero "Start Building" button, and the "Launch LabSTX IDE" CTA button. Update all three together. - Icons: All icons are from
lucide-react. Browse the full library at lucide.dev.
Β© 2026 LabSTX. Built for the Stacks Community.
