https://github.com/shipshapecode/starpod
Create an amazing podcast website in 5 minutes
https://github.com/shipshapecode/starpod
astro podcast
Last synced: 10 days ago
JSON representation
Create an amazing podcast website in 5 minutes
- Host: GitHub
- URL: https://github.com/shipshapecode/starpod
- Owner: shipshapecode
- License: mit
- Created: 2024-03-20T01:58:26.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-04T14:43:29.000Z (21 days ago)
- Last Synced: 2025-04-11T18:57:03.804Z (14 days ago)
- Topics: astro, podcast
- Language: TypeScript
- Homepage: https://starpod.dev
- Size: 6.49 MB
- Stars: 42
- Watchers: 3
- Forks: 15
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Starpod
Starpod is the easiest way to create a podcast website in 5 minutes or less and
it is 100% free and open source.### Configuration
You will need to configure your RSS feed and a few other pieces of info for your
podcast in starpod.config.mjs. We provide a util function `defineStarpodConfig`
that provides TypeScript types and enforces the correct formats for config
values.An example config can be found [here](./starpod.config.ts).
#### Options
##### blurb
A very short tagline for your show. Generally, no more than one sentence. Less
is more here.**Example:**
```ts
blurb: 'A whiskey fueled fireside chat with your favorite web developers.',
```##### description
A somewhat longer description of what your show is about. This should still
ideally be fairly short, and should usually be 2-4 sentences.**Example:**
```ts
description:
'Veteran web developers RobbieTheWagner and Charles William Carpenter III host this informal, whiskey-fueled fireside chat with your favorite web devs. They discuss all things web development including JavaScript, TypeScript, EmberJS, React, Astro, SolidJS, CSS, HTML, Web3, and more. They take a unique approach and focus on getting to know the human side of developers and their hobbies outside of work, all while sampling a new whiskey that they rate on their unique tentacle scale.',
```##### hosts
A list of your show's hosts and their info.
**Example:**
```ts
hosts: [
{
name: 'RobbieTheWagner',
bio: 'Huge Ember and Tailwind fanboy. I work at Amazon btw.',
img: '/src/img/people/robbiethewagner.jpg',
github: 'https://github.com/RobbieTheWagner',
twitter: 'https://twitter.com/RobbieTheWagner',
website: 'https://robbiethewagner.dev'
},
{
name: 'Charles William Carpenter III',
bio: 'Third of his name, user of gifs, hater of ESM.',
img: '/src/img/people/chuckcarpenter.jpg',
github: 'https://github.com/chuckcarpenter',
twitter: 'https://twitter.com/CharlesWthe3rd'
}
],
```##### platforms
Links to the platforms your show is available on.
**Example:**
```ts
platforms: {
apple:
'https://podcasts.apple.com/us/podcast/whiskey-web-and-whatnot/id1552776603?uo=4?mt=2&ls=1',
overcast: 'https://overcast.fm/itunes1552776603',
spotify: 'https://open.spotify.com/show/19jiuHAqzeKnkleQUpZxDf',
youtube: 'https://www.youtube.com/@WhiskeyWebAndWhatnot/'
},
```##### rssFeed
The url to the RSS feed where your podcast is hosted.
**Example:**
```ts
rssFeed: 'https://rss.art19.com/whiskey-web-and-whatnot';
```#### Setting up the contact form
The contact form hits an APIRoute at `/api/contact`. It is currently configured
to send the form data to a Slack channel webhook I had setup. It reads the url
from `import.meta.env.SLACK_WEBHOOK`, so if you define a `SLACK_WEBHOOK`
environment variable it should work for you. Of course, feel free to customize
the code [here](./src/pages/api/contact.ts) to send the data elsewhere as you
see fit.#### Configuring guests
We use Turso and Astro DB to setup guests per episode. If you would also like to do this, you will need a Turso account.