Matt Waite
Tools
pressroomComing next

Publish a post as one commit.

Write posts as MDX on your machine, preview them, and publish each one to your site’s repo as a commit that holds only that post.

npm install -g @excellent-so/pressroomnpm

FreeMITRuns on your machineNo dependencies

127.0.0.1:4640
pressroom: Write and preview

What you get

  1. 01

    Write where your files are

    Each post is one .mdx file in a folder. The viewer edits it on disk, with the preview beside it.

  2. 02

    One post, one commit

    Publish writes the post into your site’s content folder, commits that one file and pushes. The history reads one post at a time.

  3. 03

    See it before it ships

    A dry run shows the exact file it would write. Nothing changes until you publish.

01

Dry run first

Dry run shows the exact file publish would write into your site, frontmatter and all, and touches nothing. What you see is what will be committed.

127.0.0.1:4640
pressroom: Dry run first
02

One post, one commit

Publish wrote the post into content/posts, committed that one file and pushed it. Other changes in your site stay out of the commit, and the post is now marked Published with today's date.

127.0.0.1:4640
pressroom: One post, one commit
03

Connect your site

Point pressroom at your site's git checkout. It checks the folder, the git repo and the content folder, then saves the path to pressroom.config.mjs, so Publish works without a restart.

127.0.0.1:4640
pressroom: Connect your site
04

MDX, in the dark

The dark theme, on a post that uses an MDX component. The preview draws the markdown and shows imports and components as labelled code, because only your site's build can render them.

127.0.0.1:4640
pressroom: MDX, in the dark

How it works

  1. 1

    Point it at your site

    pressroom init
  2. 2

    Write a post

    pressroom new "Hello, world"
    pressroom open
  3. 3

    Publish it

    pressroom publish hello-world

Details

Works with
Any static site that builds .mdx into pages: Astro, Next.js, Eleventy
Needs
Node 20 and git
Viewer
127.0.0.1 only. It refuses writes from other sites’ pages
Dependencies
None
License
MIT

Why I made it

pressroom publish <slug> commits exactly one file and pushes it.

Matt Waite

Try pressroom.

Free and MIT licensed. Coming soon: the code goes public at launch.

npm install -g @excellent-so/pressroomnpm