All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Multi-language Post Support:
- Integrated cross-language linking for posts using the new
translatedPostsfrontmatter field. - Added
LanguageSelectorcomponent to post pages for easy switching between translations. - Automatic language flags and labels for translated content.
- Updated "How to Publish Posts" documentation with multi-language guide.
- Added English and Russian demo posts to demonstrate cross-linking.
- Integrated cross-language linking for posts using the new
- Astro 6 Compatibility:
- Migrated content collection configuration to the new standard location:
src/content.config.ts. - Removed legacy
src/content/config.tsto adhere to Astro 6 strict mode requirements. - Verified removal of all deprecated content layer features (legacy
entry.slug, etc.).
- Migrated content collection configuration to the new standard location:
- Dependencies: Removed unused
astro-og-canvaspackage to reduce dependency footprint.
1.2.4 - 2026-02-01
- Configurable Hero Section:
- Moved hero text to
site/hero.mdfor easy editing. - Added markdown support for line breaks and formatting in the intro.
- Preserved existing styling while allowing dynamic content.
- Moved hero text to
- Consolidated Assets:
- Merged
site/publicintosite/assetsto simplify project structure. - Updated configuration to use
site/assetsas the single source for static and processed assets.
- Merged
1.2.3 - 2026-02-01
- Performance Optimizations:
- Flattened Critical Path: Inlined
@font-facedefinitions to remove CSS-request chaining. - Refactored Footer: Converted from Svelte to Astro to eliminate unnecessary client-side hydration.
- Mitigated Forced Reflows: Optimized theme synchronization to avoid redundant DOM writes during hydration.
- Resource Hints: Added
preconnectfor Google Tag Manager andswapfallback for View Transitions.
- Flattened Critical Path: Inlined
- Home Page Appearance Flags: Added missing language indicators for the "Talks & Appearances" section on the index page.
- Type Safety: Fixed implicit
anytype in post filtering utility.
1.2.2 - 2026-02-01
- Custom Post Slugs:
- Full support for
slugfield in frontmatter (e.g.,/posts/my-title). - Automated fallback to date-slug format (
YYYY-MM-DD-filename) if no slug is provided. - Updated all systems (RSS, Search, OG-images) to respect custom identifiers.
- Full support for
- Expanded Global Language Support:
- Added support for 40+ global languages (PL, BE, KK, TR, AR, HI, JA, etc.).
- Support for both
ukanduacodes for Ukrainian language.
- Home Page Appearance Flags: Added missing language indicators for the "Talks & Appearances" section on the index page.
1.2.1 - 2026-02-01
- Initial Multi-language Support:
- Added
langfield to posts and appearances (defaults toen). - Visual color flags for non-English content in lists and pages.
- Dynamic
html langand JSON-LDinLanguagemetadata for SEO.
- Added
- Google Tag Manager (GTM) Support:
- Native support for both
GTM-XXXXandG-XXXXIDs. - Performance-optimized via Partytown (zero main-thread impact).
- Included
<noscript>fallback for maximum compatibility.
- Native support for both
- Premium 404 Page: Custom, animated Error 404 page for better user retention.
- Architecture Reorganization:
- Assets moved from
public/tosite/public/for cleaner engine/content separation. - User media moved to
site/assets/with a new@/site-assetsalias.
- Assets moved from
- SEO Optimization: Replaced static
robots.txtwith a dynamic API endpoint.
- Giscus Theme Hydration: Fixed internal script injection warning in Comments component.
- Content Hierarchy: Standardized H1 usage across all templates for better search ranking.
1.2.0 - 2026-02-01
-
Draft Posts:
- Added
draftfield to posts schema (boolean, default: false). - Draft posts are visible only in development mode with prominent amber "DRAFT" badge.
- Draft posts are completely hidden in production builds.
- Visual indicators appear both in post lists (PostCard) and individual post pages.
- Added
-
Publication Date Filtering:
- Created
getPublishedPosts()utility function for smart post filtering. - Posts with future publication dates are hidden in production, visible in development.
- Allows scheduling posts by setting future
pubDate. - Development mode shows all posts regardless of date or draft status for easy preview.
- Created
-
CTA (Call-to-Action) Blocks:
- Added customizable CTA block system for blog posts.
- CTA content managed via
site/cta.mdmarkdown file. - Global toggle in
site/config.tswithcta.enabledoption. - Per-post control via
showCTA: falsefrontmatter option. - Compact, visually appealing design with proper typography and spacing.
-
Comments System (Giscus):
- Integrated Giscus for GitHub Discussions-powered comments.
- Full configuration in
site/config.tswith theme matching. - Per-post toggle via
showComments: falsefrontmatter option. - Privacy-friendly, no tracking, uses GitHub authentication.
-
Homepage Configuration:
- Added
featuredPostsCountoption (controls featured posts display). - Added
latestPostsCountoption (controls latest posts display). - Configurable in
site/config.tsfor flexible homepage layouts.
- Added
-
Comprehensive Documentation:
- Created "How to Publish Posts in Spaceship" guide post.
- Created "Configuring Spaceship" guide post.
- Updated README.md with new features and quick start guide.
- Added documentation links in README to in-app guides.
-
Content Collections Schema:
- Added
draft: z.boolean().default(false)to posts schema. - Added
showCTA: z.boolean().default(true)to posts schema. - Added
showComments: z.boolean().default(true)to posts schema.
- Added
-
Post Filtering:
- Replaced all
getCollection('posts')calls withgetPublishedPosts()for consistent filtering. - Updated RSS feed, search API, OG images, and all page templates.
- Ensured draft and future posts never leak into production RSS or search indexes.
- Replaced all
-
Visual Design:
- Added amber/yellow color scheme for draft indicators (accessible and distinct).
- Enhanced post header layout to accommodate draft badge.
- Improved list item styling in CTA blocks with proper bullet points.
-
Tailwind CSS v4 Compatibility:
- Removed
@applydirectives from CTABlock component (not supported in Tailwind v4). - Converted to vanilla CSS with proper responsive utilities.
- Removed
-
CTA Block Styling:
- Made CTA blocks more compact by reducing font sizes, line heights, and spacing.
- Fixed bullet points display in CTA lists with proper
list-style: discand padding.
- Mobile Optimization (100/100): Resolved critical hydration bottlenecks on mobile devices.
- Converted
Headerfrom Svelte to Astro to eliminate 40kB+ of hydration payload. - Removed
astro-loading-indicatorto fix a 31ms "Forced Reflow" penalty during initial paint. - Optimized hydration strategy for
ThemeToggleandSearchusingclient:idle.
- Converted
- Accessibility: Improved contrast ratios for project type badges ("Open Source", "Social") in dark mode to meet WCAG AAA standards.
- Search Lazy Loading: Refactored
SearchModalto dynamically import the dialog component only upon interaction.- Reduces initial bundle size.
- Eliminates critical request chaining for off-screen/hidden UI elements.
- Restores Lighthouse Performance score to 100.
- Mermaid Diagrams: Fixed styling issues in dark mode and resolved layout artifacts.
- Ensured edge labels are visible and correctly styled in both themes.
- Removed "phantom" labels (
L_D_F_0) causing visual glitches. - Improved text contrast on colored nodes.
1.1.0 - 2026-01-31
- Lighthouse 100/100/100/100: Achieved perfect scores across Performance, Accessibility, Best Practices, and SEO.
- Font Preloading: Implemented critical font preloading for
OutfitandInter Variableto eliminate request chains and reduce LCP. - Responsive Images: Optimized profile and hero images with multi-resolution scaling using Astro's
widthsandsizes.
- Accessibility Overhaul:
- Increased minimum font sizes to 12px (
text-xs) across all navigational and metadata elements. - Hardened color contrast ratios to pass WCAG AAA (Zinc-900 for muted text).
- Improved link descriptions for screen readers and SEO (e.g., "See all posts" instead of "See all").
- Increased minimum font sizes to 12px (
- Header Refinement:
- Redesigned header to gracefully handle long site titles without layout breakage.
- Compacted navigation layout and gaps for better screen space efficiency.
- Improved typography tracking for better legibility on high-resolution displays.
- Open Graph (OG) Previews: Fixed absolute URL generation for social sharing previews by correctly configuring the production domain.
- Navigation Layout: Resolved layout breakage on medium-sized screens (1024px) when using long site titles.
1.0.1 - 2026-01-31
- Fixed a security vulnerability in transitive dependency
lodash-esby forcing version4.17.23viapnpm.overrides.
1.0.0 - 2026-01-31
- Astro 5 Content Layer: Fully migrated to the new Content Layer API.
- Linked posts and projects using
idinstead ofslug. - Updated content rendering to use the new
render()function fromastro:content. - Corrected collection loader paths in
src/content/config.ts.
- Linked posts and projects using
- Svelte 5 Reactivity: Refactored components to use Svelte 5 runes (
$state,$props,$effect).- Improved
SearchModalfocus logic and reactivity. - Simplified
HeaderandSearchcomponent communication by removing redundant props.
- Improved
- Dependencies: Upgraded core dependencies to latest versions:
astroto^5.17.1svelteto^5.49.1svelte-checkto^4.3.6lefthookto^2.0.16
- Type Safety: Resolved numerous TypeScript errors related to implicit
anytypes in RSS and OG image generation. - Tooling: Fixed
astro:loadertype resolution issues insrc/content/config.ts. - Formatting: Corrected style issues in
site/assets/site.webmanifest. - Documentation: Updated
README.mdwith correct repository links.
- Search Functionality: Finalized the site-wide search indexing using Astro 5 Content Layer identifiers.
- Pre-push Hooks: Configured Lefthook to run linting and type-checking before every push.