summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.claude/settings.local.json17
-rw-r--r--CLAUDE.md72
-rw-r--r--SPRINT.md18
-rw-r--r--src/content.config.ts2
4 files changed, 108 insertions, 1 deletions
diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 0000000..a291091
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,17 @@
+{
+ "permissions": {
+ "allow": [
+ "Bash(pnpm dev)",
+ "Bash(pnpm build)",
+ "Bash(pnpm postbuild)",
+ "Bash(pnpm preview)",
+ "Bash(pnpm lint)",
+ "Bash(pnpm format)",
+ "Bash(pnpm format:*)",
+ "Bash(pnpm check)",
+ "Bash(pnpm install)",
+ "Bash(git *)"
+ ],
+ "deny": []
+ }
+}
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..e5b1ce2
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,72 @@
+# CLAUDE.md
+
+## Project Overview
+
+Personal website and blog for Dawid Rycerz (rycerz.xyz). Built with Astro 5, featuring DevOps/web development blog posts, Pleroma microblog integration, full-text search, and dynamic OG image generation. Based on the Astro Cactus theme.
+
+## Commands
+
+```bash
+pnpm dev # Start dev server
+pnpm build # Build to ./dist/
+pnpm postbuild # Generate Pagefind search index
+pnpm preview # Preview built site
+pnpm deploy # Build + deploy to Cloudflare Pages
+pnpm lint # Biome linting
+pnpm format # Full formatting (Biome + Prettier + imports)
+pnpm check # Astro type checking
+```
+
+## Architecture
+
+- **Framework:** Astro 5 (static site generator) with TypeScript (strictest mode)
+- **Styling:** TailwindCSS 4 with Typography plugin
+- **Content:** Markdown/MDX blog posts in `src/content/post/`, tags in `src/content/tag/`
+- **Pleroma loader:** Custom content loader fetching posts from `social.craftknight.com` (`src/loaders/pleroma.ts`)
+- **Custom plugins:** Remark admonitions (`src/plugins/remark-admonitions.ts`), Rehype image captions (`src/plugins/rehype-image-captions.ts`)
+- **OG images:** Generated dynamically with Satori + Sharp (`src/pages/og-image/`)
+- **Search:** Pagefind (indexed at postbuild)
+- **Package manager:** pnpm
+
+### Key directories
+
+```
+src/
+├── components/ # Astro components (layout/, blog/)
+├── content/ # Content collections (post/, tag/, pleroma)
+├── data/ # Static data files
+├── i18n/ # Internationalization
+├── layouts/ # Page layouts (Base, BlogPost)
+├── loaders/ # Custom content loaders
+├── pages/ # Routes and dynamic pages
+├── plugins/ # Remark/Rehype plugins
+├── styles/ # Global styles
+├── utils/ # Utility functions
+├── content.config.ts # Content collection schemas
+└── site.config.ts # Site-wide configuration
+```
+
+### Key config files
+
+- `astro.config.ts` - Astro configuration, integrations, markdown plugins
+- `biome.json` - Linter/formatter (2-space indent, 100 char width, tabs)
+- `tailwind.config.ts` - TailwindCSS with custom prose styling
+- `tsconfig.json` - Strict TypeScript, `@/*` path alias to `src/*`
+
+## Conventions
+
+- TypeScript strict mode throughout
+- Formatting: tabs, 100 char line width, trailing commas (Biome + Prettier)
+- Path alias: `@/*` maps to `src/*`
+- Astro components use `.astro` extension
+- Blog posts use Markdown/MDX with YAML frontmatter
+- Pre-commit hooks via Husky
+
+## Commit Rules
+
+**IMPORTANT:** Before completing any task, you MUST run `/commit` to commit your changes.
+
+- Only commit files YOU modified in this session - never commit unrelated changes
+- Use atomic commits with descriptive messages
+- If there are no changes to commit, skip this step
+- Do not push unless explicitly asked
diff --git a/SPRINT.md b/SPRINT.md
new file mode 100644
index 0000000..1a3f411
--- /dev/null
+++ b/SPRINT.md
@@ -0,0 +1,18 @@
+# Sprint Backlog
+
+## Current Sprint: Setup
+Started: 2026-01-29
+Goal: Initialize project tooling for Claude Code
+
+## In Progress
+
+## Backlog (Prioritized)
+
+## Completed This Sprint
+- [x] **[CHORE-001]** Initial Claude Code setup
+ - Completed: 2026-01-29
+ - Notes: Added CLAUDE.md, SPRINT.md, .claude/settings.local.json
+
+## Blocked
+
+## Sprint History
diff --git a/src/content.config.ts b/src/content.config.ts
index 0c97338..27c16d6 100644
--- a/src/content.config.ts
+++ b/src/content.config.ts
@@ -65,7 +65,7 @@ const pleroma = defineCollection({
"#termowizja",
"#wlochy",
"#włochy",
- "#sycylia"
+ "#sycylia",
],
}),
schema: baseSchema.extend({