This is the official website for the Audrow Nash Podcast, built using Fresh, a next-generation web framework for Deno.
The Audrow Nash Podcast website is designed to showcase podcast episodes, provide information about the host, and offer ways for listeners to get in touch and subscribe to the podcast.
Make sure you have Deno installed. If not, you can install it from https://deno.land/manual/getting_started/installation
deno task start
This command will watch the project directory and restart as necessary.
For development with all posts visible (including unpublished ones), use:
deno task dev
This command sets the SHOW_ALL_POSTS
environment variable to true.
Currently, environment variables are needed for scripts, not deploying or previewing the website. You can skip this if you only want to run the website.
To set up the environment variables for the project:
.env-example
file in the root directory to a new file named
.env
:cp .env-example .env
Open the .env
file and update the values as needed. The file contains
important configuration settings for the project, such as API keys.
Make sure not to commit your .env
file to version control. It's already
included in the .gitignore
file to prevent accidental commits.
Remember to update your .env
file whenever you add new environment variables
to the project. If you add new variables, make sure to update the .env-example
file as well, so other developers know what variables are required.
routes/
: Contains the main page components (index, about, contact, posts,
etc.)islands/
: Interactive components that use client-side JavaScriptcomponents/
: Reusable UI componentsstatic/
: Static assets like images, icons, and global CSSutils/
: Utility functions for handling posts and other operationsposts/
: Markdown files for blog poststranscripts/
: Transcripts for podcast episodesfresh.gen.ts
: Auto-generated file mapping routes and islandsTo build the project for production:
deno task build
To preview the production build:
deno task preview
The project is set up for continuous deployment using GitHub Actions. When changes are pushed to the main branch, the site is automatically deployed to Deno Deploy.
To schedule a post on Buttondown for newsletter distribution:
deno task upload-newsletter <path-to-markdown-file>
This script reads the markdown file, processes its content, and interacts with
the Buttondown API. If a published_at
date is set in the frontmatter, it
schedules the newsletter for that date. If no date is set, it creates a draft
newsletter. The script uses the following:
This website uses Astral for integration tests. To run the tests:
deno task test
This will run all integration tests, including:
Contributions are welcome! Please feel free to submit a Pull Request.