Brand consistency: emails say "upbeatBytes" (From + digest body)

Per the brand-name standard (camelCase, one word). Updated the SMTP From default and
the digest email body/subject strings. Live env From values (auth.env + goodnews.env)
updated to match. (Web/OG brand strings in share.py + app.html are the remaining sweep.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jay
2026-06-21 11:38:16 -04:00
parent b4b02b5050
commit 0c68c22221
3 changed files with 9 additions and 9 deletions
+6 -6
View File
@@ -127,7 +127,7 @@ def _item_html(it: dict, base: str) -> str:
f'<div style="color:#5d6b78;font-size:13px;margin:3px 0 8px">{escape(it["source"])}</div>'
f'{summary}{why}'
'<div style="margin-top:10px;font-size:14px">'
f'<a href="{base}/a/{it["id"]}" style="color:#0083ad;text-decoration:none">Read on Upbeat Bytes</a>'
f'<a href="{base}/a/{it["id"]}" style="color:#0083ad;text-decoration:none">Read on upbeatBytes</a>'
f' &nbsp;·&nbsp; <a href="{escape(it["canonical_url"])}" style="color:#5d6b78;text-decoration:none">Full story at source{lock}</a>'
'</div></div>'
)
@@ -145,12 +145,12 @@ def build_digest(items: list[dict], brief_date: str, unsub_url: str, base: str |
followed = followed or []
n = len(items)
weekday = _weekday(brief_date)
subject = f"{weekday}'s Upbeat Bytes · {n} calm read{'' if n == 1 else 's'}"
subject = f"{weekday}'s upbeatBytes · {n} calm read{'' if n == 1 else 's'}"
if weekday == "today":
subject = f"Today's Upbeat Bytes · {n} calm reads"
subject = f"Today's upbeatBytes · {n} calm reads"
text_lines = [
f"Upbeat Bytes — Daily Highlights",
f"upbeatBytes — Daily Highlights",
f"{n} calm read{'' if n == 1 else 's'} for {weekday}.\n",
"Good morning. A small, hopeful handful of what's going right — and there's",
"always more waiting on the site whenever you want it.\n",
@@ -181,7 +181,7 @@ def build_digest(items: list[dict], brief_date: str, unsub_url: str, base: str |
'font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#16263a">'
# The real logo as a small hosted PNG (SVG isn't email-safe); alt text
# keeps the brand when a client blocks remote images.
f'<img src="{base}/logo-email.png" alt="Upbeat Bytes" width="180" '
f'<img src="{base}/logo-email.png" alt="upbeatBytes" width="180" '
'style="display:block;border:0;outline:none;text-decoration:none;height:auto;margin:0 0 2px">'
'<div style="font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#0083ad;'
f'margin:5px 0 0">Daily Highlights · {escape(weekday)}</div>'
@@ -192,7 +192,7 @@ def build_digest(items: list[dict], brief_date: str, unsub_url: str, base: str |
+ main_blocks
+ followed_html
+ '<p style="font-size:15px;color:#3f7048;margin:8px 0 0">Thats todays highlights — more good news is '
f'always <a href="{base}" style="color:#3f7048">waiting on Upbeat Bytes</a>. See you tomorrow.</p>'
f'always <a href="{base}" style="color:#3f7048">waiting on upbeatBytes</a>. See you tomorrow.</p>'
f'<p style="font-size:12px;color:#9aa6b2;margin-top:24px">Youre getting this because you turned on '
f'the daily digest. <a href="{unsub_url}" style="color:#9aa6b2">Unsubscribe</a>.</p>'
'</div>'
+1 -1
View File
@@ -24,7 +24,7 @@ def _cfg() -> dict:
"port": int(os.environ.get("GOODNEWS_SMTP_PORT", "587")),
"user": os.environ.get("GOODNEWS_SMTP_USER", ""),
"password": os.environ.get("GOODNEWS_SMTP_PASSWORD", ""),
"sender": os.environ.get("GOODNEWS_SMTP_FROM", "Upbeat Bytes <hello@upbeatbytes.com>"),
"sender": os.environ.get("GOODNEWS_SMTP_FROM", "upbeatBytes <hello@upbeatbytes.com>"),
# Where a reader's reply should land; falls back to the From address.
"reply_to": os.environ.get("GOODNEWS_REPLY_TO_EMAIL", ""),
}