Artem Sapegin’s sites monorepo
April 7, 2026 · View on GitHub
WordPress (2008) → Aegea (2012) → DocPad (2013) → Hexo (2015, unpublished) → Fledermaus (2015) → Gatsby (2018) → Astro (2023).
Architecture
Multi-site monorepo (single package, no workspaces) powered by Astro and Tailwind CSS v4. The active site is selected via the SITE env variable, which switches Astro’s srcDir.
Folder structure
src/
sites/ — per-site source
sapegin.me/
morning.photos/
shared/ — shared code
content/ — synced content (generated, do not edit directly)
public/ — static assets
scripts/ — build-time scripts (book sync, Squirrelsong sync)
Running locally
First clone the repo, install dependencies:
git clone https://github.com/sapegin/sapegin.me.git
cd sapegin.me
npm install
Per-site commands
npm run dev:sapegin
npm run build:sapegin
npm run dev:morning
npm run build:morning
Lint & test
npm run lint:js # ESLint
npm run lint:text # Textlint
npm test # Astro check → lint → prettier format
Sponsoring
Writing articles takes a lot of time and lots of coffee, buy me one more cup to keep it going.
Authors and license
Artem Sapegin and contributors.
License: you can use the code (HTML/JS) of this site, but you can’t use the design, CSS, images, or content.
