# Squiggleverse Squiggleverse is a whimsical, game-based learning project focused on grammar, usage, and style. This repository contains the public landing page for the project: a fast, static SvelteKit site with brand artwork, a demo video, introductory copy, and production metadata. The page is built to present Squiggleverse clearly as a polished education-through-play experience while keeping the implementation small, accessible, and easy to deploy. ![Squiggleverse landing page screenshot](static/screenshot.png) ## What Is Included - Static SvelteKit landing page at `/` - Responsive hero logo, demo video, and project introduction - SEO, Open Graph, Twitter card, and JSON-LD metadata - Web manifest, icons, favicon, robots file, sitemap, and social preview image - Self-hosted video and image assets - Static adapter configuration for prerendered output - Docker and CapRover deployment files ## Tech Stack - SvelteKit - Svelte 5 - TypeScript - Vite - `@sveltejs/adapter-static` - `@fontsource/nunito` - Docker with nginx for containerized static hosting ## Project Structure ```txt src/ lib/ assets/ Static media imported by Svelte components components/ Hero logo, video, and intro sections routes/ SvelteKit routes, layout, page metadata, and error page app.css Global styling app.html HTML shell static/ Public assets copied directly into the build Dockerfile Static production image captain-definition CapRover deployment definition ``` ## Getting Started Install dependencies: ```sh npm install ``` Start the local development server: ```sh npm run dev ``` Run Svelte and TypeScript checks: ```sh npm run check ``` Create a production build: ```sh npm run build ``` Preview the production build locally: ```sh npm run preview ``` ## Deployment The site is configured for static generation through `@sveltejs/adapter-static`. Production output is written to `build/`. For container deployments, the included `Dockerfile` builds the SvelteKit site with Node.js and serves the generated static files from nginx. The `captain-definition` file points CapRover at that Dockerfile. ## Content And Assets Core landing page content lives in: - `src/routes/+page.svelte` - `src/lib/components/HeroLogo.svelte` - `src/lib/components/VideoCard.svelte` - `src/lib/components/IntroText.svelte` Public metadata assets live in `static/`. Imported page media lives in `src/lib/assets/`. Large source design files and rendered brand assets are kept at the repository root for project continuity.