Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Learn one new concept every day.**

One Concept is a [Coding Moves Product](https://codingmoves.netlify.app/products/).
One Concept is a [Coding Moves Product](https://codingmoves.com/products/).

> One day. One concept. One small step forward.

Expand Down
2 changes: 1 addition & 1 deletion backend/app/templates/editorial_review.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<table role="presentation" style="width:100%;max-width:600px;margin:0 auto;border-collapse:collapse;background:#ffffff;border-radius:16px;"><tr><td style="padding:28px;overflow-wrap:anywhere;word-break:break-word;">
<img src="$icon_url" width="48" height="48" alt="One Concept" style="display:block;width:48px;height:48px;border:0;border-radius:12px;margin:0 0 12px;">
<p style="margin:0 0 8px;color:#5248bf;font-size:13px;font-weight:bold;letter-spacing:1px;">ONE CONCEPT · REVIEW</p>
<p style="margin:0 0 16px;color:#62627a;font-size:12px;">by <a href="https://codingmoves.netlify.app/products/" style="color:#5248bf;text-decoration:underline;">Coding Moves</a></p>
<p style="margin:0 0 16px;color:#62627a;font-size:12px;">by <a href="https://codingmoves.com/products/" style="color:#5248bf;text-decoration:underline;">Coding Moves</a></p>
<h1 style="margin:0 0 24px;font-size:26px;line-height:1.3;">Lessons ready for your review</h1>
$content
<p style="margin:28px 0 0;color:#62627a;font-size:13px;">Assignments can change after this email is sent. The review workspace always shows their current status.</p>
Expand Down
2 changes: 1 addition & 1 deletion backend/email-templates/confirm-signup.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<td width="48" valign="middle" style="width:48px;"><img src="https://coding-moves-one-concept-review.netlify.app/one-concept-icon.png" width="48" height="48" alt="One Concept" style="display:block;width:48px;height:48px;border:0;border-radius:12px;"></td>
<td valign="middle" style="padding-left:16px;">
<p style="margin:0;color:#FFFFFF;font-size:25px;font-weight:bold;letter-spacing:-0.7px;line-height:1.2;">One Concept.</p>
<p style="margin:5px 0 0;color:#CBD5E1;font-size:12px;line-height:1.4;">by <a href="https://codingmoves.netlify.app/products/" style="color:#CBD5E1;text-decoration:underline;">Coding Moves</a></p>
<p style="margin:5px 0 0;color:#CBD5E1;font-size:12px;line-height:1.4;">by <a href="https://codingmoves.com/products/" style="color:#CBD5E1;text-decoration:underline;">Coding Moves</a></p>
</td>
</tr></table>
</td></tr>
Expand Down
2 changes: 1 addition & 1 deletion backend/email-templates/invite-reviewer.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<td width="48" valign="middle" style="width:48px;"><img src="https://coding-moves-one-concept-review.netlify.app/one-concept-icon.png" width="48" height="48" alt="One Concept" style="display:block;width:48px;height:48px;border:0;border-radius:12px;"></td>
<td valign="middle" style="padding-left:16px;">
<p style="margin:0;color:#FFFFFF;font-size:25px;font-weight:bold;letter-spacing:-0.7px;line-height:1.2;">One Concept.</p>
<p style="margin:5px 0 0;color:#CBD5E1;font-size:12px;line-height:1.4;">by <a href="https://codingmoves.netlify.app/products/" style="color:#CBD5E1;text-decoration:underline;">Coding Moves</a></p>
<p style="margin:5px 0 0;color:#CBD5E1;font-size:12px;line-height:1.4;">by <a href="https://codingmoves.com/products/" style="color:#CBD5E1;text-decoration:underline;">Coding Moves</a></p>
</td>
</tr></table>
</td></tr>
Expand Down
2 changes: 1 addition & 1 deletion backend/email-templates/password-changed.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<td width="48" valign="middle" style="width:48px;"><img src="https://coding-moves-one-concept-review.netlify.app/one-concept-icon.png" width="48" height="48" alt="One Concept" style="display:block;width:48px;height:48px;border:0;border-radius:12px;"></td>
<td valign="middle" style="padding-left:16px;">
<p style="margin:0;color:#FFFFFF;font-size:25px;font-weight:bold;letter-spacing:-0.7px;line-height:1.2;">One Concept.</p>
<p style="margin:5px 0 0;color:#CBD5E1;font-size:12px;line-height:1.4;">by <a href="https://codingmoves.netlify.app/products/" style="color:#CBD5E1;text-decoration:underline;">Coding Moves</a></p>
<p style="margin:5px 0 0;color:#CBD5E1;font-size:12px;line-height:1.4;">by <a href="https://codingmoves.com/products/" style="color:#CBD5E1;text-decoration:underline;">Coding Moves</a></p>
</td>
</tr></table>
</td></tr>
Expand Down
2 changes: 1 addition & 1 deletion backend/email-templates/reset-password.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<td width="48" valign="middle" style="width:48px;"><img src="https://coding-moves-one-concept-review.netlify.app/one-concept-icon.png" width="48" height="48" alt="One Concept" style="display:block;width:48px;height:48px;border:0;border-radius:12px;"></td>
<td valign="middle" style="padding-left:16px;">
<p style="margin:0;color:#FFFFFF;font-size:25px;font-weight:bold;letter-spacing:-0.7px;line-height:1.2;">One Concept.</p>
<p style="margin:5px 0 0;color:#CBD5E1;font-size:12px;line-height:1.4;">by <a href="https://codingmoves.netlify.app/products/" style="color:#CBD5E1;text-decoration:underline;">Coding Moves</a></p>
<p style="margin:5px 0 0;color:#CBD5E1;font-size:12px;line-height:1.4;">by <a href="https://codingmoves.com/products/" style="color:#CBD5E1;text-decoration:underline;">Coding Moves</a></p>
</td>
</tr></table>
</td></tr>
Expand Down
2 changes: 1 addition & 1 deletion backend/tests/test_auth_email_templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
ROOT = Path(__file__).resolve().parents[1] / "email-templates"
REPO = Path(__file__).resolve().parents[2]
LOGO = "https://coding-moves-one-concept-review.netlify.app/one-concept-icon.png"
CODING_MOVES = "https://codingmoves.netlify.app/products/"
CODING_MOVES = "https://codingmoves.com/products/"


class TemplateInspector(HTMLParser):
Expand Down
2 changes: 1 addition & 1 deletion backend/tests/test_editorial_email_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def test_email_has_plain_fallback_and_safe_accessible_html():
html = received.get_body(preferencelist=("html",)).get_content()
assert 'lang="en"' in html and "ONE CONCEPT" in html
assert '<img src="https://review.test.invalid/one-concept-icon.png"' in html
assert 'by <a href="https://codingmoves.netlify.app/products/"' in html
assert 'by <a href="https://codingmoves.com/products/"' in html
assert "&lt;img" in html and "&amp; Engineering" in html
assert "2026-10-04 18:00 PKT" in html
assert url.replace("&", "&amp;") in html
Expand Down
2 changes: 1 addition & 1 deletion docs/EMAIL_TEMPLATES.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ review site while retaining a text wordmark when an email client blocks images.
Deploy that asset before installing the templates. The image is public and
contains no personal data or authentication token.
The **Coding Moves** text in the byline links to the
[Coding Moves products page](https://codingmoves.netlify.app/products/) in
[Coding Moves products page](https://codingmoves.com/products/) in
these four Auth templates and both editorial email HTML sources. The brand link
is separate from each email's account or review action link.

Expand Down
4 changes: 2 additions & 2 deletions supabase/functions/worker/editorial_mail.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ test('Gmail OAuth then MIME send succeeds without leaking credentials into body'
assert.match(mime, /Message-ID: <11111111-1111-4111-8111-111111111111@example.test>/);
const html = atob(mime.split('Content-Type: text/html; charset=UTF-8')[1].split('\r\n\r\n')[1].split('\r\n')[0]);
assert.match(html, /src="https:\/\/review.example.test\/one-concept-icon.png"/);
assert.match(html, /by <a href="https:\/\/codingmoves.netlify.app\/products\/"/);
assert.match(html, /by <a href="https:\/\/codingmoves.com\/products\/"/);
});

test('expired OAuth token is terminal; temporary OAuth failure retries', async () => {
Expand Down Expand Up @@ -83,6 +83,6 @@ test('staging email identifies itself and has no live review button', async () =
const htmlPart = mime.split('Content-Type: text/html; charset=UTF-8')[1];
const html = atob(htmlPart.split('\r\n\r\n')[1].split('\r\n')[0]);
assert.match(html, /STAGING DELIVERY TEST/);
assert.match(html, /by <a href="https:\/\/codingmoves.netlify.app\/products\/"/);
assert.match(html, /by <a href="https:\/\/codingmoves.com\/products\/"/);
assert.equal(html.includes('Open assigned lesson'), false);
});
2 changes: 1 addition & 1 deletion supabase/functions/worker/editorial_mail.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ function renderHtml(body: string, origin: string, liveLinks = true): string {
`<body style="font-family:Arial,sans-serif;color:#222238;background:#f4f4fc">` +
`<main style="max-width:600px;margin:auto;padding:28px;background:#fff">` +
`<img src="${htmlEscape(origin)}/one-concept-icon.png" width="48" height="48" alt="One Concept" style="display:block;width:48px;height:48px;border:0;border-radius:12px;margin:0 0 12px">` +
`<p style="margin:0 0 16px;color:#62627a;font-size:12px">by <a href="https://codingmoves.netlify.app/products/" style="color:#5248bf;text-decoration:underline">Coding Moves</a></p>` +
`<p style="margin:0 0 16px;color:#62627a;font-size:12px">by <a href="https://codingmoves.com/products/" style="color:#5248bf;text-decoration:underline">Coding Moves</a></p>` +
`<h1>Lessons ready for your review</h1>${content}` +
`<p>Assignments can change after this email is sent. The review workspace always shows their current status.</p>` +
`</main></body></html>`;
Expand Down
Loading