Skip to content

pyxelr/pawelcislo.com

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

139 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

pawelcislo.com

Cloudflare License: CC BY-NC-SA 4.0

Personal website and blog of PaweΕ‚ CisΕ‚o.

Migrated from WordPress to Astro Starlight and hosted on Cloudflare Pages.

πŸ“‚ Project Structure

Inside of your Astro + Starlight project, you'll see the following folders and files:

.
β”œβ”€β”€ .github/workflows/          # GitHub Actions (yearly rebuild)
β”œβ”€β”€ plugins/                    # Custom remark/rehype plugins
β”œβ”€β”€ public/                     # Static assets served as-is (favicon, linked images, etc.)
β”œβ”€β”€ scripts/                    # Utility scripts (sync recommendations, link checker, etc.)
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/                 # Optimised assets (processed by Astro)
β”‚   β”œβ”€β”€ components/             # Custom Astro components (Footer, PageTitle, ThemeSelect, etc.)
β”‚   β”œβ”€β”€ content/
β”‚   β”‚   └── docs/
β”‚   β”‚       β”œβ”€β”€ knowledge/      # Knowledge base pages (Obsidian, Espanso, etc.)
β”‚   β”‚       β”œβ”€β”€ pages/          # Legacy subfolder (images only)
β”‚   β”‚       └── posts/          # Blog posts with images
β”‚   β”œβ”€β”€ content.config.ts       # Content collection schema
β”‚   β”œβ”€β”€ pages/                  # Custom Astro pages (404, RSS, tags)
β”‚   β”‚   └── tags/               # Tag index and individual tag pages
β”‚   └── styles/                 # Custom CSS overrides
β”œβ”€β”€ astro.config.mjs            # Site configuration
β”œβ”€β”€ COPYRIGHT                   # Content copyright notice
β”œβ”€β”€ package.json                # Dependencies and scripts
β”œβ”€β”€ README.md                   # This file
└── tsconfig.json               # TypeScript configuration

Content organization:

  • Starlight looks for .md or .mdx files in the src/content/docs/ directory
  • Each file is exposed as a route based on its file name
  • Blog posts are in src/content/docs/posts/ (auto-generated in sidebar)
  • Top-level pages (Portfolio, FAQ, Uses, etc.) live directly in src/content/docs/
  • Images are in src/content/docs/posts/images/ and src/content/docs/pages/images/

πŸ‘¨πŸ»β€πŸ’» Getting Started

  1. Install Node.js from nodejs.org (includes npm)
  2. Install dependencies: npm install
  3. Start development server: npm run dev

πŸ’Ύ 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:4321
npm run build Build your production site to ./dist/ (auto-syncs recommendations page)
npm run preview Preview your build locally, before deploying
npm run sync:recommendations Sync recommendations page from GitHub
npm run check:links Audit all content pages for broken/outdated external links
npm update Updates packages within semver ranges
npm outdated Shows which packages have newer versions
npm run astro ... Run CLI commands like astro add, check
npm run astro -- --help Get help using the Astro CLI

πŸš€ Deployment

This site is deployed on Cloudflare Pages with automatic deployments from GitHub.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     git push     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     webhook     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ VS Code β”‚ ───────────────► β”‚ GitHub  β”‚ ──────────────► β”‚ Cloudflare Pages β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                  β”‚
                                                            npm run build
                                                                  β”‚
                                                                  β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       CDN       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   static   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Visitors β”‚ ◄────────────── β”‚ Edge Network β”‚ ◄───────── β”‚    Astro SSG    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Deployment flow:

  1. Push changes to the main branch
  2. Cloudflare Pages automatically builds and deploys
  3. Preview the main branch build at pawelcislo.pages.dev
  4. Changes are live at pawelcislo.com

Before pushing, always verify the build locally:

npm run build

This runs the same pipeline as Cloudflare (including the recommendations sync) and catches errors before they reach production.

Additionally, a GitHub Actions scheduled workflow triggers a Cloudflare rebuild on January 1st each year to update the copyright year in the footer.

πŸ“š Resources


Built with Starlight

About

🌐 My personal website + blog.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors