Modules
Kennel Card
Your pup homepage โ a Tag, your links, your toy box and your wishlist โ built as a small static site you host anywhere and share by link or QR code. Each view shows only what you tick for it. This box never serves it.
On this page
๐ชช Kennel Card makes you a homepage: who you are, where else to find you (Ko-fi, Throne, your socials), what you play with, and what you'd love to be given. You share it as a link or a QR code. It lives on Kennel Card in the menu.
Latch builds the page. It never serves it: you download the site and put it on any static host, so sharing your page never opens your box to the internet.
Warning
Anyone with a link can see that view. Each link is long and random (128 bits), so nobody finds it by guessing, but links get forwarded and pages get screenshotted. A link is not a password. If you want a real login in front of a view, put it on the host (basic auth, your reverse proxy's login), not in Latch. Think hard before you show your face: a face plus a distinctive toy, a tattoo or your room can be enough to find you.
Setting it up
- Your Tag: the name on the page, your pronouns, a few lines about you, a colour, and an avatar if you want one (picked from photos already on this box).
- Your Leash: the links people can follow โ Ko-fi, Throne, a gift registry, the fediverse,
Bluesky, Matrix, email, a website.
https://only (or an email address). Tracking tags such asutm_โฆ,fbclidandgclidare stripped when you save; a referral code likeref=is kept. - Views: make one for each group you share with โ a Public one for your bio, a fuller Friends one. Each view has its own link, its own blocks, and its own ticks.
- Tick what each view shows, on the view's page: its blocks (Tag, Avatar, Leash, Toy box, Wishlist), which links, which toys and wishes, and which of each one's photos.
- Preview it โ Preview it as a stranger sees it opens exactly the page the download will hold.
- Download the site and unzip it at your host's root.
What a page can show
Nothing is ticked for you. A new view shows your Tag's name and nothing else.
| You tick | The page shows |
|---|---|
| a toy or piece of gear | its name, its kind and its category |
| one of its photos | that photo, re-encoded: no location, no camera data, no comment |
| show its specs (on the item's Kennel Card page) | its sizes, material and other numbers and choices โ never a text field like a brand, a colour or an engraving |
| show its price | the price on the kit item |
| a shop link | a button to the shop. Tick it's my referral link and the page says so beside it |
| โญ a favourite | a star, and it sorts first |
| a wish | its name, kind, how much you want it (want most ยท would love ยท someday), and whatever of the above you added |
What strangers read about an item is the blurb you write for them on its Kennel Card page (on your Kennel Card โ from the kit item). Your kit notes never go on a page, and neither does anything you logged about using it.
Retired toys get their own shelf, Retired โ served well. When a wish becomes owned, it moves to the Toy box on the next download.
Note
The wishlist is shareable here, and only here. Share cards and packs still never show a wish. The page can't take orders or reserve a gift โ it's a static page. To stop two people buying you the same thing, add a gift registry such as Throne to your Leash. Never put a home address on the page.
The page itself
- Browsable: filter chips (toys, gear, wishlist, retired), tap an item for its photos, specs and shop link, tap a photo to page through them, and switch sizes between inches and millimetres. Without JavaScript the page still works: each item opens in place.
- An adult-content door before anything shows, remembered on that device.
- Loads nothing from anywhere else. No font, no script, no image from another site: its own Content-Security-Policy says so, and every outbound link is a plain link the reader chooses to follow, with no referrer.
- Hidden from search engines: a
noindexon every page and arobots.txtthat disallows everything. - One clock: the page says As of the day you built it. It's a snapshot, not live.
- Can't be lined up: the same toy on two views has different ids and differently named photos, so two links can't be matched to each other, or to a pack card.
Publishing
The download is the whole site, every view:
robots.txt
index.html an empty page, so the root never lists the folders
k/<link>/index.html one view
k/<link>/manifest.json the same view as data
k/<link>/qr.svg its QR code (once you set where it will live)
k/<link>/a/โฆjpg its photos
Unzip it at your host's root and turn directory listing off there. Publishing again replaces the whole site: a deleted view's folder is gone, and a view given a New link moves to its new path, so the old link stops working.
Set where it will live (https://kennel.example.org) and each view shows its full link and a QR
code, on its page here and in the download.
Questions
Is anything sent anywhere? No. Building the site opens no connection, and the module declares no egress. Only you move the files.
What's in my backup? Your views, ticks, links and blurbs are in the full backup, like everything
else. The shareable export and pup.json carry none of it โ a view's link belongs to this box.
This page also ships inside the app, at /guide โ so your own instance always serves the guide for the version you are running, with the internet unplugged. Get Latch ยท Something wrong here? Tell me.