feat(contact): publish info@cloudils.com in the footer and legal pages - #91
Merged
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.comzone:to: info@cloudils.com→ forward to the personal mailbox, enabled;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.aria-labelon that nav widens from "Legal" to "Footer" now that it carries more than legal links.mailto:in both Contact sections. Terms still sends bugs and feature requests to the repository, where other people can see them.rel="external"on the mailto links hands the click to the mail client rather than the SvelteKit router — which is also what letssvelte/no-navigation-without-resolvesee 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.mailto:info@cloudils.com, no console errors.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.