diff --git a/.github/workflows/gh-pages-deploy.yml b/.github/workflows/gh-pages-deploy.yml
new file mode 100644
index 0000000..071a958
--- /dev/null
+++ b/.github/workflows/gh-pages-deploy.yml
@@ -0,0 +1,86 @@
+name: Release to Github Pages
+
+on:
+ push:
+ branches: [main]
+ workflow_dispatch:
+
+permissions:
+ contents: write # for committing to gh-pages branch.
+ pages: write
+ id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+jobs:
+ Github-Pages-Release:
+
+ timeout-minutes: 10
+
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4 # repo checkout
+
+ # Install Rust Nightly Toolchain, with Clippy & Rustfmt
+ - name: Install nightly Rust
+ uses: dtolnay/rust-toolchain@nightly
+ with:
+ components: clippy, rustfmt
+
+ - name: Add WASM target
+ run: rustup target add wasm32-unknown-unknown
+
+ - name: lint
+ run: cargo clippy & cargo fmt
+
+
+ # If using tailwind...
+ # - name: Download and install tailwindcss binary
+ # run: npm install -D tailwindcss && npx tailwindcss -i -o