Skip to content

Repository files navigation

melikyan.dev

Deploy Astro blog to GitHub Pages Built with Starlight

Source for melikyan.dev, Arsen Melikyan's personal blog about web development, debugging, cybersecurity, and software engineering.

The site is built with Astro, Starlight, and starlight-blog. It is generated as a static site and deployed to GitHub Pages.

Local development

Node.js 22.12 or newer and npm are required.

npm ci
npm run dev

The development server is available at http://localhost:4321.

Commands

Command Description
npm ci Install the locked dependency versions
npm run dev Start the local development server
npm run build Type-check and build the production site
npm run preview Preview the production build locally
npm run format Format the project with Prettier
npm run format-check Check formatting without modifying files
npm run astro -- ... Run Astro CLI commands

Project structure

.
├── public/                  # Static assets copied as-is
├── src/
│   ├── assets/              # Images processed by Astro
│   ├── components/          # Site and Starlight component overrides
│   ├── content/
│   │   ├── docs/            # Homepage and blog posts
│   │   └── i18n/            # Starlight UI translations
│   ├── pages/               # Standalone Astro pages
│   └── styles/              # Global styles and Tailwind theme
├── astro.config.mjs         # Astro, Starlight, and plugin configuration
└── src/content.config.ts    # Content loaders and schemas

Blog posts live in src/content/docs/blog/. Assets specific to a post live in a matching src/assets/<post-slug>/ directory.

Deployment

The deploy.yml workflow builds and deploys the site to GitHub Pages whenever changes are pushed to the astro branch. The workflow can also be run manually from the Actions tab.

The repository's default pull request target is master; production deployment happens from astro.

About

Personal portfolio website

Resources

Stars

3 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages