diff --git a/.github/workflows/hugo.yml b/.github/workflows/hugo.yml
new file mode 100644
index 000000000..da87cfba5
--- /dev/null
+++ b/.github/workflows/hugo.yml
@@ -0,0 +1,64 @@
+name: Deploy Hugo site to Pages
+
+on:
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+defaults:
+ run:
+ shell: bash
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ env:
+ HUGO_VERSION: 0.139.0
+ steps:
+ - name: Install Hugo CLI
+ run: |
+ wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
+ && sudo dpkg -i ${{ runner.temp }}/hugo.deb
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ submodules: recursive
+ fetch-depth: 0
+ - name: Setup Pages
+ id: pages
+ uses: actions/configure-pages@v5
+ - name: Build with Hugo
+ env:
+ HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
+ HUGO_ENVIRONMENT: production
+ working-directory: ./website
+ run: |
+ hugo \
+ --gc \
+ --minify \
+ --baseURL "${{ steps.pages.outputs.base_url }}/"
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: ./website/public
+
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.gitignore b/.gitignore
index 5b5b47357..199ad9687 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,4 +44,9 @@ docs/_spelling/
*.db
# uv lock files
-uv.lock
\ No newline at end of file
+uv.lock
+
+# Hugo build output
+/website/public/
+/website/resources/
+/website/.hugo_build.lock
\ No newline at end of file
diff --git a/website/LANDING_PAGE.md b/website/LANDING_PAGE.md
new file mode 100644
index 000000000..9364a5a0b
--- /dev/null
+++ b/website/LANDING_PAGE.md
@@ -0,0 +1,46 @@
+# SkyRL Landing Page
+
+This directory contains a Hugo-based landing page for SkyRL.
+
+## Local Development
+
+### Prerequisites
+Install Hugo (extended version recommended):
+```bash
+# macOS
+brew install hugo
+
+# Or download from https://github.com/gohugoio/hugo/releases
+```
+
+### Running Locally
+```bash
+hugo server -D
+```
+
+Then visit http://localhost:1313/SkyRL/
+
+### Building
+```bash
+hugo --gc --minify
+```
+
+The built site will be in the `public/` directory.
+
+## Deployment
+
+The landing page automatically deploys to GitHub Pages when you push to the main branch.
+
+### Setup GitHub Pages (one-time)
+1. Go to repository Settings → Pages
+2. Under "Source", select "GitHub Actions"
+3. The workflow in `.github/workflows/hugo.yml` will handle deployment
+
+The site will be available at: https://novasky-ai.github.io/SkyRL/
+
+## Structure
+
+- `content/_index.md` - Landing page markdown content
+- `layouts/` - Hugo templates and layouts
+- `hugo.toml` - Hugo configuration
+- `.github/workflows/hugo.yml` - Automated deployment workflow
diff --git a/website/content/_index.md b/website/content/_index.md
new file mode 100644
index 000000000..91cb4f383
--- /dev/null
+++ b/website/content/_index.md
@@ -0,0 +1,68 @@
+---
+title: "SkyRL - Full-Stack RL for LLMs"
+---
+
+
+ A modular full-stack reinforcement learning library for training real-world, long-horizon agents with LLMs
+ SkyRL
+
Composable training framework, environment library, and agent pipelines. Use what you need, extend what you want.
+Optimized for distributed RL training at scale. Built for real-world production workloads.
+Designed for long-horizon, multi-turn tool use on complex environments like SWE-Bench and Text-to-SQL.
+