Skip to content

Commit a498c79

Browse files
authored
Merge pull request #1 from devigned/init-starlight
Initial Starlight based site
2 parents 53406b8 + 196f9ad commit a498c79

31 files changed

Lines changed: 7523 additions & 0 deletions
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# Skill: Populate Hyperlight Blog Content
2+
3+
## Purpose
4+
Search for Hyperlight blog posts and conference talks, then create `.mdx` files in `./src/content/docs/blog/` for each piece of found content. This skill is reusable and should not create duplicates of existing blog entries.
5+
6+
## Sources to Search
7+
8+
### Blog Posts
9+
- **Microsoft Open Source Blog**: Search `https://opensource.microsoft.com/blog/search?s=hyperlight` for all posts mentioning Hyperlight. Fetch the search results page and extract each blog post title, date, URL, and author.
10+
11+
### Conference Talks
12+
Search for Hyperlight sessions at these conferences (check all years and regions):
13+
- **KubeCon + CloudNativeCon** (NA, EU, Asia — all years). Search sched.com schedule pages, e.g., `https://kccncna2024.sched.com/?searchstring=hyperlight`, `https://kccnceu2025.sched.com/?searchstring=hyperlight`, `https://colocatedeventseu2026.sched.com/?searchstring=hyperlight`, etc.
14+
- **WasmCon** — co-located at KubeCon events.
15+
- **Wasm I/O** — check `https://wasm.io/sessions/` for Hyperlight sessions.
16+
- **RustConf** — check `https://rustconf.com/schedule` or equivalent for Hyperlight talks.
17+
18+
### YouTube
19+
- Search for Hyperlight conference talks on YouTube for recordings: `https://www.youtube.com/results?search_query=hyperlight+kubecon`, `https://www.youtube.com/results?search_query=hyperlight+conference+talk`, etc.
20+
21+
## Procedure
22+
23+
1. **Scan sources**: Fetch search/listing pages above and extract all Hyperlight-related content (blog posts and conference talks).
24+
25+
2. **Check for duplicates**: List existing files in `./src/content/docs/blog/` and read their frontmatter. Skip any content that already has a corresponding `.mdx` file (match by title or URL in the description).
26+
27+
3. **Create `.mdx` files**: For each new piece of content, create a file in `./src/content/docs/blog/` following the format in `./src/content/docs/blog/example.mdx`.
28+
29+
## File Naming Convention
30+
Use kebab-case derived from the title, e.g.:
31+
- `introducing-hyperlight.mdx`
32+
- `hyperlight-kubecon-na-2024-keynote.mdx`
33+
- `hyperlight-wasm-fast-secure-os-free.mdx`
34+
35+
## Frontmatter Format
36+
Each `.mdx` file must follow this structure:
37+
38+
```mdx
39+
---
40+
title: "<Title of the blog post or talk>"
41+
date: <YYYY-MM-DD>
42+
---
43+
44+
<Brief 2-4 sentence summary of the content.>
45+
46+
[Read the full blog post](<URL>) or [Watch the talk](<URL>)
47+
```
48+
49+
### Rules
50+
- The `date` field must match the **publication date** (for blog posts) or the **presentation date** (for conference talks).
51+
- The description must be a brief summary (2-4 sentences) of the content and must include a link to the original source.
52+
- For conference talks, include the conference name, year, location, and speaker(s) in the summary.
53+
- For blog posts, include the author name(s) in the summary.
54+
- **Hyperlink engineer names** to their GitHub profiles using `[Name](https://github.com/username)` format. Refer to the **Engineer GitHub Accounts** table below.
55+
- **Use correct tense based on event date**: If a conference talk has **not yet occurred** (its date is in the future), prefix the title with `Upcoming Talk:` (or `Upcoming Workshop:` for workshops), write the summary in **future tense** (e.g., "will present", "will explore", "will cover"), and frame the post as an upcoming event alert use link text like "View the session and add it to your calendar" instead of "Watch the talk". If the event has **already occurred**, do not include the "Upcoming" prefix, use past or present tense as appropriate, and link to recordings if available. When an upcoming event passes, update the title to remove the prefix and revise the summary tense accordingly.
56+
- Do **not** duplicate existing entries in `./src/content/docs/blog/`.
57+
58+
## Engineer GitHub Accounts
59+
When mentioning engineers in blog summaries, always hyperlink their names to their GitHub profiles. If a new engineer is encountered, look up their GitHub account and add them to this table.
60+
61+
| Name | GitHub Profile |
62+
|------|---------------|
63+
| Yosh Wuyts | [yoshuawuyts](https://github.com/yoshuawuyts) |
64+
| Danilo Chiarlone | [danbugs](https://github.com/danbugs) |
65+
| Ludvig Liljenberg | [ludfjig](https://github.com/ludfjig) |
66+
| Doru Blânzeanu | [dblnz](https://github.com/dblnz) |
67+
| Rita Zhang | [ritazh](https://github.com/ritazh) |
68+
| Pedro Henrique Penna | [ppenna](https://github.com/ppenna) |
69+
| Lucy Menon | [syntactically](https://github.com/syntactically) |
70+
| Ralph Squillace | [squillace](https://github.com/squillace) |
71+
| Tomasz Andrzejak | [andreiltd](https://github.com/andreiltd) |
72+
73+
## Known Content Catalog
74+
75+
### Blog Posts (Microsoft Open Source Blog)
76+
| Title | Date | URL |
77+
|-------|------|-----|
78+
| Introducing Hyperlight: Virtual machine-based security for functions at scale | 2024-11-07 | https://opensource.microsoft.com/blog/2024/11/07/introducing-hyperlight-virtual-machine-based-security-for-functions-at-scale |
79+
| Hyperlight: Achieving 0.0009-second micro-VM execution time | 2025-02-11 | https://opensource.microsoft.com/blog/2025/02/11/hyperlight-creating-a-0-0009-second-micro-vm-execution-time |
80+
| Build a Hyperlight C guest to securely execute JavaScript | 2025-03-10 | https://opensource.microsoft.com/blog/2025/03/10/build-a-hyperlight-c-guest-to-securely-execute-javascript |
81+
| Hyperlight Wasm: Fast, secure, and OS-free | 2025-03-26 | https://opensource.microsoft.com/blog/2025/03/26/hyperlight-wasm-fast-secure-and-os-free |
82+
| Hyperlight: Debugging hardware-protected guests | 2025-07-14 | https://opensource.microsoft.com/blog/2025/07/14/hyperlight-debugging-hardware-protected-guests |
83+
| Hyperlight Nanvix: POSIX support for Hyperlight Micro-VMs | 2026-01-28 | https://opensource.microsoft.com/blog/2026/1/28/hyperlight-nanvix-bringing-multi-language-support-for-extremely-fast-hardware-isolated-micro-vms |
84+
85+
### Conference Talks
86+
| Title | Date | Conference | Speakers | URL |
87+
|-------|------|-----------|----------|-----|
88+
| KubeCon NA 2024 Keynote Demo | 2024-11-14 | KubeCon + CloudNativeCon NA 2024, Salt Lake City | Rita Zhang | https://youtu.be/f8ornY7h2KE?feature=shared&t=290 |
89+
| Re-Engineering Microsoft's Hyperlight in Rust | 2025-09-03 | RustConf 2025, Seattle | Danilo Chiarlone, Ludvig Liljenberg | https://rustconf2025.wpenginepowered.com/schedule |
90+
| Running Wasmtime in Hardware-Isolated Microenvironments | 2026-03-23 | WasmCon @ KubeCon EU 2026, Amsterdam | Danilo Chiarlone | https://colocatedeventseu2026.sched.com/event/2DY28 |
91+
| Hands-On with Hyperlight and Wasm | 2026-03-19 | Wasm I/O 2026, Barcelona | Lucy Menon, Ralph Squillace, Tomasz Andrzejak | https://wasm.io/sessions/ |
92+
| Even More Hoops: Debugging WebAssembly across the Hardware Memory Partition Boundary | 2026-03-19 | Wasm I/O 2026, Barcelona | Doru Blânzeanu | https://wasm.io/sessions/ |
93+
94+
## Updating This Skill
95+
When new Hyperlight content is discovered, add it to the **Known Content Catalog** tables above so future runs can check for completeness. Always re-search the sources above to discover any newly published content not yet in the catalog.

.github/workflows/deploy.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Build & Deploy Site
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
concurrency:
14+
group: pages-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
name: Build
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
25+
- name: Build with Astro
26+
uses: withastro/action@v3
27+
28+
deploy:
29+
name: Deploy
30+
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
31+
needs: build
32+
runs-on: ubuntu-latest
33+
permissions:
34+
contents: read
35+
pages: write
36+
id-token: write
37+
environment:
38+
name: github-pages
39+
url: ${{ steps.deployment.outputs.page_url }}
40+
steps:
41+
- name: Deploy to GitHub Pages
42+
id: deployment
43+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# build output
2+
dist/
3+
# generated types
4+
.astro/
5+
6+
# dependencies
7+
node_modules/
8+
9+
# logs
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
pnpm-debug.log*
14+
15+
16+
# environment variables
17+
.env
18+
.env.production
19+
20+
# macOS-specific files
21+
.DS_Store

.vscode/extensions.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"recommendations": [
3+
"astro-build.astro-vscode",
4+
"dbaeumer.vscode-eslint",
5+
"hideoo.starlight-links"
6+
],
7+
"unwantedRecommendations": []
8+
}

.vscode/launch.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "Astro: Debug Server-Side",
6+
"type": "node-terminal",
7+
"request": "launch",
8+
"command": "npm run dev",
9+
"serverReadyAction": {
10+
"pattern": "Local .+ (https?://.+)",
11+
"uriFormat": "%s",
12+
"action": "debugWithChrome"
13+
}
14+
},
15+
{
16+
"name": "Astro: Debug Client-Side (Chrome)",
17+
"type": "chrome",
18+
"request": "launch",
19+
"url": "http://localhost:4321", // Adjust port if necessary
20+
"webRoot": "${workspaceFolder}"
21+
},
22+
{
23+
"name": "Astro: Debug Client-Side (Edge)",
24+
"type": "msedge",
25+
"request": "launch",
26+
"url": "http://localhost:4321", // Adjust port if necessary
27+
"webRoot": "${workspaceFolder}"
28+
}
29+
]
30+
}

.vscode/settings.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"chat.tools.terminal.autoApprove": {
3+
"npx astro": true,
4+
"/^node node_modules/\\.bin/astro build 2>&1$/": {
5+
"approve": true,
6+
"matchCommandLine": true
7+
},
8+
"git stash": true
9+
}
10+
}

CNAME

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hyperlight.org

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
2+
# Starlight Starter Kit: Basics
3+
4+
[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
5+
6+
```
7+
npm create astro@latest -- --template starlight
8+
```
9+
10+
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
11+
12+
## 🚀 Project Structure
13+
14+
Inside of your Astro + Starlight project, you'll see the following folders and files:
15+
16+
```
17+
.
18+
├── public/
19+
├── src/
20+
│ ├── assets/
21+
│ ├── content/
22+
│ │ └── docs/
23+
│ └── content.config.ts
24+
├── astro.config.mjs
25+
├── package.json
26+
└── tsconfig.json
27+
```
28+
29+
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.
30+
31+
Images can be added to `src/assets/` and embedded in Markdown with a relative link.
32+
33+
Static assets, like favicons, can be placed in the `public/` directory.
34+
35+
## 🧞 Commands
36+
37+
All commands are run from the root of the project, from a terminal:
38+
39+
| Command | Action |
40+
| :------------------------ | :----------------------------------------------- |
41+
| `npm install` | Installs dependencies |
42+
| `npm run dev` | Starts local dev server at `localhost:4321` |
43+
| `npm run build` | Build your production site to `./dist/` |
44+
| `npm run preview` | Preview your build locally, before deploying |
45+
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
46+
| `npm run astro -- --help` | Get help using the Astro CLI |
47+
48+
## 👀 Want to learn more?
49+
50+
Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).

astro.config.mjs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// @ts-check
2+
import { defineConfig } from 'astro/config';
3+
import starlight from '@astrojs/starlight';
4+
import starlightBlog from 'starlight-blog';
5+
6+
export default defineConfig({
7+
site: 'https://hyperlight.org',
8+
integrations: [
9+
starlight({
10+
title: 'Hyperlight',
11+
components: {
12+
Footer: './src/components/HyperlightFooter.astro'
13+
},
14+
social: [{ icon: 'github', label: 'GitHub', href: 'https://github.com/hyperlight-dev/hyperlight' }],
15+
sidebar: [
16+
{
17+
label: 'Guides',
18+
items: [
19+
{ label: 'Getting Started', slug: 'guides/getting-started' },
20+
],
21+
},
22+
{
23+
label: 'Resources',
24+
items: [
25+
{ label: 'Projects', slug: 'resources/projects' },
26+
{ label: 'Community', slug: 'resources/community' },
27+
],
28+
},
29+
],
30+
plugins: [starlightBlog({})],
31+
}),
32+
],
33+
});

0 commit comments

Comments
 (0)