chore: migrate from Jekyll to Astro#484
Open
slumbering wants to merge 9 commits into
Open
Conversation
Atomic migration commit. The site now builds from astro/ using Astro 6.x + Content Collections + TypeScript, deployed to GitHub Pages via withastro/action. What changed: - Remove Jekyll source (_posts/, _layouts/, _includes/, _sass/, _data/, pages/) - Remove Jekyll configs (_config.yml, Gemfile*, type-on-strap.gemspec, root CNAME, root index.html) - Remove Docker dev environment (Dockerfile, .dockerignore, .devcontainer/) - Replace .github/workflows/integration.yml (Jekyll CI -> Astro CI: type-check, build, verify-urls) - Replace .github/workflows/deployment.yml (Jekyll deploy -> withastro/action@v3 + actions/deploy-pages@v4) - Update astro/src/components/Footer.astro: remove 'Powered by Jekyll' attribution - Update CONTRIBUTING.md for Astro workflow - Update README.md with Astro tech stack - Add ROLLBACK.md with atomic revert procedure - Update .gitignore: drop Jekyll-specific entries, add .omo/ and Node ignores
Original Jekyll setup used AWS Amplify with zero in-repo config (auto-detected Jekyll from Gemfile + _config.yml). After the Astro cutover, Amplify's auto-detection no longer works since the repo root is no longer a recognizable framework. This commit adds amplify.yml at the repo root telling Amplify how to build the Astro project from astro/: - appRoot: astro (monorepo pattern) - Node 22 via nvm (required by Astro 6.x) - preBuild: npm ci - build: npm run build (runs 'astro build && pagefind --site dist') - artifacts: astro/dist - cache: astro/node_modules CONTRIBUTING.md updated to document the restored PR preview mechanism.
c9f63b4 to
5e2eb43
Compare
…rted SCSS used Jekyll-style relative paths ()\nwhich worked in Jekyll's compile context but fail in Astro: Vite tries to\nresolve them from → \nwhich doesn't exist. Fonts actually live in \nand are served at at runtime.\n\nChange -font-path variables in 4 SCSS files to absolute URL paths:\n- _katex.scss\n- _pacifico.scss\n- _source-sans-pro.scss\n- font-awesome/_variables.scss\n\nThis eliminates Vite's 'didn't resolve at build time' warnings and makes\nKaTeX, Font Awesome, Pacifico, and Roboto fonts render correctly in\nblog posts.
The home page CSS referenced /images/common/banner_xl-medium.jpg and banner_xl-small.jpg under responsive @media breakpoints, but these variants never existed in the repo. They were a Type-on-Strap convention relying on a Gulp pipeline that was never run here. Browsers were silently 404ing them and falling back to the base banner_xl.jpg. Remove the two @media overrides. The base .call-out_img rule already serves banner_xl.jpg at all viewport sizes (which is what users were already seeing). Eliminates the 2 remaining Vite 'didn't resolve at build time' warnings; visual behavior unchanged. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
The home page and /blog/page/N/ stopped showing post-info (date + authors with avatars) below each post-teaser title. Original Jekyll layout rendered _includes/blog/post_info.liquid for every post-teaser via _includes/blog/blog.liquid. Extract two reusable components: - PostInfo: ports post_info.liquid DOM (avatars + name + date with localized month names via @/data/language) - PostTeaser: ports the full blog.liquid post-teaser block (thumbnail + header + h1.post-link + PostInfo + excerpt) Use PostTeaser on both / (home) and /blog/page/[page]/. The blog index now matches the home page's post-teaser DOM (was previously ul/li and missing thumbnail support).
The post detail header now uses the shared PostInfo component so it matches the Jekyll post_info.liquid DOM instead of custom post-meta markup. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jekyll → Astro migration
Replaces the Jekyll stack with Astro 6.x in a single atomic cutover. All 309 posts, every URL, the visual design, and the Amplify PR-preview flow are preserved.
What changes
Type-on-Strapremote theme_posts/,_layouts/,_includes/,_sass/,_data/,pages/astro/src/content/,astro/src/{layouts,components,data,styles,pages}/JamesIves/github-pages-deploy-action→gh-pagesbranchwithastro/action@v3+actions/deploy-pages@v4simple-jekyll-searchamplify.yml(Node 22 + Astro build)Preserved (verified)
astro/src/content/{blog,conferences,videos}/with frontmatter intactastro/scripts/verify-urls.mjs(735/735 URLs)redirect_frompaths → meta-refresh stubs indist//blog/page:numURLs → meta-refresh to/blog/page/N/astro/public/PUBLIC_MATOMO_ENABLED)Verification
deploy-pages@v4workflow needs it.PUBLIC_MATOMO_ENABLED=falsescoped to preview branches (so previews don't pollute Matomo)./feed.xml,/tags/,/search/.Out of scope (follow-ups)
assets/+images/(~382 MB) duplicated inastro/public/— optional cleanup commit