-
Notifications
You must be signed in to change notification settings - Fork 0
Migrate blog from Gatsby to Astro #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
aravindputrevu
merged 28 commits into
main
from
claude/migrate-blog-to-astro-011CUbbn2h14AZoCwmyvTUTf
Jan 3, 2026
Merged
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
8215c3e
Migrate blog from Gatsby to Astro
claude b20a085
Add Firebase branch preview deployments for Astro
claude 054eba6
phase 1
aravindputrevu ea7a0e7
phase 2
aravindputrevu 884f617
additional image changes
aravindputrevu eda91a0
Clean up legacy Gatsby files after Astro migration
aravindputrevu a39d70a
Redesign navigation, footer, and pages with brutalist styling
aravindputrevu bd91d7f
Remove dead code: backup CSS files and redundant jsconfig.json
aravindputrevu ec420fd
Remove dist/ from version control
aravindputrevu 36b8cd1
Remove unused React and MDX dependencies
aravindputrevu e407c12
Fix dark mode toggle requiring multiple clicks
aravindputrevu 0837e7d
Fix tags not changing color in dark mode
aravindputrevu 541ce0c
Remove unused Partytown library files
aravindputrevu 5446be3
Remove unused image assets
aravindputrevu a094bc7
Improve Lighthouse scores: accessibility and SEO
aravindputrevu 2f4da51
Improve navbar styling and add font preconnect hints
aravindputrevu e3acdce
deleting legacy action file
aravindputrevu ebac9a0
Update contact email and cleanup
aravindputrevu 7882dea
Add .claude/ to gitignore
aravindputrevu 663a111
Update README for Astro migration
aravindputrevu d8754b8
Address CodeRabbit suggestions
claude 814d9c3
Update intro text on homepage to reflect current focus and experience
aravindputrevu c675d25
Sync package-lock.json with package.json
aravindputrevu 5560a02
Update Substack link in footer to point to new URL
aravindputrevu 8e2eeff
Add Plausible analytics integration
aravindputrevu 033d8d9
Add RSS feed and fix Twitter/YouTube embeds
aravindputrevu d7228da
Add social share meta tags and fix font preconnect
aravindputrevu 564ad8f
Add is:inline to dark mode script and expose toggle API
aravindputrevu File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| # Deploy preview to Firebase Hosting for feature branches | ||
| name: Deploy Branch Preview | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - '**' | ||
| - '!main' | ||
|
|
||
| jobs: | ||
| build_and_preview: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup Node.js | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '20' | ||
| cache: 'npm' | ||
|
|
||
| - name: Install dependencies | ||
| run: npm ci | ||
|
|
||
| - name: Build Astro site | ||
| run: npm run build | ||
|
|
||
| - name: Deploy to Firebase Hosting Preview Channel | ||
| uses: FirebaseExtended/action-hosting-deploy@v0 | ||
| with: | ||
| repoToken: '${{ secrets.GITHUB_TOKEN }}' | ||
| firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_TEST_713FA }}' | ||
| projectId: test-713fa | ||
| target: aravind-dev | ||
| expires: 7d | ||
| channelId: ${{ github.ref_name }} | ||
| env: | ||
| FIREBASE_CLI_EXPERIMENTS: webframeworks | ||
|
|
||
| - name: Comment preview URL | ||
| uses: actions/github-script@v7 | ||
| with: | ||
| script: | | ||
| const branchName = context.ref.replace('refs/heads/', ''); | ||
| const previewUrl = `https://aravind-dev--${branchName.replace(/\//g, '-')}-${context.sha.substring(0, 7)}.web.app`; | ||
| console.log(`Preview URL: ${previewUrl}`); | ||
| console.log(`Branch: ${branchName}`); |
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,23 +1,37 @@ | ||
| # This file was auto-generated by the Firebase CLI | ||
| # https://github.com/firebase/firebase-tools | ||
| # Deploy preview to Firebase Hosting for Pull Requests | ||
| name: Deploy Preview | ||
|
|
||
| on: | ||
| pull_request: | ||
| types: [opened, synchronize, reopened] | ||
|
|
||
| name: Deploy to Firebase Hosting on commit | ||
| 'on': push | ||
| jobs: | ||
| build_and_preview: | ||
| if: '${{ github.event.pull_request.head.repo.full_name == github.repository }}' | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v2 | ||
| - run: | | ||
| sudo npm install gatsby-cli | ||
| gatsby -v | ||
| npm install | ||
| gatsby clean | ||
| gatsby build | ||
| - uses: FirebaseExtended/action-hosting-deploy@v0 | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup Node.js | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '20' | ||
| cache: 'npm' | ||
|
|
||
| - name: Install dependencies | ||
| run: npm ci | ||
|
|
||
| - name: Build Astro site | ||
| run: npm run build | ||
|
|
||
| - name: Deploy to Firebase Hosting Preview Channel | ||
| uses: FirebaseExtended/action-hosting-deploy@v0 | ||
| with: | ||
| repoToken: '${{ secrets.GITHUB_TOKEN }}' | ||
| firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_TEST_713FA }}' | ||
| projectId: test-713fa | ||
| target: aravind-dev | ||
| expires: 7d | ||
| env: | ||
| FIREBASE_CLI_PREVIEWS: hostingchannels | ||
| FIREBASE_CLI_EXPERIMENTS: webframeworks |
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,23 +1,73 @@ | ||
| # aravind.dev | ||
|
|
||
| Source code for [aravind.dev](https://aravind.dev) blog. | ||
| This is the [Original Theme Source](https://github.com/taniarascia/taniarascia.com). | ||
| Personal website and blog built with [Astro](https://astro.build). | ||
|
|
||
| # Prerequisites | ||
| ## Tech Stack | ||
|
|
||
| - Node | ||
| - Gatsby | ||
| - **Framework:** Astro 4 | ||
| - **Styling:** Vanilla CSS (Brutalist theme) | ||
| - **Content:** Markdown + Astro components | ||
| - **Deployment:** Firebase Hosting | ||
| - **CI/CD:** GitHub Actions | ||
|
|
||
| # Building the project | ||
| ## Quick Start | ||
|
|
||
| Below command installs all the necessary modules from the | ||
| ```bash | ||
| # Install dependencies | ||
| npm install | ||
|
|
||
| # Start dev server (http://localhost:4321) | ||
| npm run dev | ||
|
|
||
| # Build for production | ||
| npm run build | ||
|
|
||
| # Preview production build | ||
| npm run preview | ||
| ``` | ||
| npm install | ||
|
|
||
| ## Project Structure | ||
|
|
||
| ``` | ||
| src/ | ||
| ├── components/astro/ # Reusable components (Nav, Footer) | ||
| ├── content/ | ||
| │ ├── posts/ # Blog posts (markdown) | ||
| │ └── guides/ # Technical guides (markdown) | ||
| ├── layouts/ # Page layouts | ||
| ├── pages/ # Routes (index, blog, about, archive) | ||
| └── style.css # Global styles | ||
|
|
||
| public/ | ||
| ├── images/ # Static images | ||
| └── thumbnails/ # Post thumbnails | ||
| ``` | ||
| gatsby develop | ||
|
|
||
| ## Content | ||
|
|
||
| Blog posts and guides are written in Markdown with frontmatter: | ||
|
|
||
| ```markdown | ||
| --- | ||
| title: 'Post Title' | ||
| date: '2024-01-01' | ||
| tags: ['tag1', 'tag2'] | ||
| thumbnail: '../thumbnails/image.png' | ||
| --- | ||
|
|
||
| Content here... | ||
| ``` | ||
|
|
||
| Please read more about each [plugin](https://www.gatsbyjs.com/plugins/) and about [gatsby](https://www.gatsbyjs.com/docs/quick-start/) further. | ||
| ## Deployment | ||
|
|
||
| Push to `main` triggers automatic deployment to Firebase Hosting via GitHub Actions. | ||
|
|
||
| **Branch previews:** Push to any branch to get a preview deployment. | ||
|
|
||
| ## Local Development | ||
|
|
||
| The site uses a brutalist design with light/dark mode support. Dark mode styles are in `public/dark.css` and loaded dynamically. | ||
|
|
||
| ## License | ||
|
|
||
| Content is copyrighted. Code is available for reference. | ||
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| import { defineConfig } from 'astro/config'; | ||
| import sitemap from '@astrojs/sitemap'; | ||
|
|
||
| // https://astro.build/config | ||
| export default defineConfig({ | ||
| site: 'https://www.aravind.dev', | ||
| integrations: [ | ||
| sitemap(), | ||
| ], | ||
| markdown: { | ||
| shikiConfig: { | ||
| theme: 'nord', | ||
| wrap: true | ||
| }, | ||
| remarkPlugins: [], | ||
| rehypePlugins: [], | ||
| }, | ||
| }); |
Binary file not shown.
This file was deleted.
Oops, something went wrong.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,17 +1,13 @@ | ||
| { | ||
| "hosting": { | ||
| "public": "public", | ||
| "public": "dist", | ||
| "target": "aravind-dev", | ||
| "ignore": [ | ||
| "firebase.json", | ||
| "**/.*", | ||
| "**/node_modules/**" | ||
| ], | ||
| "rewrites": [ | ||
| { | ||
| "source": "**", | ||
| "destination": "/index.html" | ||
| } | ||
| ] | ||
| "cleanUrls": true, | ||
| "trailingSlash": false | ||
| } | ||
| } |
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fantastic documentation update! 📚
This README is super helpful and accurately reflects the Astro migration. Love the clear structure with Tech Stack, Quick Start, and Project Structure sections. Really makes it easy for someone to jump in!
One tiny thing: Line 31's code fence is missing a language identifier (markdownlint is complaining about it). No big deal, but it helps with syntax highlighting!
🔎 Quick fix
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
31-31: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents