Files

94 lines
2.5 KiB
Markdown

# 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.