My blog. Built with Astro. A rebuild of my Gatsby blog, itself a rebuild of my Octopress blog.
Read about relaunching on Astro on the blog.
This is a Yarn 4 monorepo using Turborepo for task orchestration.
apps/
blog-app/ # Main Astro blog (heygrady.com)
packages/
eslint-config/ # Shared ESLint flat config for ESLint 9+
jest-preset-ts-node-esm/ # Jest preset for TypeScript ESM projects
tsconfig-bases/ # Shared TypeScript configurations
scripts/
create-post/ # CLI tool for creating new blog posts
templates/
node-esm/ # Package template for Node.js ESM
ts-node-esm/ # Package template for TypeScript ESM
- Node.js 20+ (managed via Volta)
- Yarn 4
yarn install# Start the blog dev server
yarn dev
# Build all packages
yarn build
# Run linting
yarn lint
yarn format
# Run tests
yarn testyarn create-post| Command | Description |
|---|---|
yarn start |
Start the blog dev server |
yarn build |
Build all packages |
yarn lint |
Lint all packages |
yarn format |
Lint and fix all packages |
yarn test |
Run tests across all packages |
yarn coverage |
Run tests with coverage |
yarn create-post |
Create a new blog post |
yarn clean |
Clean turbo cache |
yarn clean:hard |
Full clean including node_modules |
This repo uses Changesets for version management and publishes packages to GitHub Package Registry.
The blog is deployed to Firebase Hosting. Production deploys happen automatically when the "Version Packages" PR is merged to main.