This repository contains the source code for Frank Harris's personal website, built using Deno's Lume framework, Tailwind CSS for styling, and VTO as the template engine.
- Built with Lume, a static site generator for Deno
- Responsive design with custom Tailwind CSS styling
- Dynamic content rendering using VTO templates
- Blog posts and project showcases
- Practice integration
- Automatic deployment to Deno Deploy
- Custom intro email generator
- Calendar integration for coaching sessions
- Deno - JavaScript/TypeScript runtime
- Lume: A static site generator for Deno
- Tailwind CSS: A utility-first CSS framework
- VTO: A template engine for Lume
- OpenAI: For AI-powered intro email generation
- Practice: For calendar scheduling
- PDF.js: For PDF parsing
.
├── _config.ts
├── content/
│ ├── _data.yml
│ ├── _includes/
│ ├── pages/
│ ├── writings/
│ └── styles.css
├── lib/
│ ├── plugins.ts
│ ├── intro.ts
│ └── middleware/
├── .github/workflows/
│ └── deploy.yml
└── serve.ts
To run the project locally:
- Ensure you have Deno installed
- Clone this repository
- Create a
.env
file with required environment variables:OPENAI_API_KEY=your_key_here
- Run
deno task serve
to start the development server - Open http://localhost:3000 in your browser
The site is automatically deployed to Deno Deploy when changes are pushed to the main branch. The deployment configuration can be found in .github/workflows/deploy.yml
.
- Blog posts are stored in content/writings/ as Markdown files
- Pages are stored in content/pages/ as Markdown files
- Site configuration is in _config.ts
- Global data is stored in content/_data.yml
- Styles are managed through Tailwind CSS in content/styles.css
This project is open source and available under the MIT License.