67 lines
2.8 KiB
Markdown
67 lines
2.8 KiB
Markdown
# Astro Starter
|
|
|
|
An Astro starter project set up with pnpm, Biome, Stylelint, Husky, and Astro Sitemap, plus sensible VS Code defaults and recommended workspace extensions.
|
|
|
|
## Getting Started
|
|
|
|
1. Click "Use this template" and create a new repository.
|
|
2. In `astro.config.mjs`, update `site` from `https://mysite.com` to your site URL.
|
|
3. In `src/layouts/BaseLayout.astro`, update `siteName` to your site name.
|
|
4. Good to go!
|
|
|
|
## What's included
|
|
|
|
**Basics**
|
|
- A blank [Astro](https://astro.build/) project with TypeScript enabled
|
|
- `pnpm` package management plus `only-allow pnpm`
|
|
- Import aliases of `src` using `~` to enable using `import { Component } from '~/components'`
|
|
- Basic meta tags and open graph tags in `layouts/BaseLayout.astro`
|
|
- `initial-scale=1` on `viewport` to prevent default mobile zoom-out
|
|
- Site name displays after the page title (`Page Title · Site Name`) on pages other than the main index
|
|
- [smartypants](https://github.com/othree/smartypants.js) smart quotes for page titles and descriptions
|
|
|
|
**Styles**
|
|
- Josh Comeau's [reset.css](https://www.joshwcomeau.com/css/custom-css-reset/)
|
|
|
|
**Linting and Formatting**
|
|
- Linting and formatting with [Biome](https://biomejs.dev/)
|
|
- Style linting with [Stylelint](https://stylelint.io/) and [stylelint-config-astro](https://github.com/mattpfeffer/stylelint-config-astro)
|
|
|
|
**VS Code**
|
|
- Format on save and on paste
|
|
- Default formatter set to Astro
|
|
- Workplace recommendations for [Astro](https://marketplace.visualstudio.com/items?itemName=astro-build.astro-vscode), [axe Accessibility Linter](https://marketplace.visualstudio.com/items?itemName=deque-systems.vscode-axe-linter), and [Biome](https://marketplace.visualstudio.com/items?itemName=biomejs.biome)
|
|
|
|
**Package.json scripts**
|
|
- `check` — Run Astro check + Biome lint and format
|
|
- `check:fix` — Run Astro check + Biome lint and format + fix errors
|
|
- `stylelint` — Run Stylelint
|
|
- `stylelint:fix` — Run Stylelint and fix errors
|
|
|
|
**Vision script** (requires `ANTHROPIC_API_KEY` in `.env.local`)
|
|
|
|
Generate AI metadata (title, description, tags) + EXIF sidecars for a photo album:
|
|
|
|
```bash
|
|
node --env-file=.env.local --experimental-strip-types scripts/vision.ts src/content/photos/albums/<album>
|
|
```
|
|
|
|
Optional flags:
|
|
- `--refresh` — overwrite existing JSON sidecars
|
|
- `--concurrency=N` — parallel API calls (default: 2)
|
|
- `--retries=N` — max retries on rate limits (default: 8)
|
|
- `--backoff-ms=N` — base backoff in ms (default: 1500)
|
|
|
|
**Husky**
|
|
- `pnpm check` on pre-commit
|
|
|
|
**Dependabot**
|
|
- Weekly dependency update checks
|
|
- All GitHub Action updates grouped in a single pull request
|
|
- All patch or minor package updates grouped in a single pull request
|
|
- All major package updates created as individual pull requests
|
|
|
|
**Config**
|
|
- Link prefetching enabled
|
|
- Dev toolbar disabled
|
|
- [Astro Sitemap](https://docs.astro.build/en/guides/integrations-guide/sitemap/) installed
|