← gitpulse
Maintenance·Pushed May 1, 2026·XL

Gitpulse Phase 0 scaffold lands with static site pipeline

A new open-source project promises to generate editorial story feeds from your GitHub repository's activity, then publish them as a static site. Phase 0 just proved the deployment pipeline works end-to-end.

GitHub repositories accumulate activity constantly — merged pull requests, direct pushes, CI runs — but most of that history disappears into commit logs nobody reads. A new open-source project called gitpulse aims to surface that activity as short editorial stories, published automatically to GitHub Pages. The project launched with Phase 0, which establishes the deployment infrastructure without any actual analysis logic. A Next.js 16 site is configured for static export with a dynamic basePath that adapts to whatever repository it runs in. Two GitHub Actions workflows handle the pipeline: a reusable [[code ref=2]]analyze.yml[[/code]] that builds and deploys to GitHub Pages, and [[code ref=3]]self-deploy.yml[[/code]] that invokes it on push to main. The site itself displays a placeholder "No stories yet" message — proof the pipeline works before any content logic exists. Styling includes a theme system supporting light and dark modes, with 15 editorial fonts loaded via next/font and a Tailwind configuration that maps CSS custom properties to utility classes. The setup was lifted from an existing project called gitsky, which suggests the author has prior art for this kind of editorial presentation. The architecture is deliberately backend-free. Rather than running a server, gitpulse will analyze a repository's default branch on a schedule, classify commits as merged PRs or direct pushes, and generate stories using Claude. The output is a static site hosted on GitHub Pages — no database, no API to maintain. Phase 0 is infrastructure only. The analyzer logic, content generation, and Claude integration remain to be built.
Technical description
Phase 0 establishes the complete infrastructure skeleton for gitpulse without implementing any analyzer logic. The project is structured as a yarn workspace with two packages: [[code ref=8]]@gitpulse/action[[/code]] (empty TypeScript module for future analyzer code) and [[code ref=1]]@gitpulse/site[[/code]] (Next.js 16 frontend). The site is pre-themed with an editorial aesthetic ported from gitsky's web app. The [[code ref=4]]RootLayout[[/code]] component loads 15 Google Fonts via next/font including Playfair Display, Literata, Fraunces, and Source Serif 4. Each font gets a CSS variable (e.g. --font-playfair, --font-literata). Four font presets are defined in [[code ref=6]]globals.css[[/code]] via data-font attributes: nyt (Playfair + Literata), broadsheet (Old Standard TT + Source Serif 4), modern (Fraunces + Newsreader), and traditional (Libre Baskerville + Spectral). The theme system uses data-theme attributes with CSS custom properties for both light and dark modes. Colors, spacing, and typography all flow through variables. [[code ref=5]]tailwind.config.ts[[/code]] maps these variables to Tailwind utilities — colors like "background" and "foreground" resolve to var(--bg-primary) and var(--text-primary), respectively. For GitHub Pages deployment, [[code ref=1]]next.config.js[[/code]] reads the repository name from GITHUB_REPOSITORY and sets output: 'export' with a dynamic basePath. This means the same build outputs different URLs depending on which repo it runs in. Images are marked unoptimized since static export doesn't support the Next.js image optimizer. The CI pipeline in [[code ref=2]]analyze.yml[[/code]] is a reusable workflow (workflow_call trigger) accepting two inputs: bootstrap-days (how far back to look on first run, default 30) and anthropic-model (Claude model, default claude-sonnet-4-6). The ANTHROPIC_API_KEY secret is declared but not required — Phase 0 has no AI calls. The workflow runs on ubuntu-latest with Node 22, builds the site via yarn workspace, and deploys to the github-pages environment. Concurrency is configured with cancel-in-progress disabled, meaning multiple analysis runs won't interrupt each other. This matters if the workflow is triggered manually during a scheduled run. The placeholder [[code ref=7]]HomePage[[/code]] uses a headline class and standfirst component — the same typography patterns that will be used for actual story content. This confirms the visual system works before any data flows through it.

Categories

  • Maintenance (40%)This is a pure scaffold commit establishing the project structure, workspaces, and infrastructure. No functional code exists yet.
  • Configuration (30%)Sets up Next.js, Tailwind, TypeScript, PostCSS, and workspace configurations. The basePath logic in next.config.js is the key config decision.
  • CI/CD (20%)Creates GitHub Actions workflows for build-and-deploy pipeline and self-deployment. The reusable workflow_call pattern is established here.
  • Dependencies (10%)Adds new dependencies: Next.js 16.1.6, React 19.2.0, Tailwind 3.4.0, and 15 next/font Google Fonts.