This project is a static website built with Astro and Tailwind CSS, intentionally designed with minimal JavaScript usage so it can be deployed as a fully static site.
The goal is to keep the runtime simple, predictable, and compatible with static hosting environments.
- Astro – static site framework
- Tailwind CSS – styling
- Minimal JavaScript (only where strictly needed)
- Local static assets (fonts, images, video)
/
├── public/
│ ├── fonts/
│ ├── sky.webp
│ ├── sky.mp4
│ └── favicon.svg
├── src/
│ ├── layouts/
│ │ └── Layout.astro
│ ├── pages/
│ │ └── index.astro
│ ├── styles/
│ │ └── global.css
│ └── model/
│ └── labels.ts
├── dist/ # generated after build
├── package.json
└── astro.config.mjs
Install dependencies:
npm installRun the local development server:
npm run devThe site will be available at:
http://localhost:4321
Generate the production-ready static output:
npm run buildThis command creates a dist/ directory containing only static files.
To preview the production build locally:
npm run previewIf you deploy the dist/ folder manually (for example via FTP, SCP, or a basic static host), follow the steps below.
After running the build, Astro generates CSS inside:
dist/_astro/index.[hash].css
Move the file to:
dist/index.[hash].css
Then update all references in the generated HTML from:
/_astro/index.xxxxx.cssto:
index.xxxxx.cssWhen deploying statically, asset paths should be relative, not absolute.
Update references like:
/fonts/FontName.woff2
/favicon.svg
/sky.webp
/sky.mp4
to:
fonts/FontName.woff2
favicon.svg
sky.webp
sky.mp4
This applies to:
- fonts
- images
- videos
- icons
- any static media
This ensures the site works correctly regardless of domain or subfolder.
- JavaScript usage is intentionally minimal to keep rendering predictable and portable.
- Video backgrounds rely on native HTML and CSS only.
- No runtime framework or hydration is required.
- Suitable for:
- static hosting
- CDN deployment
- shared hosting
- manual uploads
- CI/CD pipelines
{
"dev": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
}