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
··· 53 54 ## Features 55 56 ### URL Redirects and Rewrites 57 58 The hosting service supports Netlify-style `_redirects` files for managing URLs. Place a `_redirects` file in your site root to enable:
··· 53 54 ## Features 55 56 + ### File Filtering and `.wispignore` 57 + 58 + 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. 59 + 60 + The `.wispignore` file uses the same syntax as `.gitignore`: 61 + ``` 62 + # Custom ignore patterns 63 + *.log 64 + temp/ 65 + build/ 66 + .secret 67 + ``` 68 + 69 + Default patterns include: `.git`, `.github`, `.gitlab`, `.DS_Store`, `node_modules`, `.env`, cache directories, Python virtual environments, editor swap files, `.tangled`, and more. 70 + 71 + See [File Filtering Documentation](./docs/src/content/docs/file-filtering.md) for details. 72 + 73 ### URL Redirects and Rewrites 74 75 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
··· 204 205 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. 206 207 ## Incremental Updates 208 209 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.
··· 204 205 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. 206 207 + **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). 208 + 209 ## Incremental Updates 210 211 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
···
··· 1 + --- 2 + title: File Filtering & .wispignore 3 + description: Control which files are uploaded to your Wisp site 4 + --- 5 + 6 + # File Filtering & .wispignore 7 + 8 + Wisp automatically excludes common files that shouldn't be deployed (`.git`, `node_modules`, `.env`, etc.). 9 + 10 + ## Default Exclusions 11 + 12 + - Version control: `.git`, `.github`, `.gitlab` 13 + - Dependencies: `node_modules`, `__pycache__`, `*.pyc` 14 + - Secrets: `.env`, `.env.*` 15 + - OS files: `.DS_Store`, `Thumbs.db`, `._*` 16 + - Cache: `.cache`, `.temp`, `.tmp` 17 + - Dev tools: `.vscode`, `*.swp`, `*~`, `.tangled` 18 + - Virtual envs: `.venv`, `venv`, `env` 19 + 20 + ## Custom Patterns 21 + 22 + Create a `.wispignore` file in your site root using gitignore syntax: 23 + 24 + ``` 25 + # Build outputs 26 + dist/ 27 + *.map 28 + 29 + # Logs and temp files 30 + *.log 31 + temp/ 32 + 33 + # Keep one exception 34 + !important.log 35 + ``` 36 + 37 + ### Pattern Syntax 38 + 39 + - `file.txt` - exact match 40 + - `*.log` - wildcard 41 + - `logs/` - directory 42 + - `src/**/*.test.js` - glob pattern 43 + - `!keep.txt` - exception (don't ignore) 44 + 45 + ## Usage 46 + 47 + **CLI**: Place `.wispignore` in your upload directory 48 + ```bash 49 + wisp-cli handle.bsky.social --path ./my-site --site my-site 50 + ``` 51 + 52 + **Web**: Include `.wispignore` when uploading files 53 + 54 + ## Notes 55 + 56 + - Custom patterns add to (not replace) default patterns 57 + - Works in both CLI and web uploads 58 + - The CLI logs which files are skipped