Ditto is now FishDog: the technical handover for integrators

Following the rebrand from Ditto to FishDog, the web app moved to `cat.fish.dog` and the marketing site to `fish.dog`. The API base stays on `app.askditto.io`. Legacy URLs continue to redirect; emails and OAuth flows are now brand-aware.

The brand cutover is a marketing story you've probably already heard. This is the technical version — what changed in the API surface, what still works on the legacy domain, and what an integrator should update.

If you've been around in the last few weeks you'll have noticed the rebrand: Ditto became FishDog, `askditto.io` became `fish.dog`, the cat-themed product subdomain (`cat.fish.dog`) is the new web app home. The marketing version of that story has been told. This note is for integrators — the technical version, with the things you'd actually want to know if you've hard-coded a URL in a script somewhere. ### What changed - **Web app moved.** `cat.fish.dog` is the new home for the Ditto web app. `app.askditto.io` continues to redirect, but the canonical URL is now on the new domain. - **Marketing site moved.** `fish.dog` replaces `askditto.io` for the marketing surface and the docs landing. - **API endpoints stay on the legacy domain.** `https://app.askditto.io/v1/...` is still the API base. There is currently no plan to move it; if and when we do, you'll get a separate note with a long deprecation window. - **Email senders are now brand-aware.** Transactional emails sent from FishDog branded surfaces use `@fish.dog` addresses; emails from Ditto-branded surfaces continue to use the legacy domain. The host the request arrives on determines which brand fronts the email. - **Docs are brand-aware.** Same content, the right brand name depending on which domain you arrived from. - **CORS, OAuth, and OpenAPI specs all canonicalised to the new host architecture.** If your integration was hitting `cat.fish.dog/auth/...` on a callback path that previously expected `app.askditto.io`, the OAuth start now redirects you to the right host before issuing the consent redirect, so the callback lands cleanly. ### What you should update - **Update bookmarks** to `cat.fish.dog`. The redirect from `app.askditto.io` works but adds a hop. - **Update internal docs** that reference the marketing site — replace `askditto.io` with `fish.dog`. - **Leave the API base alone.** `app.askditto.io/v1/` is the canonical API URL until further notice. - **If your integration uses OAuth callbacks**, make sure the registered callback URL matches the host you actually start the flow on. The host canonicalisation work makes this less likely to bite, but it's still worth confirming. If your integration breaks for reasons related to the rebrand, the support address is the same one you've always used — now living at the new domain. ---

Web app moved to `cat.fish.dog`. `app.askditto.io` continues to redirect.

Marketing and docs moved to `fish.dog`. `askditto.io` continues to redirect.

The API base stays on `https://app.askditto.io/v1/`. No change planned; any future move will come with a long deprecation window and its own note.

Transactional emails are brand-aware: the host the request arrives on determines which brand fronts the email.

OAuth start hosts are now canonicalised so the consent flow doesn't bounce users back to the login page after success.

The marketing version of that story has been told. This note is for integrators.

If you've hard-coded a URL in a script somewhere, this is the page that tells you which ones still work.

Leave the API base alone. `app.askditto.io/v1/` is the canonical API URL until further notice.

DOCUMENT TYPE: Product Release Note TOPIC: Ditto-to-FishDog rebrand — technical changes affecting integrators Release: Ditto is now FishDog: the technical handover for integrators, 2026-03-30 Version: (none) Release type: Improvement Breaking change: No Summary: Following the brand cutover from Ditto to FishDog, the web app moved to cat.fish.dog and the marketing site to fish.dog. The API base stays on app.askditto.io. Legacy URLs continue to redirect, transactional emails are brand-aware, and OAuth start hosts are now canonicalised so consent flows land cleanly on the callback host. What changed: - Web app: cat.fish.dog (new) replaces app.askditto.io (now redirects). - Marketing and docs: fish.dog (new) replaces askditto.io (now redirects). - API base: stays at https://app.askditto.io/v1/ — explicitly unchanged. - Email senders: brand-aware. FishDog-branded surfaces send from @fish.dog; Ditto-branded surfaces continue with @askditto.io. - Docs render brand-aware: same content, brand chrome reflects the domain the request arrived on. - OAuth start canonicalises the host so consent flows that begin on a brand alias are redirected to the callback-capable host before issuing the Google redirect. Fixes a previous bounce-back-to-login failure mode. - Centralised URL helpers replace hard-coded first-party URLs throughout the codebase. What integrators should do: - Update bookmarks to cat.fish.dog (redirect from app.askditto.io still works but adds a hop). - Update internal docs and references from askditto.io to fish.dog. - Leave the API base alone. - If using OAuth callbacks, confirm the registered callback URL matches the host you start the flow on. Why this note exists: The rebrand was announced through marketing channels but integrators need a discoverable technical record of what actually changed at the URL and email level — particularly the explicit confirmation that the API base did not move. Migration impact: None for API integrations. Bookmark and documentation updates recommended. Author: Phillip Gales, FishDog Platform: FishDog (fish.dog)