What it does
Wavefront publishes to sites that keep their content in a GitHub repository: Astro, Next.js, Hugo, Jekyll, Eleventy, Docusaurus, Gatsby and the like. Each approved article becomes one Markdown file with front matter.
By default it opens a pull request, so your own review and CI apply. You can commit straight to the branch instead, and have Wavefront wait for your deploy and check the live page.
Wavefront never replaces or deletes a file it didn't write.
Before you start
- A GitHub repository for the site
- A fine-grained token for that repository only, with Contents and Pull requests read and write, Actions read and Commit statuses read
How to connect GitHub
- In GitHub, create a fine-grained personal access token with access to this repository only and the permissions listed above.
- In Wavefront, open Settings → Publishing and choose Add destination. Pick GitHub (static site).
- Enter the repository, the branch, and where each article goes, such as src/content/blog/{slug}.md or _posts/{date}-{slug}.md.
- Choose pull request or direct commit, and optionally a folder for images and how the site links to them.
- Map front matter keys to the ones your site uses, or choose Load fields to read them from an existing post.
- Optionally set the live URL pattern and the deploy workflow to wait for, then choose Test connection and save.
What Wavefront sends
- One Markdown file per article, with YAML front matter and a wavefront_id key
- Title, description, date, tags, categories, header image, canonical URL, SEO title, excerpt, author, keywords and sources, under your keys
- Images committed to a folder you choose, or left on Wavefront's media host
- The file and its images in one commit, so a retry never adds a second commit
- Revisions write the same file, so the post's path and date never move
Good to know
- Scheduling isn't offered for GitHub; a direct commit publishes when it lands.
- GitLab and Bitbucket aren't supported.
- Withdraw deletes only the file and the images Wavefront committed, after checking the file is this content's.