Skip to content

Commit db7d4df

Browse files
committed
docs: rewrite README for the portfolio project
Replaces the Astro minimal template boilerplate with a project overview: stack, layout, commands, architecture notes, SEO summary, and the develop→main branching convention.
1 parent a9e9a19 commit db7d4df

1 file changed

Lines changed: 63 additions & 29 deletions

File tree

README.md

Lines changed: 63 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,77 @@
1-
# Astro Starter Kit: Minimal
1+
# alexperronnet.com
22

3-
```sh
4-
pnpm create astro@latest -- --template minimal
5-
```
3+
Personal site of Alex Perronnet — software engineer based in Quimper, France. Quiet aurora aesthetic, two pages (home + 404), static output.
4+
5+
**Live:** [alexperronnet.com](https://alexperronnet.com)
66

7-
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
7+
## Stack
88

9-
## 🚀 Project Structure
9+
- **Astro 6** — static site, zero hydration cost (vanilla TypeScript for the few bits of interactivity)
10+
- **TypeScript** strict, `astro check` on CI
11+
- **fontsource** — Geist Variable + Geist Mono Variable, served locally
12+
- **Ultracite / Biome** — lint + format
13+
- **Husky + commitlint + lint-staged** on every commit
14+
- **Vercel** — hosting, cache and security headers in [`vercel.json`](./vercel.json)
1015

11-
Inside of your Astro project, you'll see the following folders and files:
16+
## Layout
1217

13-
```text
14-
/
15-
├── public/
16-
├── src/
17-
│ └── pages/
18-
│ └── index.astro
19-
└── package.json
2018
```
19+
src/
20+
config/site.ts ← identity, SEO, status, endpoints (single source of truth)
21+
styles/
22+
tokens.css ← :root CSS custom properties (locked design)
23+
global.css ← reset, page chrome, shared animations
24+
layouts/layout.astro ← <head>, SEO, OG/Twitter, JSON-LD Person
25+
components/
26+
aurora.astro ← decorative background (blobs + vignette + grain)
27+
header.astro ← <h1> name, status, greeting, date, "you are here"
28+
clock.astro ← live local time
29+
info.astro ← role / based-in / born-in / bio / links
30+
footer.astro ← live build hash (GitHub API)
31+
icons/ ← inline SVG icons
32+
scripts/
33+
boot-home.ts ← entry point for /
34+
boot-not-found.ts ← entry point for /404
35+
clock | header | location | commit | email | not-found .ts
36+
lib/{dom,time}.ts ← pure helpers
37+
pages/
38+
index.astro
39+
404.astro
40+
public/ ← favicons, og-image, manifest, robots.txt
41+
```
42+
43+
## Commands
44+
45+
| Command | What it does |
46+
| ---------------- | ----------------------------------------- |
47+
| `pnpm install` | Install dependencies |
48+
| `pnpm dev` | Dev server on http://localhost:4321 |
49+
| `pnpm build` | Production build to `./dist/` |
50+
| `pnpm preview` | Serve the production build locally |
51+
| `pnpm typecheck` | `astro check` (strict TypeScript) |
52+
| `pnpm check` | Lint with Ultracite |
53+
| `pnpm fix` | Lint with auto-fix |
2154

22-
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
55+
## Architecture
2356

24-
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
57+
- **Locked design** — mood `dusk`, aurora `lively`, clock `glass`, format `auto`, pairing `sans-mono`, status `on`. Per the original brief; the tweak panel is not implemented.
58+
- **Styling** — per-component scoped `<style>` blocks (native Astro); shared resets and animations in [`src/styles/global.css`](./src/styles/global.css); design tokens in [`src/styles/tokens.css`](./src/styles/tokens.css). No Tailwind, no CSS modules.
59+
- **Scripts** — one feature module per concern (SRP), each exporting a single `init*` function. Two per-page bootstraps keep the 404 bundle slim.
60+
- **Env vars** — typed via `astro:env`. `VERCEL_GIT_COMMIT_SHA` powers the footer build hash; Vercel injects it automatically.
61+
- **Geolocation** — IP-based via `ipapi.co`, no browser prompt. Timezone city resolved instantly from `Intl`.
62+
- **A11y** — every animation respects `prefers-reduced-motion`. Aurora is `aria-hidden`. Each page has a single `<h1>`.
2563

26-
Any static assets, like images, can be placed in the `public/` directory.
64+
## SEO
2765

28-
## 🧞 Commands
66+
The layout ships canonical, `hreflang`, robots, OpenGraph (with dimensions + alt), Twitter Card, theme-color, web manifest, full favicon set, and a `schema.org/Person` JSON-LD with ISO 3166-1 country codes.
2967

30-
All commands are run from the root of the project, from a terminal:
68+
## Conventions
3169

32-
| Command | Action |
33-
| :------------------------ | :----------------------------------------------- |
34-
| `pnpm install` | Installs dependencies |
35-
| `pnpm dev` | Starts local dev server at `localhost:4321` |
36-
| `pnpm build` | Build your production site to `./dist/` |
37-
| `pnpm preview` | Preview your build locally, before deploying |
38-
| `pnpm astro ...` | Run CLI commands like `astro add`, `astro check` |
39-
| `pnpm astro -- --help` | Get help using the Astro CLI |
70+
- **Branches** — work on `develop`, PR to `main`. `main` deploys to production via Vercel; PRs get preview deployments.
71+
- **Commits**[Conventional Commits](https://www.conventionalcommits.org/) enforced by commitlint.
72+
- **Formatting**`ultracite fix` runs on staged files via `lint-staged` at commit time.
73+
- **Filenames** — lowercase (kebab-case), including Astro components.
4074

41-
## 👀 Want to learn more?
75+
## License
4276

43-
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
77+
Personal project — code is not licensed for redistribution.

0 commit comments

Comments
 (0)