Skip to content

feat: migrate from ESLint/Prettier to Biome + Ultracite - #6

Merged
ace139 merged 3 commits into
mainfrom
feat/biome-migration
Jan 29, 2026
Merged

feat: migrate from ESLint/Prettier to Biome + Ultracite#6
ace139 merged 3 commits into
mainfrom
feat/biome-migration

Conversation

@ace139

@ace139 ace139 commented Jan 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replace ESLint and Prettier with Biome 2.3.13 and Ultracite 7.1.1
  • Add draft field to content schema for publish/unpublish functionality
  • Update all source files with new formatting and lint rules
  • Remove deprecated ESLint/Prettier config files
  • Add biome.json with Ultracite Astro preset

Code Review Fixes

After comprehensive multi-agent code review, the following improvements were implemented:

🔴 P1 - Critical (Fixed)

  • Draft content exposure in llms.txt - Added draft filtering to generate-llms-txt.js so unpublished posts are not visible to AI agents
  • Biome scanning generated directories - Added files.includes with force-ignore patterns for .astro/ and dist/ directories

🟡 P2 - Important (Fixed)

  • CLAUDE.md documentation drift - Updated quality commands to reference Biome instead of ESLint/Prettier
  • Projects missing from llms.txt - Added getProjects() function with draft filtering for agent-native parity

🔵 P3 - Nice-to-Have (Fixed)

  • Code duplication - Extracted isPublished and sortByDateDesc utilities to src/utils/content.ts, replacing 7 duplicate lambdas across 6 pages
  • Layout.astro complexity - Split 623-line monolithic file into:
    • Navigation.astro (150 lines) - Nav bar, theme toggle, mobile menu
    • Footer.astro (95 lines) - Footer with nav links and social icons
    • Layout.astro reduced to 402 lines

Mobile Responsiveness Fix

  • Hero eyebrow centering - Fixed misaligned "TECH · AI · PRODUCT · STORIES" text on mobile viewports
    • Added justify-center and text-center classes to flex container
    • Text center offset reduced from 36px to 0px at 375px viewport

Files Changed

Category Files
Config biome.json, CLAUDE.md
Build scripts/generate-llms-txt.js, public/llms.txt
Components Navigation.astro (new), Footer.astro (new)
Utilities src/utils/content.ts (new)
Layouts src/layouts/Layout.astro
Pages blog.astro, projects.astro, index.astro, tags/[tag].astro, blog/[...slug].astro, projects/[...slug].astro

Review Agents Used

  • security-sentinel
  • performance-oracle
  • architecture-strategist
  • pattern-recognition-specialist
  • code-simplicity-reviewer
  • agent-native-reviewer
  • git-history-analyzer

Test Plan

  • bun run build passes
  • bun run lint runs without errors on source files
  • Draft posts excluded from llms.txt
  • Projects section added to llms.txt
  • Navigation and theme toggle work correctly
  • Mobile menu functions properly
  • Mobile responsiveness verified at 375x812 viewport
  • Hero eyebrow text centered on mobile

🤖 Generated with Claude Code

- Replace ESLint and Prettier with Biome 2.3.13 and Ultracite 7.1.1
- Add draft field to content schema for publish/unpublish functionality
- Update all source files with new formatting and lint rules
- Remove deprecated ESLint/Prettier config files
- Add biome.json with Ultracite Astro preset
@netlify

netlify Bot commented Jan 28, 2026

Copy link
Copy Markdown

Deploy Preview for soumyo-dey ready!

Name Link
🔨 Latest commit 048dd27
🔍 Latest deploy log https://app.netlify.com/projects/soumyo-dey/deploys/697b9a7f498af000082f1d19
😎 Deploy Preview https://deploy-preview-6--soumyo-dey.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 91
Accessibility: 97
Best Practices: 83
SEO: 92
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

github-actions Bot commented Jan 28, 2026

Copy link
Copy Markdown

Preview Deployment Ready!

Preview URL: https://d4692b1c.soumyo-com.pages.dev

This preview will be automatically updated when you push new commits.

ace139 and others added 2 commits January 29, 2026 22:22
- Fix draft content exposure in llms.txt (P1)
  - Add draft filtering to getBlogPosts() in generate-llms-txt.js
  - Add getProjects() function with draft filtering for agent parity

- Fix Biome lint scanning generated directories (P1)
  - Add files.includes with force-ignore patterns for .astro and dist

- Update CLAUDE.md documentation (P2)
  - Replace ESLint/Prettier references with Biome

- Extract content utilities (P3)
  - Create src/utils/content.ts with isPublished and sortByDateDesc
  - Update all 6 pages to use shared utilities

- Split Layout.astro into components (P3)
  - Extract Navigation.astro (150 lines)
  - Extract Footer.astro (95 lines)
  - Reduce Layout.astro from 623 to 402 lines

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add justify-center and text-center classes to the hero eyebrow
flex container so text remains centered when it wraps to two
lines on narrow screens.

Verified: text center offset reduced from 36px to 0px at 375px viewport.

Co-Authored-By: Claude <noreply@anthropic.com>
@ace139
ace139 merged commit d01bc71 into main Jan 29, 2026
5 checks passed
@ace139
ace139 deleted the feat/biome-migration branch January 29, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant