Commit Graph

205 Commits

Author SHA1 Message Date
nmemmert 554c248ea7 Fix: copy server/ directory into Docker runtime image 2026-05-04 14:03:47 -04:00
nmemmert 3b91fac6a7 Merge beta: TOTP 2FA, admin asset manager, resource page redesign, rate limiting, and security hardening 2026-05-04 13:56:09 -04:00
nmemmert 1551599305 Beta: TOTP 2FA, admin asset manager, resource page redesign, rate limiting, and security hardening 2026-05-04 13:56:04 -04:00
nmemmert 7f56060d6b Beta: admin assets, resource download forms, and resource page redesign 2026-04-30 15:47:10 -04:00
nmemmert 10bd6848ef Simplify podcast highlight labels on episodes page 2026-04-27 16:39:54 -04:00
nmemmert b26103b7b1 Reorganize admin workflow and persist episode discussion questions 2026-04-27 16:25:26 -04:00
nmemmert 83743cc78b Add robots.txt and sitemap.xml for SEO 2026-04-27 15:09:37 -04:00
nmemmert ee153cf9ef image 2026-04-27 11:26:01 -04:00
nmemmert 88860bc42a Serve images first-party and remove necloud domain refs 2026-04-27 10:58:09 -04:00
nmemmert c5cc28b36b Fix podcast art route for Docker runtime dist path 2026-04-27 10:38:57 -04:00
nmemmert 73b8299f1a Add podcast redirects and route through first-party links 2026-04-27 10:31:10 -04:00
nmemmert b4f1c1dbdb Polish About, forms, and share/contact UI 2026-04-23 17:03:41 -04:00
nmemmert 8a71aecb4e Refine homepage sections and contact card design 2026-04-20 15:38:55 -04:00
nmemmert cc4a4b4d63 Gate Titus download, require full name forms, remove companion UI 2026-04-20 11:29:37 -04:00
nmemmert 0c328057c8 Polish hero UX and add admin brand kit panel 2026-04-16 10:31:35 -04:00
nmemmert 5562db992b Ignore generated runtime data files 2026-04-16 08:37:32 -04:00
nmemmert 287fa72462 Replace chatbot with Q&A and add archived series management 2026-04-16 08:25:04 -04:00
nmemmert 50459b7234 Enhance chatbot conversation engine and add retrieval eval suite 2026-04-14 10:36:22 -04:00
nmemmert 36594d5e16 Add dedicated subscribe page and seed all JSON defaults on startup 2026-04-13 12:06:48 -04:00
nmemmert 0e9d112c44 Fix: Use absolute path for data bind mount instead of relative path 2026-04-13 10:48:29 -04:00
nmemmert 063f5d2a0e Add episode transcripts, expand chatbot Q&A database to 28 entries, and build scripts 2026-04-13 10:29:06 -04:00
nmemmert 6e8b360398 Refine sharing and cookie consent button styles 2026-04-12 19:03:07 -04:00
nmemmert 770d2357ac Add simple auth for admin access 2026-04-12 13:34:11 -04:00
nmemmert f07d8fecfb Add Bible Questions inbox from contact submissions 2026-04-12 13:25:59 -04:00
nmemmert dcfce9dc24 Enhance contact CTA prominence and copy clarity 2026-04-12 13:22:19 -04:00
nmemmert 738cc2a412 Add persistent admin analytics, backup restore workflow, and tabbed admin UI 2026-04-12 13:12:03 -04:00
nmemmert bac22950ba Update about description location to Lynchburg, Va 2026-04-10 11:14:44 -04:00
nmemmert 85af1a29ad Route contact form delivery to hello@versebyversewithnate.us 2026-04-10 10:53:03 -04:00
nmemmert 85e8a298fd Revert: deliver contact form emails to vbvwithnate@outlook.com 2026-04-09 17:10:09 -04:00
nmemmert a252167052 Deliver contact form emails to hello@versebyversewithnate.us 2026-04-09 17:08:56 -04:00
nmemmert 53408ad124 Switch sender to hello@versebyversewithnate.us 2026-04-09 16:39:16 -04:00
nmemmert d5f15486d8 Add explicit contact opt-in before Resend list signup 2026-04-09 16:11:49 -04:00
nmemmert afb80aaf2a Fix Resend contact sync payload and support separate contacts key 2026-04-09 16:05:46 -04:00
nmemmert 3a9d11cf40 Add Resend contact sync for contact form submissions 2026-04-09 15:54:53 -04:00
nmemmert 2653d95605 update 2026-04-09 15:51:17 -04:00
nmemmert 7772bfd6a6 Update contact email sender name 2026-04-09 15:49:16 -04:00
nmemmert 74650a39b3 Polish contact email subject and HTML layout 2026-04-09 15:48:40 -04:00
nmemmert c46d765759 Fix Resend reply-to field for contact emails 2026-04-09 15:47:31 -04:00
nmemmert d95ed9cd8d Switch contact email to Resend API, remove nodemailer/SMTP 2026-04-09 14:40:19 -04:00
nmemmert 4b01d01133 Switch contact form to self-hosted SMTP via nodemailer, remove formsubmit.co 2026-04-09 14:38:28 -04:00
nmemmert e93840c25f Add contact form and thank-you redirect flow 2026-04-09 14:28:36 -04:00
nmemmert 5b401671db Replace Vite lightning bolt favicon with on-brand open book icon 2026-04-09 13:35:52 -04:00
nmemmert f156257573 Merge podcast-verse-by-verse into main 2026-04-09 11:37:02 -04:00
nmemmert 057c856df7 Rebrand site for podcast, add admin CMS, social metadata, and platform links 2026-04-09 11:28:44 -04:00
nmemmert 4586c30ea3 Add build step to GitHub Actions workflow
Publish Container / docker (push) Has been cancelled
v2026.04.09-pre-podcast
2026-03-25 12:01:54 -04:00
nmemmert cafa182751 Document podcast embed in README 2026-03-25 11:56:41 -04:00
nmemmert 7a33eeeaff Add Spotify podcast embed to home page 2026-03-25 11:52:08 -04:00
nmemmert d238d52338 ci: test workflow trigger 2026-03-19 16:11:29 -04:00
nmemmert 8f165afcc9 feat: site-wide Swing Music player, persistent storage, mobile UX polish
- SiteWideMusicDock component at app level; persists across all routes
- Dock + player merged into single expandable panel
- Remove non-functional Hide button; one Minimize/Open control
- Swing Music label and action button on same row
- Mobile: dock z-index above player, larger touch target on iPad
- entrypoint.sh: seeds admin-content.json only on first boot/fresh volume
- Dockerfile: seed in /app/data-seed; live data in /app/data (volume)
- shell-with-music-bar padding on project and admin pages
2026-03-19 16:05:16 -04:00
Nate Emmert a06830281d Add robust themes, drag-drop layout, and manual screenshot controls 2026-03-18 14:33:21 -04:00