All Project Templates

Hop

by Yard
Hop preview

A clean, simple link shortener that runs right on its own landing page. Paste a long link and get a short one to share anywhere. Pick your own alias if you like, watch the clicks add up, and grab a QR code ready for print. It ships with sign-in, a database, and a polished landing page, all running on Yard.

Features

  • One-step shortening: paste a link, press Shorten, and copy the short link with a single click
  • Custom aliases: choose a memorable code like s/launch, or let Hop generate one. Aliases aren't case-sensitive, and a taken alias gets a clear message
  • Click counts: every visit is counted, and counts refresh when you come back to the tab
  • QR codes: every link gets a QR code, shown next to the new link and downloadable as a PNG for print
  • Your links: every link you've made in one list, newest first, with copy, QR code, and delete. Deleting takes a second click to confirm
  • Sign in when you need to: a visitor can paste a link before signing in. Once they sign in, the link is created and waiting when they return
  • Readable codes: generated codes skip l, o, 0, and 1, so they survive being read aloud or typed by hand
  • Light and dark themes: follows the system setting
  • Phone ready: the layout adapts to small screens, and the code at the end of a short link always stays visible
  • Private links: anyone can follow a short link, but each user only ever sees and manages their own

Built on Yard

  • Yard Auth: visitors sign in with their Yard account. Hop never handles a password, and after the first consent screen, sign-in is silent
  • Landing page: the shortener runs on the project's custom landing page, so there's no separate app to open
  • Hosted service: the entire backend is a single fetch handler that serves the redirects and the links API, with no server to run or scale
  • Database: every link lives in the project's own SQLite database, and schema migrations apply themselves on deploy
  • Pricing: a single free tier, so signing in is the only gate. To start charging, add a paid tier and require it for creating links; the README shows where

Technical details

  • Plain HTML, CSS, and JavaScript: no framework, no build step, and no dependencies beyond one bundled QR encoder (qrcode-generator by Kazuhiko Arase, MIT)
  • Following a link is a single database statement that both counts the click and finds the destination
  • Only http and https destinations are accepted, so a short link can never point at javascript: or data:
  • The API only accepts JSON, so a form on another site can't create links on a user's behalf
  • Ownership comes from Yard's trusted sign-in header, never from the request itself, and every list and delete is scoped to it
  • Relative URLs throughout, so the same bundle works on a yard.sh subdomain, inside a sandbox, or on a custom domain
  • Limits such as 500 links per user sit as constants at the top of the service, ready to tune
  • Geist and Geist Mono typefaces, loaded from Google Fonts

Requirements

A Pro plan, for the hosted service, database, and custom landing page. Yard Auth is included.