Vinssi Pages
Pages publishes a static file or folder from your machine and gives you a URL. There is no repository, no build, and no plan required. It is built for sharing reports, prototypes, design reviews and generated documentation, including from scripts and AI agents.
Publish
Install the CLI, sign in, then:
vinssi pages publish ./report.html
vinssi pages publish ./dist --name "Q3 infrastructure report"
The command prints the URL. A single .html file becomes the site's index.html. A folder is published as-is, with index.html at its root serving the site root.
Add --json to get the site id, version id and URL as JSON for scripts.
Update an existing site
Pass the site id to publish a new version at the same URL:
vinssi pages publish ./dist --site <siteId>
Publishing is atomic: visitors see either the old version or the new one, never a mix. The gateway resolves the new version within about ten seconds; browsers and proxies may retain a previous response for up to 60 seconds.
Addresses
Sites live at:
https://<name>-<random characters>-<workspace>.pages.vinssi.ai
Addresses are generated by Vinssi and cannot be chosen. By default, anyone with the link can view the site. Pages sets noindex headers so search engines do not list them. Add a password when a link alone should not grant access. Custom domains are not available for Pages yet.
Password protection
Set, change or remove a shared password from the site's Password protection section in the dashboard, or use the CLI. Visitors enter the password once and retain access for 24 hours on that site; they do not need a Vinssi account. The password protects every file, including images and downloads.
Supply the password through an environment variable populated by a secret manager or a hidden shell prompt, rather than a literal command argument:
vinssi pages publish ./dist --password-env SITE_PASSWORD
vinssi pages password <siteId> --password-env SITE_PASSWORD
vinssi pages password <siteId> --remove
The variable must contain 12–128 characters. With --password-env, new sites are protected before their first upload becomes available. Publishing to an existing site preserves its password unless you explicitly supply a different password. Replacement passwords take effect only when the upload succeeds; a failed upload leaves the live password unchanged. Supplying the current password preserves visitor sessions. If someone changes access settings while an upload with --password-env is in progress, publish again so the upload cannot overwrite their change. Rollback also preserves protection.
Changes take up to 10 seconds to reach all gateway replicas. Changing or removing a password invalidates old visitor sessions; re-enabling protection requires visitors to unlock again. Protected responses use private, no-store. Adding a password cannot retract files already downloaded or copies cached while the site was unprotected (the previous cache lifetime is up to 60 seconds). Share the password separately from the URL.
What is published
- Regular files only. Dotfiles and dot-directories such as
.git,.envand.DS_Storeare always skipped, and symbolic links are ignored. - Files are served with the content type implied by their extension.
- A request for a folder redirects to the trailing-slash form and serves its
index.html. - A missing file returns Vinssi's built-in 404 page. Custom
404.htmlfiles are not used yet. - Unprotected responses advertise a 60-second HTTP cache lifetime and support conditional requests. Protected responses must not be cached. No CDN is currently configured.
Site content supports GET and HEAD; the password form uses a reserved POST /.vinssi/access endpoint. Anything that needs a server belongs in a project.
Limits
| Limit | Value |
|---|---|
| Compressed upload | 50 MB |
| Uncompressed total | 200 MB |
| Single file | 50 MB |
| Files per publish | 2,000 |
| Sites per workspace | 100 |
| Versions kept per site | 10 |
| Publishes | 60 per 5 minutes per workspace |
There is no bandwidth cap today. Usage is metered and visible with vinssi pages usage <siteId>; limits will be introduced with notice.
Versions and rollback
Every publish creates a version. The ten most recent are kept.
vinssi pages versions <siteId>
vinssi pages rollback <siteId> # previous version
vinssi pages rollback <siteId> <versionId> # a specific one
Rollback switches the site pointer; nothing is re-uploaded.
Delete
vinssi pages delete <siteId>
The URL stops resolving within seconds and the stored files are removed.
Sites in the dashboard
The Pages section of the dashboard lists every site in your workspace with its address, size and last publish time, and offers password protection, rollback and delete actions.
Use with AI agents
The Vinssi Pages skill teaches coding agents such as Claude Code and Codex to publish what they produce and hand you the link. Install it for Claude Code:
mkdir -p ~/.claude/skills/vinssi-pages
curl -fsSL https://vinssi.ai/skills/vinssi-pages/SKILL.md -o ~/.claude/skills/vinssi-pages/SKILL.md
For Codex, use ~/.codex/skills/vinssi-pages instead. Sign in with vinssi login once; the agent uses the saved token. Then ask for something like "publish this report and give me a link". Read the skill before installing it.