SeanKilleen/ashley.dev

โ˜… 0Forks 0AstroGitHub โ†—Compare

README

Ashley.dev - Personal Website

This repository contains the source code for ashley.dev, my personal website built with Astro and Tailwind CSS.

๐Ÿ“ธ Site Preview

About Page Preview

๐Ÿš€ Site Structure

The website consists of several key sections:

  • About - Personal introduction and background
  • Projects - Showcase of my key projects and contributions
  • Blog - Articles and thoughts on various topics
  • Speaking - Information about my speaking engagements

๐Ÿ› ๏ธ Technology Stack

  • Astro - The web framework for content-focused websites
  • Tailwind CSS - A utility-first CSS framework
  • TypeScript - Type safety for JavaScript
  • Markdown - Content management for blog posts

โœจ Features

  • Responsive design that works on desktop and mobile devices
  • Content collections for structured data management
  • Dark mode design for comfortable viewing
  • Tag filtering system for blog posts and speaking engagements
  • Social media integration with Bluesky, Twitter, LinkedIn, GitHub and Email
  • Bluesky post interactions (likes and comments) displayed on blog posts
  • Section-specific "no results" messaging for filtered content
  • Clean URLs that don't persist query parameters on page refresh
  • Robust tab system with browser history integration

๐Ÿงž Development Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run dev Starts local dev server at localhost:3000
npm run build Build your production site to ./dist/
npm run preview Preview your build locally, before deploying
npm run astro ... Run CLI commands like astro add, astro check

๐Ÿ“ Content Management

Blog posts are written in Markdown and stored in src/content/posts/. Each post includes frontmatter with metadata such as:

  • title - The title of the post
  • date - Publication date
  • tags - Categories/topics for filtering
  • blueskyPostURI - Optional AT URI to a Bluesky post for displaying likes and comments

Speaking engagements and projects are managed through TypeScript data files in the src/data/ directory.

๐Ÿ—๏ธ Project Structure

/
โ”œโ”€โ”€ assets/                 # Preview images for README
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ img/                # Images used in the site
โ”‚   โ””โ”€โ”€ robots.txt
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ assets/             # Images used in components
โ”‚   โ”œโ”€โ”€ components/         # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ BlueskyLikes.astro  # Bluesky likes and comments component
โ”‚   โ”‚   โ””โ”€โ”€ ...             # Other components
โ”‚   โ”œโ”€โ”€ content/
โ”‚   โ”‚   โ”œโ”€โ”€ config.ts       # Content collection configuration
โ”‚   โ”‚   โ””โ”€โ”€ posts/          # Blog posts in Markdown
โ”‚   โ”œโ”€โ”€ data/
โ”‚   โ”‚   โ”œโ”€โ”€ projects.ts     # Project data
โ”‚   โ”‚   โ””โ”€โ”€ speaking.ts     # Speaking engagements data
โ”‚   โ”œโ”€โ”€ layouts/
โ”‚   โ”‚   โ””โ”€โ”€ Layout.astro    # Main layout template
โ”‚   โ”œโ”€โ”€ pages/
โ”‚   โ”‚   โ”œโ”€โ”€ index.astro     # Homepage with tabs
โ”‚   โ”‚   โ””โ”€โ”€ posts/
โ”‚   โ”‚       โ””โ”€โ”€ [slug].astro # Dynamic blog post pages
โ”‚   โ”œโ”€โ”€ styles/
โ”‚   โ”‚   โ””โ”€โ”€ global.scss     # Global styles
โ”‚   โ”œโ”€โ”€ types/
โ”‚   โ”‚   โ””โ”€โ”€ content.ts      # TypeScript interfaces
โ”‚   โ””โ”€โ”€ utils/
โ”‚       โ””โ”€โ”€ filtering.ts    # Tag filtering utility
โ”œโ”€โ”€ astro.config.mjs        # Astro configuration
โ”œโ”€โ”€ tailwind.config.js      # Tailwind CSS configuration
โ””โ”€โ”€ tsconfig.json           # TypeScript configuration

๐Ÿ”„ Deployment

The site is automatically deployed when changes are pushed to the main branch.

๐Ÿ“„ License

This project is licensed under the terms specified in LICENSE.md.

Contributors

ashleymcnamaraSeanKilleen

Issues