https://github.com/eddmann/compiled-conversations
Conversations with the people shaping software and technology.
https://github.com/eddmann/compiled-conversations
aws-s3 developer-podcast hugo podcast podcast-website rss-feed static-site tailwindcss
Last synced: 4 months ago
JSON representation
Conversations with the people shaping software and technology.
- Host: GitHub
- URL: https://github.com/eddmann/compiled-conversations
- Owner: eddmann
- Created: 2025-07-18T16:44:24.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2026-02-11T14:26:37.000Z (5 months ago)
- Last Synced: 2026-02-11T22:30:42.036Z (5 months ago)
- Topics: aws-s3, developer-podcast, hugo, podcast, podcast-website, rss-feed, static-site, tailwindcss
- Language: HTML
- Homepage: https://compiledconversations.com/
- Size: 2.19 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Compiled Conversations
A podcast featuring conversations with the people shaping software and technology.
## About
Compiled Conversations is a podcast that features in-depth conversations with the people shaping software and technology.
Each episode explores real-world experiences, technical challenges, and the thinking behind the tools, systems, and decisions that drive modern development.
From engineering practices to architectural choices, this is a show for developers who care about how software is built - and who's building it.
## Development
### Running Hugo Locally
To run the Hugo site locally for development:
1. **Start the development server**:
```bash
hugo server
```
2. **View the site** at `http://localhost:1313`
The development server will automatically reload when you make changes to your content or templates.
**Note:** Make sure you have the required dependencies installed for Tailwind CSS:
```bash
npm install
```
### Update Episodes Metadata
The `update-episodes-metadata` script automatically processes local episode audio files and updates their metadata. It:
- Reads episode markdown files from `content/episodes/`
- Finds corresponding audio files in the local `episodes/` directory
- Extracts audio duration, file size, and generates MD5 hash
- Updates episode frontmatter with this metadata
- Embeds podcast metadata (title, artist, album, etc.) into audio files using ID3 tags
- Uses album art from `static/album-art.jpg`
**Note:** The local `episodes/` directory containing audio files is not committed to this repository.
To run the script:
```bash
npm run update-episodes-metadata
```
### Sync Episodes to S3
The `sync-episodes` script uploads local episode audio files to a specified S3 bucket. It:
- Reads MP3 files from the local `episodes/` directory
- Compares local file hashes with S3 ETags to detect changes
- Uploads only new or modified files to the specified S3 bucket
- Provides dry-run mode to preview uploads without making changes
- Sets correct `audio/mpeg` content type for podcast files
- Includes verbose logging for detailed upload information
**Note:** The local `episodes/` directory containing audio files is not committed to this repository.
**Prerequisites:** AWS credentials must be configured via environment variables, AWS CLI, or IAM role.
To run the script:
```bash
npm run sync-episodes -- --bucket my-podcast-bucket --dry-run
npm run sync-episodes -- --bucket my-podcast-bucket
```
## Acknowledgments
The design of this podcast website was inspired by Adam Wathan's [Full Stack Radio](https://fullstackradio.com/) podcast.