Users & Plans
Everything in Settings → Users and Settings → Plans. The first controls who gets in. The second controls what they can do once they're in.
Public signups
By default, anyone can sign up at your domain's /signup page. The toggle in Settings → Users turns this on or off.
When off, the public form is replaced with a "Signups are closed" message. The only way someone new can land in your dashboard is via an invite link.
Invite links
Click + Create invite link to generate a copyable URL of the form:
https://your-domain.com/signup?invite=<token>
Hand it out however you want — Slack, email, a one-time DM. The first person who completes signup with that token consumes it. Tokens that haven't been used yet show up in the Invite links list. Each row has a Copy button (re-copies the URL) and Revoke (kills the link before it gets used).
When public signups are off, the invite link is the only way to create a user. When they're on, the invite link is a convenience — and is also how you assign someone to a specific plan from day one.
Managing existing users
Each user row in Manage users shows:
- Email + signup date
- Their assets: link count, QR count
- Last seen
- Their current plan (or "no plan" if they're uncapped)
Three per-row actions:
- Edit email — for typo fixes or address changes. The user keeps the same password.
- Change plan — pick from any plan you've defined, or remove their plan (which makes them uncapped).
- Remove — deletes the user. Their links and QR codes are deleted too. Any printed QR pointing at one of those links will start 404-ing — there's a confirm dialog telling you exactly how many.
Plans
Plans are quotas you define for your users. Set them up in Settings → Plans.
Each plan has:
- Name — anything:
Free,Starter,Pro,Agency. - Default flag — every new public signup lands on the default plan. Only one plan can be default at a time.
- Max links — how many short links a user on this plan can create. Empty = unlimited.
- Max QR codes — same, for QR designs.
- Max custom domains — same, for domains they add themselves.
- Custom domains allowed — toggle off to scope users to your existing domains only (no
theirsite.comof their own). - Trial days — if > 0, users on this plan get a
trial_ends_attimestamp written at signup. UI for trial expiry is coming later; the timestamp is recorded today.
Limits are checked when creating each new asset. Hitting a cap returns a clear message to the user ("You've reached your plan's link limit (10). Ask the platform owner to upgrade.").
You (the owner) are always uncapped — limits only apply to users.
Deleting a plan
Users on a deleted plan don't get removed — they just lose their plan assignment, which means no caps until you reassign them.