Zero to live on free infrastructure. These are the exact steps.
Prerequisites
- Node.js 22.12.0 or higher. Check with
node --version. - A GitHub account (free).
- A Netlify account (free tier).
Step 1: Clone and install
git clone https://github.com/houdini1906-lgtm/sovereign-stack-skeleton.git my-platform
cd my-platform
npm install
This installs the four dependencies. Nothing else.
Step 2: Verify locally
npm run dev
Open http://localhost:4321 in your browser. You should see the homepage with the two example posts. The draft post (“Your First Post”) will also appear in dev mode.
npm run build
This builds the static site to dist/. Verify the draft post is NOT in the output:
ls dist/posts/
You should see welcome/ and how-this-works/ but NOT your-first-post/. That is the draft gate working.
Step 3: Create your GitHub repo
- Go to github.com and create a new repository (private or public, your choice).
- Remove the existing remote and add your own:
git remote remove origin
git remote add origin https://github.com/YOUR-USERNAME/YOUR-REPO-NAME.git
git branch -M main
git push -u origin main
You now own the repo. The code is yours.
Step 4: Deploy to Netlify
- Go to app.netlify.com and sign in.
- Click “Add new site” then “Import an existing project.”
- Connect your GitHub account and select your repository.
- Netlify will auto-detect the Astro project. Verify these settings:
- Build command:
npm run build - Publish directory:
dist - Node version: set
NODE_VERSIONto22in the environment variables.
- Build command:
- Click “Deploy site.”
Netlify will build and deploy your site. You will get a URL like your-site-name.netlify.app.
Step 5: Point your domain (optional)
If you have a custom domain:
- In Netlify, go to “Domain management” and click “Add a domain.”
- Enter your domain name.
- Netlify will provide DNS records. Add them to your domain registrar.
- Update
astro.config.mjsto use your domain:
export default defineConfig({
site: 'https://your-domain.com',
integrations: [mdx(), sitemap()],
});
- Commit, push, and Netlify will redeploy automatically.
Step 6: Verify the live site
After deployment:
- Visit your site URL. Confirm the homepage loads with the two published posts.
- Visit
/rss.xml. Confirm the feed contains the two published posts and no drafts. - Check that clicking a post takes you to the full post page.
Your sovereign platform is live.
Continuous deployment
Every time you push to main, Netlify rebuilds and redeploys automatically. Your workflow:
- Write a new post in
src/content/posts/. - Set
status: draftand preview withnpm run dev. - When ready, change to
status: published. - Commit and push. Netlify deploys the update.
No CMS. No dashboard. Git is your publishing pipeline.