8 Commits

Author SHA1 Message Date
Peter Meier e28230bcef feat(images): responsive <picture> srcset for posts/blocks, drop AVIF for build speed
Deploy to Firebase Hosting / deploy (push) Failing after 2m4s
## Responsive sources

Wire `ensureResponsiveImage` (multi-width × multi-format srcset) into the three
remaining single-`<img>` components:

- ImageBlock (body): widths 600 + 1200, fit follows transform params
- ImageGalleryBlock (single-image branch): widths 600 + 1280, fit=contain
- PostCard (post-list cards): widths 400 + 800, fit=cover, ar=3:2

`resolveContentImages` now sets `block.resolvedResponsive` alongside the legacy
`resolvedImageSrc`, so every Svelte block component renders `<picture>` if
the responsive shape is present and falls back to a plain `<img>` otherwise.

Posts list pages (`/posts`, `/posts/page/N`, `/posts/tag/.../page/N`) call a
new `resolvePostCardResponsive` helper instead of one-shot `ensureTransformedImage`.

## Drop AVIF from defaults

Server-side AVIF encoding on the CMS is 5-10× slower than WebP. The bandwidth
win is marginal for this site and the build time hit is severe (multi-minute
hangs on each new variant). Default formats are now `["webp", "jpeg"]` for
`ensureResponsiveImage`, in `Layout.astro`'s TopBanner hero, and in the
post-card helper. Callers can still opt back into AVIF per-call.

## Module split for client-safe types

`ResponsiveImage` is now defined in a tiny `rusty-image-types.ts` and
duplicated in `rusty-image.ts` so Svelte components can `import type` the
shape without dragging `rusty-image.ts` (and its `node:crypto`/`node:fs`
imports) into the browser bundle.

`resolvePostCardResponsive` lives in a new `server-image.ts` for the same
reason — `blog-utils.ts` is imported by Svelte islands, so its server-only
helpers move out.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-27 18:41:22 +02:00
Peter Meier e09bc4de2a feat(posts): search, upcoming events, RSS feed
Deploy to Firebase Hosting / deploy (push) Has been cancelled
- Client-side search on /posts/ (full archive, ~2-char threshold)
- Upcoming-events block at top of /posts/ from isEvent+eventDate posts
- RSS feed at /posts/rss.xml via @astrojs/rss
- Layout head: rss autodiscovery link
- RSS subscribe link below the listing
- Style tweaks on QuoteBlock and PostOverviewBlock
2026-04-14 15:43:34 +02:00
Peter Meier f5f6beeabe Add Formbricks configuration to environment files and update package dependencies
Deploy to Firebase Hosting / deploy (push) Failing after 1m26s
- Introduced new environment variables for Formbricks in .env.backup and .env.example.
- Updated package.json and yarn.lock to include React and related types for improved functionality.
- Added new favicon images and manifest for better branding and user experience.
- Implemented new Svelte components for enhanced content management, including Badge, Card, OrganisationsBlock, and OpnFormBlock.
- Updated ContentRows component to support new block types.
2026-04-05 20:50:23 +02:00
Peter Meier b40579ee0b Update dependencies in package.json and yarn.lock for improved functionality and performance. Added new API endpoints for 'navgroup' in cms-api.generated.ts, enhanced image URL handling in rusty-image.ts, and refined logo URL processing in Layout.astro. This update includes version upgrades for several packages, ensuring compatibility with the latest features and fixes.
Deploy to Firebase Hosting / deploy (push) Failing after 14s
2026-03-28 13:39:27 +01:00
Peter Meier daa4ea17b1 Update project configuration and enhance translation support. Added caching mechanism for CMS responses with a new script, updated .gitignore to include cache files, and introduced translation handling in various components. Enhanced package.json with new scripts for cache warming and deployment. Added new translation-related components and improved existing ones for better localization support. 2026-03-17 22:32:31 +01:00
Peter Meier 1f5454d04e Update environment configuration, enhance component functionality, and improve project structure. Added Umami analytics configuration to .env.example and updated astro.config.mjs to use the new site URL. Introduced pagination component in BlogOverview.svelte, refactored image handling in ImageGalleryBlock.svelte, and improved SearchableTextBlock.svelte with tooltip support. Updated package.json with new scripts for Firebase deployment and added new dependencies for Storybook and Firebase. Enhanced styling and layout across various components for better user experience. 2026-02-27 14:13:38 +01:00
Peter Meier bb6ec20d45 Enhance project structure and functionality by adding new components and integrations. Updated .gitignore to exclude history and transformed images. Integrated Svelte, sitemap, and icon support in astro.config.mjs. Added multiple new components including BlogOverview, ContentRows, Footer, Header, and various block components for improved content management. Updated package.json with new dependencies and modified scripts for build and development processes. 2026-02-22 12:14:43 +01:00
Peter Meier 054b5719e5 Initial commit: RustyAstro + OpenAPI-Typen aus RustyCMS
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 15:58:36 +01:00