Deploy static sites to the AT Protocol
The Wisp CLI is a command-line tool for deploying static websites directly to your AT Protocol account. Host your sites on wisp.place with full ownership and control, backed by the decentralized AT Protocol.
Deploy automatically on every push using Tangled Spindle:
when:
- event: ['push']
branch: ['main']
- event: ['manual']
engine: 'nixery'
clone:
skip: false
depth: 1
submodules: false
dependencies:
nixpkgs:
- nodejs
- coreutils
- curl
github:NixOS/nixpkgs/nixpkgs-unstable:
- bun
environment:
SITE_PATH: 'dist'
SITE_NAME: 'my-site'
WISP_HANDLE: 'your-handle.bsky.social'
steps:
- name: build site
command: |
export PATH="$HOME/.nix-profile/bin:$PATH"
# regenerate lockfile, https://github.com/npm/cli/pull/8184 makes rolldown not install
rm package-lock.json bun.lock
bun install @rolldown/binding-linux-arm64-gnu --save-optional
bun install
# run directly with bun because of shebang issues in nix
bun node_modules/.bin/vite build
- name: deploy to wisp
command: |
# Download Wisp CLI (choose appropriate binary for your runner)
curl https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-aarch64-linux -o wisp-cli
chmod +x wisp-cli
# Deploy to Wisp
./wisp-cli \
"$WISP_HANDLE" \
--path "$SITE_PATH" \
--site "$SITE_NAME" \
--password "$WISP_APP_PASSWORD"
WISP_APP_PASSWORD as a secret in your Tangled Spindle repository settings.
Generate an app password from your AT Protocol account settings.
# Download and make executable
curl -O https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-macos-arm64
chmod +x wisp-cli-macos-arm64
# Deploy your site
./wisp-cli-macos-arm64 your-handle.bsky.social \
--path ./dist \
--site my-site \
--password your-app-password
# Your site will be available at:
# https://sites.wisp.place/your-handle/my-site