Documentation

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.

Three-minute setup
  1. Add one Source (facebook) and one Medium (social) in Vocabularies.
  2. Create a Campaign (Spring launch) and pick those as defaults.
  3. 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.
  4. 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.

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.

Example bulk run

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.

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:

  • Bluesky — connect with an app password (not your main account password), generated from your Bluesky settings.
  • Mastodon — enter your instance's domain, then authorize from there.
  • Telegram — add the Shortifi bot as an admin on your channel or group, then paste the channel's @username or numeric id back into Shortifi.
  • WhatsApp — nothing to connect. The composer generates a one-tap share link instead of publishing directly.

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.

Long-form networks

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=whatsapp automatically.

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.

Custom domains

Connect your own custom domains.

Setup

  1. Workspace switcher → Domains → add hostname.
  2. Add either a CNAME or a TXT record at _shortifi-verify.<your-host>.
  3. Hit Verify. Once verified, TLS is provisioned on-demand by Caddy.
  4. 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.

Using a key

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.