Skip to content

custom domains - brandings #2202

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 58 commits into
base: master
Choose a base branch
from

Conversation

Soxasora
Copy link
Member

@Soxasora Soxasora commented Jun 2, 2025

Description

Part of #1942
Adds basic customization capabilities to territories with custom domains.

  • title, description
  • logo, favicon
  • colors [primary, secondary]

Screenshots

custom domain with purple color scheme applied
image

settings page example
image

Additional Context

SubBranding is independent from custom domains by design, but for its purpose, it's only available on custom domains

As SCSS compiles into CSS, we can't change its values based on the custom domain branding options in SSR, unless we do it statically introducing file complexity.
wip: A workaround is to override compiled CSS values on client, introducing a small flicker when loading that, at the moment, is covered by a brief loading page at first load (previously there was a transition from the SN color scheme to the custom one).

Checklist

Are your changes backwards compatible? Please answer below:
Yes

On a scale of 1-10 how well and how have you QA'd this change and any features it might affect? Please answer below:
6, iterative testing

For frontend changes: Tested on mobile, light and dark mode? Please answer below:
Yes, at every change

Did you introduce any new environment variables? If so, call them out explicitly here:
n/a

Soxasora and others added 30 commits May 1, 2025 18:38
- ACM support
- custom domains crud, resolvers, fragments
- custom domains form, guidelines
- custom domains context
- domain verification every 5 minutes via pgboss
- domain validation schema
- basic custom domains middleware, to be completed
- TODOs tracings
- CustomDomain -> Domain
- DomainVerification table
- CNAME, TXT, SSL verification types
- WIP DomainVerification upsert
…ange status of a Record from its Attempt, multi-purpose dns verification
- use DomainVerificationStatus enum for domains and records
- adapt Territory Form UI to new schema
- return 'records' as an object with its types
- wip: prepare for attempts and certificate usage for prisma
fix:
- fix setDomain mutation transaction
- fix schema typedefs

enhance:
- DNS records guidelines with flex-wrap for longer records

cleanup:
- add comments to worker
- remove console.log on validation values
… HOLD

handle territory changes via triggers
- on territory stop, HOLD the domain
- on territory takeover from another user, delete the domain and its associated records

handle ACM certificates via trigger
- on domain/domainCertificate deletion, ask ACM to delete the certificate via a pgboss job; removes the need to ask ACM in multiple places

clear domains that have been on HOLD for more than 30 days, check every midnight via pgboss schedule

use 'domains' profile for worker jobs
Soxasora and others added 20 commits May 22, 2025 09:34
…ain verification, move the interval to 1 hour
…workers to pick the job concurrently; fix hour check for verification interval; cast Number from sn admin ids; validate domain name only when there's one
… ELBv2 implementation for development; attach a certificate to ELB as last step of domainVerification; detach certificate from ELB as part of deleteDomainCertificate; DomainVerificationStage ELB_ATTACH_CERTIFICATE
… functions that we don't need; consistency clean-up
…l errors, instead catch them and store a log
… only CNAME (dns verification) or CNAME and SSL records (territory UI/UX)
- SubBranding schema and typedefs
@Soxasora Soxasora changed the title custom domains - branding custom domains - brandings Jun 2, 2025
Soxasora added 6 commits June 2, 2025 18:58
- get branding with ssrApollo
- apply styles via DomainProvider
- ColorPicker, BrandingUpload components
- territory branding validation schema
- fragments, resolvers, typedefs -- WIP
- inject title, description and favicon on HEAD via DomainProvider
- wip: replace title and desc for SEO only if we're on a custom domain and if they're present
- wip: replace SnIcon Brand with domain logo upload
- wip: replace favicon for notification with bland domain favicon logo upload
@Soxasora Soxasora force-pushed the custom_domains_brandings branch from c7b0d67 to bcaaea6 Compare June 3, 2025 23:20
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.

2 participants