cutty devlog #6 — all 12 languages and what happened along the way
Last night cutty.dev had two languages. This morning it has twelve. Along the way, quite a few things came to light.
What went in today
- Twelve languages with automation — the site adapts to the country you're coming from. A German gets the German version, a Spaniard the Spanish one, an Arab the Arabic one (with a mirrored right-to-left layout). Translations are generated by a local AI model on my second server — no external APIs, no monthly fees.
- Card after creating a short link — previously you just got a short address. Now a nice tile appears with a QR code (with our logo in the center), a copy button, a summary of settings (password? expiration date? click limit?) and a suggestion to create a free account.
- Advanced options from the first click — without logging in, you can immediately set your own suffix, password, expiration date, and click limit. All in one form.
- Delete account with one click — in compliance with GDPR. You click, the session disappears, your links stop working (but their suffixes never return to the pool — so no one else can take them).
- Password leak warning — when you set a password on a link, we check it against a database of public data breaches (HaveIBeenPwned, anonymously). If it was compromised before — we inform you, but don't block it.
- Blog — at cutty.dev/blog. For now, one welcome post. More to come when there's something to write about.
What came to light along the way
Small things that grew:
- Four versions of the pricing page written from scratch. The first promised “free forever” — too bold. The second was too technical. The third with specific future prices — which I don't know. The fourth simply says: now free, maybe something will be paid later, don't know what yet.
- Privacy policy and terms of service revised to not reveal who our infrastructure providers are. Not out of paranoia — for security.
- Four blog posts written, accepted by me, published, and then deleted — because they sounded too aggressive towards competitors and could carry legal risks. Lesson: minor comparisons with branded services are a minefield. Even if true.
- The logo in a screen reader was read as “cuy.dev” instead of “cutty.dev”. A small HTML attribute fixed it.
What's next
I'm waiting for the translations to finish — for now half the languages are ready, the other half is being translated. Then polishing the Arabic version (right-to-left layout requires specific checking in the browser). Then deciding when to make the public announcement.
cutty.dev is ready. I haven't decided yet when to “launch”.