Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol. wisp.place

docs

nekomimi.pet 2417f0c8 126cd693

verified
Changed files
+77
docs
src
content
+17
README.md
···
## Features
+
### File Filtering and `.wispignore`
+
+
Wisp automatically excludes common files that shouldn't be uploaded to your site (like `.git`, `node_modules`, `.env` files, etc.). You can customize this behavior by creating a `.wispignore` file in your site root.
+
+
The `.wispignore` file uses the same syntax as `.gitignore`:
+
```
+
# Custom ignore patterns
+
*.log
+
temp/
+
build/
+
.secret
+
```
+
+
Default patterns include: `.git`, `.github`, `.gitlab`, `.DS_Store`, `node_modules`, `.env`, cache directories, Python virtual environments, editor swap files, `.tangled`, and more.
+
+
See [File Filtering Documentation](./docs/src/content/docs/file-filtering.md) for details.
+
### URL Redirects and Rewrites
The hosting service supports Netlify-style `_redirects` files for managing URLs. Place a `_redirects` file in your site root to enable:
+2
docs/src/content/docs/cli.md
···
The CLI handles all file processing automatically to ensure reliable storage and delivery. Files are compressed with gzip at level 9 for optimal size reduction, then base64 encoded to bypass PDS content sniffing restrictions. Everything is uploaded as `application/octet-stream` blobs while preserving the original MIME type as metadata. When serving your site, the hosting service automatically decompresses non-HTML/CSS/JS files, ensuring your content is delivered correctly to visitors.
+
**File Filtering**: The CLI automatically excludes common files like `.git`, `node_modules`, `.env`, and other development artifacts. Customize this with a [`.wispignore` file](/file-filtering).
+
## Incremental Updates
The CLI tracks file changes using CID-based content addressing to minimize upload times and bandwidth usage. On your first deploy, all files are uploaded to establish the initial site. For subsequent deploys, the CLI compares content-addressed CIDs to detect which files have actually changed, uploading only those that differ from the previous version. This makes fast iterations possible even for large sites, with deploys completing in seconds when only a few files have changed.
+58
docs/src/content/docs/file-filtering.md
···
+
---
+
title: File Filtering & .wispignore
+
description: Control which files are uploaded to your Wisp site
+
---
+
+
# File Filtering & .wispignore
+
+
Wisp automatically excludes common files that shouldn't be deployed (`.git`, `node_modules`, `.env`, etc.).
+
+
## Default Exclusions
+
+
- Version control: `.git`, `.github`, `.gitlab`
+
- Dependencies: `node_modules`, `__pycache__`, `*.pyc`
+
- Secrets: `.env`, `.env.*`
+
- OS files: `.DS_Store`, `Thumbs.db`, `._*`
+
- Cache: `.cache`, `.temp`, `.tmp`
+
- Dev tools: `.vscode`, `*.swp`, `*~`, `.tangled`
+
- Virtual envs: `.venv`, `venv`, `env`
+
+
## Custom Patterns
+
+
Create a `.wispignore` file in your site root using gitignore syntax:
+
+
```
+
# Build outputs
+
dist/
+
*.map
+
+
# Logs and temp files
+
*.log
+
temp/
+
+
# Keep one exception
+
!important.log
+
```
+
+
### Pattern Syntax
+
+
- `file.txt` - exact match
+
- `*.log` - wildcard
+
- `logs/` - directory
+
- `src/**/*.test.js` - glob pattern
+
- `!keep.txt` - exception (don't ignore)
+
+
## Usage
+
+
**CLI**: Place `.wispignore` in your upload directory
+
```bash
+
wisp-cli handle.bsky.social --path ./my-site --site my-site
+
```
+
+
**Web**: Include `.wispignore` when uploading files
+
+
## Notes
+
+
- Custom patterns add to (not replace) default patterns
+
- Works in both CLI and web uploads
+
- The CLI logs which files are skipped