Public Profiles

By Steph23
Scroll to open
plaintext
slatesource.com/@steph
slatesource.com/@steph/new
slatesource.com/@steph/top
slatesource.com/@steph/slatesource-dev
slatesource.com/@steph/slatesource-dev/Changelog

The Address Is the Feature

Those five lines are the whole surface. One segment for the person, one for the slate, one for the page inside it. Nothing in the path is an opaque id, so a link you paste into a message still reads as a sentence a year later. The router does not special-case the at sign: it matches any unclaimed first segment and then checks the prefix by hand, which means the list of reserved usernames is really just the list of routes that were registered before it. Login, register, shop, search, chips, category, type, playground, about. There is no blocklist file.

Username length

3 to 30

Allowed characters

letters digits underscore

Bio limit

300 characters

Top slates shown on a profile

3

Search results returned

50 max

What the Page Shows

A cover image, an avatar, the username, an optional verified mark, a label, the bio, and the month you joined. Under that: your collections as tappable circles, pinned slates, popular slates, latest slates. The two see-all links go to /new and /top. Owner-only tabs for settings and messages appear on your own profile and nowhere else.

What a profile actually carries

55%

Username

Bio up to 300 characters

One image

Join month

An active label

Verified flag

A display name separate from the username

Location

Links or socials

Follower count

Separate avatar and banner

One Image Doing Two Jobs

The upload is labelled profile picture and resized to 200 by 200. The page then renders that same file twice: once stretched across the full-width cover slot, and once at 96 pixels as the round avatar. There is one field in the database and two very different shapes on screen, so the cover is always a square being asked to behave like a banner. New accounts get one of five sample banners at random until they replace it. This is the most obvious rough edge on the page and it is a schema problem rather than a styling one.

How the address got its shape15.06.2025 – 20.06.2026
15.06.2025Personal Website Release. Slates start being used as bio pages and creator homes.
15.06.2025
30.04.2026Slates get slug URLs. The prefix is still /u/steph/my-slate.
30.04.2026
18.05.2026The prefix flips to /@steph. No redirect ships alongside it.
18.05.2026
20.06.2026Legacy /u/ paths start returning 301 and the canonical tags are corrected.
20.06.2026

The Gap in the Middle

Read those dates in order and there is a month where slug URLs were public under one prefix and then served under another with nothing bridging them. Anything shared in that window broke. The fix landed in June. It is in the git log and not in the changelog, which is the honest version of what happened.

Renaming Is Still a One-Way Door

Changing your username is a single field with no cooldown and no history. The moment it saves, every link to the old one returns 404 and the old name is free for anyone else to take. Reactions and comments survive because they hang off ids, but shared links do not. A rename map is the obvious fix and it has not been built.

The Profile chip below is a slate chip. It renders a person inside a page. It is not connected to your account profile in any way, which trips people up often enough to be worth stating.

Steph

Building Slatesource since May 2023. Backend by trade.

St. Gallen, Switzerland