mjamiv/martello-ai-research

a repo that houses the personal research for m. martello

★ 0Forks 0AstroGitHub ↗Compare

README

Martello AI Research

Minimal Astro-powered personal research blog for papers, essays, notes, and ideas. Built for GitHub Pages with dark mode, accessibility features, and a test suite.

Stack

  • Astro 6 static site with MDX content collection
  • TypeScript with strict config
  • Vitest for unit testing (26 tests)
  • GitHub Pages deployment via GitHub Actions (SHA-pinned)
  • Security headers (CSP, X-Frame-Options, Referrer-Policy)

Local development

npm install
npm run dev

The site runs locally at http://localhost:4321/martello-ai-research/.

Verification

npm test          # 26 unit tests via Vitest
npm run check     # Astro type checking
npm run build     # Static build to dist/

Features

  • Dark mode — auto-detects system preference, manual toggle with localStorage persistence
  • Accessibility — skip-to-content link, focus-visible outlines, ARIA landmarks, reduced-motion guards
  • Performance — Astro prefetch on hover, compressed HTML, optimized font loading (display=optional)
  • Security — Content Security Policy, SHA-pinned CI actions, npm audit in pipeline, Zod schema validation with strict rules
  • Reading experience — progress bar on posts, hover states on cards, sticky blurred header

Content authoring

Create posts in src/content/posts/ with this frontmatter:

---
title: "Post title"
date: "2026-03-17"
summary: "One-line description."
type: "essay"
tags:
  - strategy
  - research
draft: false
slug: "post-title"
---

Allowed type values: paper, essay, note, idea.

GitHub Pages

The included workflow deploys on pushes to main. CI runs tests and npm audit before building.

Repo settings required:

  1. Go to GitHub Settings > Pages.
  2. Set source to GitHub Actions.
  3. Push to main.

Production URL: https://mjamiv.github.io/martello-ai-research/

Contributors

mjamiv

Issues