Skip to content

feat: Add an availability block to feature pages - #366

Merged
aabedraba merged 14 commits into
prod-stagingfrom
availability-block
Nov 4, 2026
Merged

aabedraba merged 14 commits into
prod-stagingfrom
availability-block

Conversation

@aabedraba

@aabedraba aabedraba commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Feature pages get a block under the title that says where the feature runs (Unikraft Cloud, BYOC, on-prem), the plan as a hint on the Unikraft Cloud chip, and which of the API, CLI and SDKs expose it. It comes from the page frontmatter: a remark plugin puts it under the H1, and a post-build script writes the same facts into the .md exports and llms-full.txt, since Zudoku copies the raw body there and agents would otherwise never see it.

All 18 feature pages use it, mostly instead of their "Limited Access" / "CLI coming soon" callouts. I checked each one against the R10-R14 notes and prod-stable. Three I'm not sure about: branching, checkpoints and plugins are marked enterprise (R11 says they need a license, the pages never say so), and forking is "coming soon" everywhere because the page says it isn't on stable yet.

The chips link to a new /platform/hosting-options page that defines the three options.

vertical scaling

images, the differs case

live migration, not on Unikraft Cloud

cron jobs, with the note open

forking, preview

dark mode

hosting options page

Not TODO:

  • The callouts on the platform pages (instances, volumes, etc.)

A page can declare where a feature is available in its frontmatter:
Unikraft Cloud, BYOC, or on-prem, with the plan and the interfaces.
A remark plugin inserts the block under the page title.

Seven pages use the block in place of their "Limited Access" callouts.

Signed-off-by: aabedraba <abdallah@unikraft.com>
@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 15:33 — with GitHub Actions Inactive
jesi-rgb
jesi-rgb previously approved these changes Nov 3, 2026

@jesi-rgb jesi-rgb left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

outstanding idea, great execution

Reviewed-by: Jesús Rascón jesus@unikraft.io
Approved-by: Jesús Rascón jesus@unikraft.io

@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 15:43 Inactive

@danielvallance danielvallance left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed-by: Daniel Vallance daniel@unikraft.com
Approved-by: Daniel Vallance daniel@unikraft.com

@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 18:08 — with GitHub Actions Inactive
@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 18:10 Inactive
@danielvallance
danielvallance self-requested a review November 3, 2026 18:11

@danielvallance danielvallance left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is really cool! once the build passes i will merge

(also maybe later we could set up a data source for this so we dont have to make a PR every time a feature's availability changes)

The first commit regenerated it with a different package manager, which
rewrote entries that did not change. This one comes from the pnpm that
the README pins, so the diff is the three new packages and two bumps.

Signed-off-by: aabedraba <abdallah@unikraft.com>
The page defines Unikraft Cloud, BYOC, and on-prem, and explains how to
read the block. Each chip in the "Available on" row links to its section.

Signed-off-by: aabedraba <abdallah@unikraft.com>
Zudoku copies the raw page body into the .md exports and llms-full.txt,
so the block that the remark plugin inserts never reaches them. A script
after the build writes the same facts as a blockquote under the title.

Signed-off-by: aabedraba <abdallah@unikraft.com>
The thirteen remaining feature pages get a block. Four callouts about
CLI support or preview status move into the block's notes.

Signed-off-by: aabedraba <abdallah@unikraft.com>
@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 18:39 — with GitHub Actions Inactive
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Comment thread pages/platform/hosting-options.mdx Resolved
Signed-off-by: aabedraba <abdallah@unikraft.com>
@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 18:40 Inactive
@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 18:40 — with GitHub Actions Inactive
@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 18:42 Inactive
Active voice for the license sentence, contractions, no undefined
acronym, and no list that trips the Oxford comma rule.

Signed-off-by: aabedraba <abdallah@unikraft.com>
@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 18:44 — with GitHub Actions Inactive
Comment thread pages/platform/hosting-options.mdx Resolved
@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 18:45 Inactive
Signed-off-by: aabedraba <abdallah@unikraft.com>
@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 18:47 — with GitHub Actions Inactive
@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 18:49 Inactive
The Dockerfile installs with --prod before it runs the build, which
drops every dev dependency. The remark plugin and the export script
import yaml at build time, so it has to be a regular dependency.
unist-util-visit was never imported, so it goes away.

Signed-off-by: aabedraba <abdallah@unikraft.com>
@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 18:53 — with GitHub Actions Inactive
@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 18:57 Inactive
Vale joins the lines of a paragraph with spaces before it runs a token
rule, so the old regex fired on every paragraph that already kept one
sentence per line. A script rule walks the raw lines instead, and skips
fenced code blocks.

Signed-off-by: aabedraba <abdallah@unikraft.com>
(cherry picked from commit 1fa7946)
@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 19:03 — with GitHub Actions Inactive
The raw scope keeps the frontmatter, so a note text with two sentences
in one YAML value tripped the rule.

Signed-off-by: aabedraba <abdallah@unikraft.com>
Comment thread pages/features/branching.mdx Resolved
Comment thread pages/features/autoscale.mdx Resolved
Comment thread pages/features/cron-jobs.mdx Resolved
Comment thread pages/features/checkpoints.mdx Resolved
Comment thread pages/features/managed-volumes.mdx Resolved
Comment thread pages/features/plugins.mdx Resolved
Comment thread pages/features/vertical-scaling.mdx Resolved
Comment thread pages/features/vertical-scaling.mdx Resolved
Comment thread pages/platform/audit-events.mdx Resolved
Comment thread pages/platform/images.mdx Resolved
@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 19:04 Inactive
@aabedraba
aabedraba temporarily deployed to pull-requests November 3, 2026 19:05 — with GitHub Actions Inactive
@github-actions
github-actions Bot temporarily deployed to pull-requests November 3, 2026 19:08 Inactive
Comment thread pages/features/live-migration.mdx Resolved
|---|---|---|
| [Unikraft Cloud](#unikraft-cloud) | Unikraft, in the [metros](/platform/metros) | Everyone with an account |
| [BYOC](#byoc) | Unikraft, in your cloud account | Enterprise customers |
| [On-prem](#on-prem) | You, in your data center | Enterprise customers |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, we should also add a "dedicated hosting" section here (and in the availability components)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in 80c6855 - a Dedicated chip on every page, plus a section on the hosting options page.

Dedicated takes the BYOC mark everywhere, since the website puts all three under "full control of the host". I also wrote that a dedicated install is a metro of its own with its own API endpoint, same as BYOC - that's right, yes?

hosting options
live migration

The website lists three enterprise deployments, not two: dedicated
hosts, BYOC and on-prem. The block and the hosting options page only
knew about two. Dedicated takes the BYOC mark on every page, since
both give full control of the host.

Signed-off-by: aabedraba <abdallah@unikraft.com>
Every other page sets a status. A missing one renders as GA anyway, so
the frontmatter now says so.

Signed-off-by: aabedraba <abdallah@unikraft.com>
The other coming-soon notes link to support, and this was the only
enterprise page with no support address.

Signed-off-by: aabedraba <abdallah@unikraft.com>

@danielvallance danielvallance left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed-by: Daniel Vallance daniel@unikraft.com
Approved-by: Daniel Vallance daniel@unikraft.com

@aabedraba
aabedraba merged commit a29c9e5 into prod-staging Nov 4, 2026
8 checks passed
@aabedraba
aabedraba deleted the availability-block branch November 4, 2026 09:08
@aabedraba
aabedraba deployed to pull-requests November 4, 2026 09:08 — with GitHub Actions Active

This branch was successfully deployed

1 active deployment
pull-requests — 2500cda7 Deployed Nov 4, 2026 by aabedraba via cleanup #1034
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants