Skip to content

feat(contact): publish info@cloudils.com in the footer and legal pages - #91

Merged
Isma-L154 merged 1 commit into
mainfrom
feat/contact-email
Sep 20, 2026
Merged

Isma-L154 merged 1 commit into
mainfrom
feat/contact-email

Conversation

@Isma-L154

Copy link
Copy Markdown
Owner

Closes #90.

Why

Both legal pages promised a way to reach us and then pointed at "the address listed on the project repository", which is not an address. The privacy policy offers a right to erasure — a right you exercise by going to find a link is not much of one.

Cloudflare side (already applied, not in this diff)

Email Routing is configured on the cloudils.com zone:

  • destination address created and verified;
  • routing enabled — MX, SPF and DKIM records added and propagated;
  • rule to: info@cloudils.com → forward to the personal mailbox, enabled;
  • catch-all left disabled / drop, so guessed addresses never reach the inbox.

Email Sending is deliberately not onboarded: the app sends no mail. Replies go out from the personal mailbox under its own address.

The apex had no MX and no SPF beforehand, so enabling routing broke no existing mail.

Code side

  • src/lib/contact.ts — the address, declared once. The footer and both legal documents have to agree; a stale copy in one of them is a broken promise, not a typo.
  • Footer — the address is spelled out rather than hidden behind the word "Contact", since it is the one thing on the page somebody may want to copy or write down. aria-label on that nav widens from "Legal" to "Footer" now that it carries more than legal links.
  • Terms and Privacy — real mailto: in both Contact sections. Terms still sends bugs and feature requests to the repository, where other people can see them.
  • Both "last updated" dates move, as those pages tell the reader they will.
  • rel="external" on the mailto links hands the click to the mail client rather than the SvelteKit router — which is also what lets svelte/no-navigation-without-resolve see them for what they are, instead of disabling the rule.
  • docs/contact-email.md — what is configured and how to repeat it on another domain. It does not name the destination mailbox: this repository is public, and publishing it would defeat the alias.

Verification

  • npm run lint, npm run check (0 errors), npm run test:unit — 496 tests pass.
  • Exercised in the browser at 1280px and 375px: footer renders without overflow on either, both legal pages show the address, all three links resolve to mailto:info@cloudils.com, no console errors.
  • Delivery itself still needs one real send to info@cloudils.com: port 25 is blocked outbound here, so an SMTP probe of the mail exchanger was not possible from this machine.

No schema changes, so no migration is needed before merging.

Both legal pages promised a way to reach us and then pointed at "the
address listed on the project repository", which is not an address. The
privacy policy in particular offers a right to erasure, and a right you
exercise by going to find a link is not much of one.

info@cloudils.com is now a Cloudflare Email Routing alias forwarding to
a personal mailbox: the private address stays out of public HTML, and
the destination can move without a deploy. Routing only — the app sends
no mail, so Email Sending is deliberately not onboarded, and the
catch-all stays on drop so guessed addresses do not reach the inbox.

The address lives in one constant because the footer and the two legal
documents have to agree; a stale copy in one of them would be a broken
promise rather than a typo. Both "last updated" dates move with the
change, as those pages tell the reader they will.

`rel="external"` on the mailto links hands the click to the mail client
instead of the SvelteKit router, which is also what lets the
no-navigation-without-resolve rule see them for what they are.

Closes #90
@Isma-L154
Isma-L154 merged commit 54ff29b into main Sep 20, 2026
3 checks passed
@Isma-L154
Isma-L154 deleted the feat/contact-email branch September 20, 2026 20:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Set Up Email Redirect and Display Info Email on Page

1 participant