Static marketing site for Oursky, rebuilt from Webflow as an Astro 6 project with Tailwind CSS 4, MDX content collections, and a checked-in Webflow export under ref/ for parity reference.
- Node.js 22.12 or newer (see
package.jsonenginesand.nvmrc)
npm install
npm run devThe dev server defaults to http://localhost:4321.
npm run build # production build → dist/
npm run preview # serve dist/ locallyCopy .env.example to .env when you need Webflow migration scripts or future analytics keys. The static site build does not require a .env file.
Create a new empty repository, then from this directory:
git remote add origin https://github.com/<org>/<repo>.git
git branch -M main
git push -u origin main- In the Netlify dashboard, connect the GitHub repository. Build command and publish directory come from
netlify.toml. - Deploy previews use
DEPLOY_PRIME_URLfor canonical URLs, Open Graph base URLs, and the sitemap. Production deploys (CONTEXT=production) usehttps://www.oursky.comunless you setPUBLIC_SITE_URLunder Site → Settings → Environment variables. - Contact form submissions land in Site → Forms → oursky-contact. Configure email notifications under Forms → Settings → Form notifications.
- Redirect rules live in
netlify.toml. Regenerate the imported set withnpm run convert:redirects exports/webflow/redirects.csvafter refreshing the CSV. - Optional: enable Password protection on preview deploys if the site should not be publicly reachable before launch.
| Script | Purpose |
|---|---|
npm run generate:works |
Regenerate work stubs |
npm run generate:blog-stubs |
Blog stub generator |
npm run generate:blog-stubs:all |
Same with --force |
Migration notes and phase handoffs live in docs/.