Article

What is Bloodstone?

Bloodstone
Bloodstone
What is Bloodstone?
Illustration: What is Bloodstone?

Bloodstone is a minimalist editorial blog built with Astro and Preact. It publishes history, biography, and world-event articles with a neutral tone and fact-based narrative.

Key Features

  • Content collections for posts, authors, and pages
  • Responsive article list and detail pages
  • Dropdown table of contents on article pages
  • Article series with a dedicated series index
  • Client-side article search
  • Save articles to local storage
  • Share popover with social links and native sharing
  • sitemap.xml and Google News sitemap
  • Schema.org JSON-LD structured data
  • Mobile-first responsive layout

Technology

  • Framework: Astro 7
  • UI Library: Preact 10
  • Styling: Tailwind CSS 4
  • Language: TypeScript
  • Icons: Lucide (Preact build)
  • Output: Static site

Project Structure

public/            # Static assets (favicon, robots.txt, etc.)
src/
  components/      # Reusable UI and interactive components
  content/         # Markdown content for authors, pages, and posts
  content.config.ts# Content collections schema
  hooks/           # Custom Preact hooks
  layouts/         # Astro page layouts
  lib/             # Utility modules
  pages/           # Astro routes
  styles/          # Global Tailwind CSS
astro.config.mjs   # Astro configuration
package.json       # Dependencies and scripts

Content

Content is managed through Markdown collections inside src/content/:

  • Posts (posts) contain the main articles.
  • Authors (authors) contain author profiles.
  • Pages (pages) contain static pages such as About, FAQ, and Contact.

Each article uses YAML frontmatter that supports a title, description, publish date, authors, category, tags, series, and hero image.

Running Locally

Make sure Node.js 18.17.1 or later is installed.

npm install
npm run dev

Production build:

npm run build

Preview the build:

npm run preview

License

Licensed under the MIT License.

Tags
BloodstoneAstroPreactEditorial Blog