commits
- Added domain-specific terms to .cspell.json, including 'ACTIVITYPUB', 'changefreq', 'urlset', and 'Scrobbles'.
- Reformatted ignorePaths and ignoreRegExpList in .cspell.json to use multi-line arrays for better readability.
- Removed a trailing comma in src/lib/data/slug-mappings.ts to enforce consistent code style.
Removed the lengthy inline configuration section from README.md to reduce redundancy.
- Replaced detailed setup steps with a link to the new CONFIGURATION.md.
- Simplified the 'Quick Start' instructions to four concise steps.
- Fixed minor indentation formatting in the slug mapping example.
Created a new CONFIGURATION.md file to serve as the central source of truth for site setup.
This guide includes:
- Prerequisites including Node.js and AT Protocol DIDs.
- Detailed environment variable setup for .env.local.
- Instructions for mapping URL slugs to Leaflet publication rkeys.
- Steps for customizing static files like robots.txt, sitemap.xml, and favicons.
- Advanced configuration for optional features like WhiteWind and Slingshot.
- A comprehensive troubleshooting section for common issues.
Bump versions in THIRD-PARTY-LICENSES.txt for:
- hls.js 1.6.14 → 1.6.15
- esrap 2.1.0 → 2.1.3
- magic-string 0.30.19 → 0.30.21
- @atproto/api 0.17.2 → 0.18.1
- @lucide/svelte 0.545.0 → 0.554.0
- tlds 1.260.0 → 1.261.0
- @sveltejs/acorn-typescript 1.0.6 → 1.0.7
Text-centre the page heading and adjust paragraph dark-mode colour for consistency
Replace wrap-wrap-break-word with more standard wrap-break-words and break-all for better text overflow handling
Introduce fetchProfile on mount, show avatar/placeholder, adjust site title hover behaviour, update mobile menu and nav icon rendering
- Create InternalCard component for consistent list item styling
- Standardise padding: p-6 for containers, p-4 for list items
- Standardise spacing: mb-4 for sections, space-y-3 for lists, gap-3 for flex
- Fix flex overflow with flex-1 min-w-0 pattern
- Remove responsive padding variations for consistency
- Refactor BlogPostCard, LinkCard, TangledRepoCard to use InternalCard
- Update MusicStatusCard, PostCard, ProfileCard, BlueskyPostCard spacing
- Eliminate conditional spacing that caused unnecessary whitespace
- Add hamburger menu for mobile devices (< md breakpoint)
- Replace inline SVGs with Lucide icons (Menu, X)
- Fix Svelte 5 runes mode deprecation (use @const instead of svelte:component)
- Show full navigation labels in mobile dropdown
- Add active state highlighting in mobile menu
- Improve responsive title sizing with clamp()
- Tighter spacing on mobile (px-3 py-3)
- Auto-close menu on navigation
- Create reusable fetchAllRecords utility with cursor-based pagination
- Add fetchAllUserRecords convenience function
- Refactor archive page to use new pagination utilities
- Ensures all posts are fetched (not limited to 100)
- Add proper TypeScript types (AtProtoRecord interface)
Update wrapping utilities on home page and make archive header text-centred for better visual balance
Replace break-words with wrap-break-word / wrap-break-word variants and use shrink-0 for icons where applicable to improve text wrapping and layout consistency
Collapse ignorePaths and ignoreRegExpList to inline arrays and compact svelte override regex list
Add archive UI with search/filters/pagination and loader fetching external posts with URL mapping and fallbacks
Add badges helper, posts filter/group/sort helper and locale/date formatting utilities
Add BlogPostCard, Dropdown, Pagination, PostsGroupedView, SearchBar, Tabs and export them from ui index
Replace gradient utility with bg-linear-to-r and add wrap-break-words to description
Add 'organised' to word list and normalise ignorePaths / ignoreRegExpList formatting
- Switched +page.svelte from a fixed grid to Tailwind’s column-based masonry layout.
- Wrapped each card in a break-inside-avoid container and added spacing for smoother flow.
- Improves responsiveness and visual rhythm across viewports.
- Added `"peer": true` to various dependencies to better reflect their intended
relationship and improve resolver behaviour.
- No runtime changes; lockfile metadata only.
- Removed autoscroll refs, container, and checkOverflow logic
- Replaced scrolling track/artist/album text with standard text wrapping
- Consolidated and updated icons (Music, Disc3, Users, Album, Clock, Radio)
- Simplified image error handling and artwork fallback
- Cleaned up DOM structure and class usage for better readability and maintainability
The AT Protocol uses UTF-8 byte indices for facets, but JavaScript's
String.slice() operates on UTF-16 code units. This caused mentions to
shift when multi-byte characters (emojis, accented chars) appeared
before them.
Now using TextEncoder/TextDecoder to properly handle byte-level
slicing for accurate facet positioning.
- Rebrand project title and clarify that it’s a template, not a single site
- Add full “Configuration” section with env vars, slug mappings, and asset notes
- Improve getting started steps and fix numbered lists
- Clean up formatting (remove trailing spaces, consistent list markers)
- Expand platform documentation and usage examples
- Update licence, links, and troubleshooting sections for accuracy
Replace lifecycle hooks (onMount/onDestroy) with $effect rune and convert
reactive state variables to use $state rune for Svelte 5 compatibility.
- Added domain-specific terms to .cspell.json, including 'ACTIVITYPUB', 'changefreq', 'urlset', and 'Scrobbles'.
- Reformatted ignorePaths and ignoreRegExpList in .cspell.json to use multi-line arrays for better readability.
- Removed a trailing comma in src/lib/data/slug-mappings.ts to enforce consistent code style.
Created a new CONFIGURATION.md file to serve as the central source of truth for site setup.
This guide includes:
- Prerequisites including Node.js and AT Protocol DIDs.
- Detailed environment variable setup for .env.local.
- Instructions for mapping URL slugs to Leaflet publication rkeys.
- Steps for customizing static files like robots.txt, sitemap.xml, and favicons.
- Advanced configuration for optional features like WhiteWind and Slingshot.
- A comprehensive troubleshooting section for common issues.
- Create InternalCard component for consistent list item styling
- Standardise padding: p-6 for containers, p-4 for list items
- Standardise spacing: mb-4 for sections, space-y-3 for lists, gap-3 for flex
- Fix flex overflow with flex-1 min-w-0 pattern
- Remove responsive padding variations for consistency
- Refactor BlogPostCard, LinkCard, TangledRepoCard to use InternalCard
- Update MusicStatusCard, PostCard, ProfileCard, BlueskyPostCard spacing
- Eliminate conditional spacing that caused unnecessary whitespace
- Add hamburger menu for mobile devices (< md breakpoint)
- Replace inline SVGs with Lucide icons (Menu, X)
- Fix Svelte 5 runes mode deprecation (use @const instead of svelte:component)
- Show full navigation labels in mobile dropdown
- Add active state highlighting in mobile menu
- Improve responsive title sizing with clamp()
- Tighter spacing on mobile (px-3 py-3)
- Auto-close menu on navigation
- Removed autoscroll refs, container, and checkOverflow logic
- Replaced scrolling track/artist/album text with standard text wrapping
- Consolidated and updated icons (Music, Disc3, Users, Album, Clock, Radio)
- Simplified image error handling and artwork fallback
- Cleaned up DOM structure and class usage for better readability and maintainability
The AT Protocol uses UTF-8 byte indices for facets, but JavaScript's
String.slice() operates on UTF-16 code units. This caused mentions to
shift when multi-byte characters (emojis, accented chars) appeared
before them.
Now using TextEncoder/TextDecoder to properly handle byte-level
slicing for accurate facet positioning.
- Rebrand project title and clarify that it’s a template, not a single site
- Add full “Configuration” section with env vars, slug mappings, and asset notes
- Improve getting started steps and fix numbered lists
- Clean up formatting (remove trailing spaces, consistent list markers)
- Expand platform documentation and usage examples
- Update licence, links, and troubleshooting sections for accuracy