Welcome
Shortifi is a UTM-aware URL shortener. Every short link you create has its utm_source, utm_medium, utm_campaign, utm_content and utm_term parameters baked into the destination URL — so the analytics in your destination tool (Google Analytics, Plausible, Mixpanel, …) match what Shortifi shows.
The product is organized into workspaces (one per project you're promoting), each holding vocabularies (reusable UTM values), campaigns (containers that share a utm_campaign), links (short URLs with analytics), and a team.
- Add one Source (
facebook) and one Medium (social) in Vocabularies. - Create a Campaign (
Spring launch) and pick those as defaults. - Open Links → New link, paste a target URL, hit Create. Your short URL now redirects to
your-target?utm_source=facebook&utm_medium=social&utm_campaign=spring-launch. - Share. Within ~60 seconds of the first click, the Analytics tab shows the result.
Workspaces
A workspace is the container for one project you're promoting — a website, an Instagram account, a podcast. Everything else (campaigns, links, vocabularies, custom domains, analytics, team) lives inside exactly one workspace and is invisible from any other.
Multiple workspaces
Your account can own multiple workspaces.
Switching + creating
Click the workspace block at the top of the sidebar to open the switcher dropdown. From there: Manage team for the active workspace, a list to switch between workspaces, or + Create workspace at the bottom.
Data isolation
A teammate added to your sprache.app workspace doesn't see anything from your personal-blog workspace, and vice versa. Roles are per-workspace.
Campaigns
A campaign groups all the links from one marketing push. Its slug becomes the utm_campaign value baked into every link inside it.
Slug is immutable
Once a campaign is created, its slug is frozen. If you rename the campaign, the slug stays — old links keep their utm_campaign value, analytics history doesn't break.
Archive vs delete
Archiving a campaign hides it but keeps it queryable for historical analytics. Deleting from the archived view is permanent.
Color
Pick a campaign color from the palette popover (17 hues × 3 shades). It shows up as a dot next to the campaign name and is used in analytics breakdowns.
Campaign Hub
The app is organized around campaigns first: the top-level areas in the sidebar are Campaigns · Posts · Links · Analytics. Opening a campaign takes you into its hub — tabs scoped to that one campaign: Overview, Posts, Links, and Settings.
The Overview tab shows a funnel from impressions to clicks to conversions, your progress toward a goal against a target and date window, and a per-channel comparison table so you can see which source or network is actually carrying the campaign.
The dashboard home mirrors this: cards for your active campaigns, plus a this-week schedule strip of what's queued to publish across all of them.
Campaign Plan
Campaign Plan extends a campaign beyond the channels Shortifi publishes to directly, so one campaign can hold your whole cross-channel push.
Destinations
Add up to 20 named landing pages to a campaign — a homepage, a pricing page, a specific blog post. Once added, a destination shows up in every link, post, and plan-item picker inside that campaign, so you're choosing "Pricing page" instead of retyping a URL each time.
Per-network post variants
The composer's per-network tabs let you write a genuinely different body for each network before you publish — distinct copy per audience, not just one draft mechanically trimmed to fit.
Plan items
Plan items track the channels a social composer can't reach — email, podcast, video, blog, or other. Each plan item can hold its own tracking short link and a manual publish status that you update yourself as the item moves from planned to published.
Self-reported metrics
For an external plan item, you can manually enter numbers you have from elsewhere — reach, sends, opens, downloads, views. These are always labeled self-reported and are kept separate from real numbers; they're never combined or averaged with real network data. Click data on the item's tracking link, by contrast, is always real measured traffic.
Vocabularies
Vocabularies are reusable values for the four UTM dimensions: source, medium, content, term. They keep facebook from drifting into Facebook or fb across links.
Key vs label
The key is the slug-cased value that goes into the URL (facebook). The label is what shows up in dropdowns (Facebook). The key is immutable after creation; the label can be renamed any time.
Archive vs delete
The unique index on (workspace_id, kind, key) includes archived rows — so an archived facebook source still blocks re-creating facebook. That's intentional.
Links
A link is a short URL (7 chars on the system domain, 5 on custom domains) that 302s to a target URL with the UTM parameters baked in.
Short URL: https://sho.fi/aZ3k9Pp
Redirects to: https://your-site.com/landing?utm_source=facebook&utm_medium=social&utm_campaign=spring-launch
Expiry + click limits
Optional: set expires_at on a link, after which it 410s with a branded "link expired" page. Or set a click limit.
QR codes
Every link has a QR code (SVG + PNG). Open the link detail page → QR button.
Export
The Links page has an Export button that downloads a CSV file. The export respects your current filters and streams page-by-page.
Bulk
The bulk builder generates many links in one go from the cross-product of vocab values you pick. Open Links → New link and switch the toggle from Single to Bulk.
Sources: facebook, twitter, linkedin
Mediums: social
Content: feed, story
→ 3 × 1 × 2 × 1 = 6 links in one shot.
Cap
Each bulk request creates at most 500 links.
Analytics
Click data lands in the dashboard within ~60 seconds of being captured.
What you see
- KPI cards: total clicks, bot clicks, active days.
- Time-series chart with 24h / 7d / 30d / 90d presets.
- Top-N breakdowns: sources, mediums, countries, devices.
- Per-campaign + per-link drilldowns.
- CSV export of aggregates.
Bot detection
The user-agent parser flags obvious bots. Hide-bots toggle excludes them from totals by default.
Privacy
We never store raw IP addresses. They're hashed with a daily-rotating salt.
Ideas & Feeds
Ideas & Feeds is where posts start their life — before they're a draft in the composer, they're a card on the idea board.
Idea board
A Kanban board with four columns — Unassigned → To do → In progress → Ready. Quick-capture an idea in a couple of keystrokes, filter the board, archive ideas you're not pursuing, and stale badges flag cards that haven't moved in a while so they don't quietly get lost.
Feed reader
Subscribe to RSS/Atom feeds and read them without leaving Shortifi. Mark items read, save the ones worth keeping, and convert any item straight into an idea on the board.
Find sources
Search a keyword to discover free RSS feeds from Google News, Reddit, and Hacker News. Shortifi validates each candidate feed and lets you subscribe in one click — no manual feed-URL hunting.
Remix your winners
Surfaces your best-performing published posts as fresh ideas, so a format that already worked is easy to run again with a new angle.
AI-generated ideas (optional)
Shortifi can suggest ideas using your own Anthropic API key. This is off and zero-cost by default — nothing calls out to an AI provider until you add your own key under Account settings.
From idea to post
Converting an idea into a post carries over its campaign and planned date, and the resulting post links back to the idea it came from.
Custom domains
Connect your own custom domains.
Setup
- Workspace switcher → Domains → add hostname.
- Add either a CNAME or a TXT record at
_shortifi-verify.<your-host>. - Hit Verify. Once verified, TLS is provisioned on-demand by Caddy.
- New links on this domain get 5-char short codes.
Auto-disable
We re-verify active domains weekly. After 3 consecutive failures the domain auto-disables.
API keys
API keys give programmatic access to every authenticated route. They live under Account settings → API keys.
Authenticate with Authorization: Bearer sk_<prefix>.<remainder>. The full secret is shown once at creation.
Create as many keys as you need for your integrations.
Team + roles
Every workspace has its own team. Add members by their Shortifi email address.
Role matrix
- Viewer: read campaigns, links, analytics.
- Editor: + create/edit/archive/delete links and campaigns.
- Admin: + manage vocabularies, API keys, and teammates (except owner).
- Owner: + workspace settings. One per workspace.
Onboarding
New users are guided through a 5-step onboarding wizard after their first login: Welcome, create a Source + Medium, create a Campaign, build your first Link, and a quick Tour of the workspace. Each step has a Skip button — the wizard remembers your progress.
Activity log
Every mutation in the workspace is tracked: link creation, campaign archiving, member role changes, and 40+ other action types. Platform admins can view the full activity feed across all workspaces.
Tips & shortcuts
Sidebar tricks
- Topbar arrow icon collapses the sidebar to icons-only.
- The user card at the bottom always links to Account settings.
- The workspace block (top of sidebar) shows your current role.
Theme
Account settings → Appearance. Pick Light / Dark / System.
Bulk URL builder
Hit the Bulk toggle on New link to cross-product vocab values.
Social publishing
Publish and schedule posts to every network you use, from inside the same workspace that holds your links and campaigns — so short links you drop into a post carry UTM attribution automatically.
Supported networks
Publishing is live today on Bluesky, Mastodon, LinkedIn, YouTube, TikTok, Telegram, and Pinterest. Facebook Pages, Instagram, and Threads are rolling out as platform approvals land. WhatsApp is share-link only — there's no public posting API for personal accounts. X/Twitter isn't supported.
Connecting accounts
Open Social → Accounts → Connect. Most networks connect the same way: click Connect, authorize Shortifi in the popup, done. A few work differently:
Multiple accounts per network
Connect as many accounts as you need on any one network — several LinkedIn Pages, more than one Telegram channel, and so on — and pick any subset of them as the targets when you compose a post.
Composing
Write once in the composer; Shortifi adapts the same draft per network as you target it — trimming to length limits, matching the right media slots, and flagging any network-specific requirement (like Pinterest's, below) that isn't met yet.
Per-network variants
Need more than auto-trimming? The composer's per-network tabs let you write a fully different body for each network you're targeting — distinct copy per audience instead of one draft reshaped to fit.
Telegram supports long-form posts up to 4,096 characters, so a longer draft that gets trimmed elsewhere can still go out in full there.
Scheduling & the content calendar
Publish immediately, queue for the next open slot, or pick an exact time per post. The Calendar view shows everything scheduled and already published across every connected account, with drag-to-reschedule.
Pinterest
A Pin needs both an image or video and a target board — the composer blocks publishing to Pinterest until both are set.
WhatsApp share links
WhatsApp has no public posting API for personal accounts, so Shortifi generates a share link that opens the WhatsApp composer with your message pre-filled. Clicks on the underlying short link are tagged
utm_source=whatsappautomatically.Attribution
Social clicks flow through the same UTM-tagged short links as everything else, so campaign analytics show results by network and campaign. Because a short link is per-network rather than per-account, attribution is by network and campaign — not broken out per individual connected account.