Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 1.97 KB

File metadata and controls

64 lines (44 loc) · 1.97 KB

Bluenex's personal website

This is my personal website ported from Next.js to Astro recently (1 Dec 2024). There is also a blog which I occasionally update as a diary and personal geek note. I am not a good storyteller but sometimes the feeling is just right.

Changelog

  • 28 Apr 2026 — Upgraded Astro 5→6, React 18→19, Tailwind CSS 3→4, TypeScript 5→6. Migrated blog to Astro Content Collections (replaced gray-matter/remark custom loader with Zod schema + built-in shiki syntax highlighting).
  • 1 Dec 2024 — Ported from Next.js to Astro.
  • 7 May 2022 — Ported from Jekyll to Next.js + Tailwind CSS.
  • Dec 2015 — Initial blog launch on Jekyll.

Tech stack

  • Astro 6
  • React 19
  • TypeScript
  • Tailwind CSS 4

Editor

Visual Studio Code with Tailwind CSS IntelliSense extension.

Dev

pnpm run dev

Verification

pnpm run build           # astro check + build
pnpm run checktype       # type check only
pnpm run lint            # lint with ESLint
pnpm run format          # format with Prettier
pnpm run format:check    # check formatting without writing
pnpm run format:lintfix  # format + lint fix

Deployment

Currently deploy on Cloudflare Pages and can be accessed at https://bluenex.dev.

Add a blog post

A new post can be added in src/content/posts/ directory with a file name format:

{year}-{month}-{date}-{title-as-kebab-case}.md

*kebab-case

Supported frontmatter:

title: string          # required
date: YYYY-MM-DDTHH:mm # required
modified: YYYY-MM-DDTHH:mm # optional
tags: [tag1, tag2]     # optional
thumbnail: string      # optional

Posts are loaded via Astro Content Collections (src/content.config.ts) with a Zod schema. Markdown is rendered at build time using Astro's built-in pipeline with shiki for syntax highlighting (github-dark-dimmed theme).