feat: homepage newsletter, Q&A callout, episodes page redesign, SEO/sitemap, asset tagging

- Fix "Invalid Date" on student account page (memberSince guard)
- Fix study community author showing full email instead of username
- Add newsletter sign-up section to homepage (between PRISM and Current Series)
- Add newsletter opt-in nudge to study enrollment flow
- Redesign episodes page: latest episode featured card + per-episode Spotify embed
- Add SEO description field to episodes page (visually hidden, admin-editable)
- Expand default sitemap paths to include /about, /contact, /episodes, /resources, /study, /study/titus, /study/colossians
- Add featured Q&A callout section to homepage
- Add Q&A callout to study hub footer
- Tag both untagged image assets in Asset Manager
This commit is contained in:
nmemmert
2026-06-03 10:56:55 -04:00
parent 01abb2c8c6
commit b187b19f18
11 changed files with 382 additions and 15 deletions
+2 -2
View File
@@ -3342,7 +3342,7 @@ app.post('/api/study-community/posts', requireStudyAuth, async (req, res) => {
}
const now = new Date().toISOString()
const authorName = user.displayName?.trim() || user.username
const authorName = user.displayName?.trim() || (user.username?.includes('@') ? user.username.split('@')[0] : user.username)
const post = {
id: randomUUID(),
studySlug,
@@ -3386,7 +3386,7 @@ app.post('/api/study-community/posts/:postId/replies', requireStudyAuth, async (
const reply = {
id: randomUUID(),
authorUserId: user.id,
authorName: user.displayName?.trim() || user.username,
authorName: user.displayName?.trim() || (user.username?.includes('@') ? user.username.split('@')[0] : user.username),
authorAvatarUrl: getStudyAvatarUrl(user.username),
message,
createdAt: new Date().toISOString(),