Site Inception: GitHub Pages Pipeline and Content System

Published 5 April 2026

site-engineering astro github-actions publishing-pipeline

This blog is where I write about energy and renewables analytics, operational reporting, forecasting-oriented analysis, geospatial workflows, and the practical side of building reproducible data systems.

Yay, my personal site is finally live at zhittsova.com! 🎉🎊🥳 In this post I’m explaining the technical setup and publication pipeline for the site. Under the covers, it’s a static Astro website with React islands and deployed via GitHub Pages.

My goal here is to keep technical writing, notebook context, and case-study outputs in one place with a professional and reproducible workflow.

I’ve begun publishing notebook-backed posts from the agri-weather-yield-drivers project as a first wave, and the content system is designed to support that and more going forward.

I’ll be publishing infographics and live charts based on my past work as far as I may share them, slide decks from my presentations, and more case studies as I have time to write them up.

A crude oil energy analytics project is in the making, and very timely. I’m investigating the supply chain risk implications of the ongoing Near East conflict, sending economic shockwaves around the globe.

The stack is Astro 6 with content collections, React islands only where needed, and a static deployment target. I’m using Tailwind CSS 4 for styling, and Radix UI for sleek React components.

All notebooks and projects are available on my GitHub.

I’ll also share my dbt setup and the ETL pipelines. Right now, you can already use Binder or Google Colab (latter advised) with DuckDB as a data mart - I’ve preconfigured them in my repos. Everything is exactly reproducible already.

Sometimes projects are related to case studies. But my case studies are all summaries of my activies from my past work experience, while my projects live outside work, are free of NDAs or bear employer’s approval.

Status: Site Updates Business lane: Product & Delivery Technical lane: Reproducible Data Pipelines

Release position.

I’m releasing the notebooks incrementally, taking extra care to check their reproducibility and re-validate the claims in them.

Stack
Astro 6, MDX, React islands, Tailwind 4, Radix UI
Build target
Static site generation with schema-validated content collections
Primary audience
Data scientists, hiring managers, product leaders, and technical reviewers

Build and deploy flow

  • Content lives under src/content/* and is .
  • CI runs typecheck, tests, and build.
  • A GitHub Actions workflow publishes generated static output to GitHub Pages.

Local verification mirrors CI so publication is predictable. I also added Playwright acceptance tests in CI.

A useful habit is running npm run typecheck, npm test, and

npm run build before pushing.

This is best automated with a Makefile and pre-commit hooks.

Notebook publication plan

Notebook work from agri-weather-yield-drivers is published here as a blog post series:

  • one post per notebook
  • a short description with impact notes around scope and results
  • direct GitHub, Binder, and Colab links via notebook preview cards
  • I’m releasing them one after another - with incomplete data, where imputation is necessary, validation is takes more time.
Published notebook posts in current release wave: 42%

What is next

  • Section and category landing pages for easier navigation
  • Additional advisory notebook writeups once release checks are complete
  • More case studies from previous work experience, linked back to the data pipelines

Publish only what can be defended technically and explained clearly to a mixed business and engineering audience.

- Portfolio site guiding principle

Open project repository

Explore all categories