The Sunday Blender's canister URL: https://bf52x-nyaaa-aaaan-qz5aq-cai.icp0.io/
- PLAN.md - Project roadmap and planning
- TWITTER_BOT_README.md - Twitter bot documentation
Start Hugo's development server to view the hot-loaded site
hugo server
View the site on //localhost:1313 (with bind address 127.0.0.1)
To view the local site with draft content, run either of these commands:
hugo server --buildDrafts
hugo server -D
To view draft content with future dates (specific to The Sunday Blender workflow):
hugo server -D -F
When publish the site, typically you do NOT want to include draft, future, or expired content, just do:
hugo
Or to minify assets and reduce what's needed for human to understand
hugo --minify
After creating the static HTML assets in public/ folder, git push the current branch to the remote:
git push --set-upstream origin <local_branch_name>
Complete workflow for creating and publishing a new issue of The Sunday Blender newsletter.
Create a draft branch for the next issue:
git checkout -b draft/YYYYMMDDCreate the article folder and initialize:
mkdir -p content/posts/YYYY/MM/MMDD
cd content/posts/YYYY/MM/MMDD
tsb-init-articleThe initializer generates index.md with all frontmatter fields (with placeholders), section headers, and links to the 3 most recent published articles.
Update the article throughout the week with additional stories, materials, and content refinements.
- Make all changes in the
draft/YYYYMMDDbranch, NOT themainbranch - Keep
draft: truein frontmatter throughout the week - Commit changes locally, but no need to push to remote until ready to publish
- Preview with
hugo server -D -Fto display draft articles with future dates - For Cursor editor, use theme
Quiet Lightfor better readability
Run a text audit to ensure the article is ready for PDF generation:
cd content/posts/YYYY/MM/MMDD
tsb-audit-textThis verifies frontmatter fields, images, section content, and reading time before proceeding to PDF/podcast generation.
Ensure Hugo dev server is running (hugo server -D -F), then generate the PDF:
cd content/posts/YYYY/MM/MMDD
tsb-make-pdfThis generates a PDF in the article folder for podcast creation. If run again, it creates name_01.pdf, name_02.pdf, etc. without overwriting previous versions. However, static/pdf/ always gets the latest version with the original filename (overwrites older versions).
Generate audio:
- Upload the PDF to Google NotebookLM
- Use
Audio Overviewand selectDeep Divemode - Download the
m4afile to the article folder
Process audio:
cd content/posts/YYYY/MM/MMDD
tsb-make-podcastThis single command:
- Converts
m4atomp3and name that asYYYY-MM-DD-podcast.mp3 - Updates frontmatter:
enabled: true,file,duration,filesize - Regenerates
shownoteswith the actual description
Step 1: Change draft: false in the frontmatter
Step 2: Run final audit to verify everything is ready:
cd content/posts/YYYY/MM/MMDD
tsb-audit-finalThis checks:
- draft is set to
false - PDF and MP3 files exist
- Podcast frontmatter is complete (enabled, duration, filesize)
- Twitter card meta tags are correct (
summary_large_image) - Hero image is displayed
- Main RSS feed includes the article
- Podcast RSS feed includes the episode
Step 3: Commit and push:
git add content/posts/YYYY/MM/MMDD/
git commit -m "Publish YYYY-MM-DD issue"
git push --set-upstream origin draft/YYYYMMDD- Create a PR to merge
draft/YYYYMMDDintomain - This triggers the GitHub deploy action to deploy the production canister on the Internet Computer
- Once the merge is completed, the remote draft branch is deleted automatically
- Update local:
git checkout main
git pull
git branch -d draft/YYYYMMDDPost an announcement tweet on @SundayBlender to announce the new issue:
- Log in to X.com with the
@SundayBlenderaccount - Compose a tweet announcing the new issue with the article link
- Include relevant hashtags and a brief teaser about the content
- Attach the featured image if applicable
Initiate the Twitter bot schedule script to promote the new issue across social media.
On Dalaran, update the main branch there and then run the interactive scheduler:
ssh dalaran
cd sundayblender
git pull
./scripts/schedule_tweets.shRefer to TWITTER_BOT_README.md for detailed Twitter bot instructions.
Run the progress checker to automatically update the table:
cd matrix/github_zire/sundayblender
tsb-update-progressOptions:
--sync- Add new articles from production RSS (no status check)--date YYYY-MM-DD- Check specific article--all- Check all articles in table--dry-run- Show results without updating
The script automatically discovers and adds new articles from the production site.
Note: 喜马拉雅 (Ximalaya) requires manual verification.
| Date | Images | Show Notes | Apple | Spotify | 小宇宙 | 喜马拉雅 | Inline 🎧 | |
|---|---|---|---|---|---|---|---|---|
| 2025-11-22 | ||||||||
| 2025-11-29 | ||||||||
| 2025-11-15 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | |
| 2025-11-08 | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 | 🟢 | 🔴 | 🟢 |
| 2025-11-01 | ||||||||
| 2025-10-25 | ||||||||
| 2025-10-11 | ||||||||
| 2025-09-27 | ||||||||
| 2025-09-20 | ||||||||
| 2025-09-13 | ||||||||
| 2025-07-06 | ||||||||
| 2025-06-28 | ||||||||
| 2025-06-21 | ||||||||
| 2025-06-15 | ||||||||
| 2025-06-07 | ||||||||
| 2025-05-31 | ||||||||
| 2025-05-24 | ||||||||
| 2025-05-17 | ||||||||
| 2025-05-10 | ||||||||
| 2025-05-09 | ||||||||
| 2025-05-03 | ||||||||
| 2025-04-26 | ||||||||
| 2025-04-20 | ||||||||
| 2025-04-05 | ||||||||
| 2025-03-29 | ||||||||
| 2025-03-22 | ||||||||
| 2025-03-16 | ||||||||
| 2025-03-09 | ||||||||
| 2025-03-02 | ||||||||
| 2025-02-24 | ||||||||
| 2025-02-16 | ||||||||
| 2025-02-09 | ||||||||
| 2025-02-01 | ||||||||
| 2025-01-30 | ||||||||
| 2025-01-26 |