Skip to main content

Blogsmith Pro Changelog

7.2.0 - 2025-05-10

  • New i18n features!

    • New content collection localization capabilities, where individual blog posts in different languages can be linked with a mappingKey in the frontmatter. This allows content collections to be easily translated without needing to update the routeTranslations object each time!

      • This is accomplished in the new localizedCollections object
      src/config/translationData.json.ts
      /**
      * * Content collection translations used by the language switcher and hreflang generator
      *
      * Per-collection, per-locale route base mapping (collections to localize are the keys)
      *
      * If you have a key of "blog" then the blog content collection will be localized. This will look
      * for a "mappingKey" in the entry metadata, and use that to map the entry to the correct locale
      *
      * You can use the locale value to map the collection to a different route if desired
      *
      * Note: this does NOT affect the getLocalizedRoute() function. To translate the base routes use the routeTranslations object
      */
      export const localizedCollections = {
      blog: {
      en: "blog",
      fr: "blog",
      },
      // Add more collections/locales as needed
      } as const;
    • Add wildcard support in the routeTranslations object, allowing you to map multiple routes at once.

      • For example, you could route all English category routes /categories/* to the base French route of /categories
      src/config/translationData.json.ts
      /**
      * * Route translations are used to translate route names for the language switcher component
      * This can be useful for SEO reasons. The key does not matter, it just needs to match between languages
      *
      * ## Notes
      *
      * - These routes must be everything after the base domain. So if this is "atlas.com/blog", the route would be "blog"
      * - Or if this is "atlas.com/legal/privacy", the route would be "legal/privacy"
      * - This also supports wildcards for language switcher and SEO purposes, and works in conjunction with the localizedCollections object below
      * - For example, "categories/*" would match "categories/1" or "categories/2" etc for that language.
      */
      export const routeTranslations = {
      en: {
      overviewKey: "overview",
      categoryKey: "categories",
      categoryKey2: "categories/*",
      categoryKey3: "categories",
      },
      fr: {
      overviewKey: "apercu",
      categoryKey: "categories",
      categoryKey2: "categories",
      categoryKey3: "categories/*",
      },
      } as const;
    • You’ll also find a new getLocalizedRoute() function as a drop-in replacement for getRelativeLocaleUrl(). This is more flexible as it utilizes the routeTranslations object to auto-translate routes for you in components. You can use it like this:

      import { getLocaleFromUrl } from "@/js/localeUtils";
      import { getLocalizedRoute } from "@/js/translationUtils";
      const currLocale = getLocaleFromUrl(Astro.url);
      const route = getLocalizedRoute(currLocale, "/overview");
      // for the above routeTranslations, this would become "/fr/apercu" for French
    • Adjust existing i18n config script to account for additional features

  • Change from tailwindcss-animate to tw-animate-css package

  • Lock package versions to limit potential issues with new package updates

  • Pagination fixes

  • Improve Prettier and ESLint setup

  • Update to Astro 5.7.12

  • Update other dependencies

7.1.1 - 2025-04-16

  • Fix: package versions now locked to limit potential issues with new package updates
  • Improve search component styling
  • Improve post card styling
  • Improve .prettierignore file
  • Upgrade to Astro 5.7.2
    • Removed experimental SVG setup in Astro config file as a result (it is now a stable feature)
  • Update other dependencies

7.1.0 - 2025-04-01

  • Add eslint
  • i18n script fixes
  • Upgrade to Astro 5.5.5
  • Update other dependencies

7.0.0 - 2025-02-16

  • Upgrade to Tailwind CSS v4
    • Removed sass dependency as a result. Everything is now only CSS
  • Implemented my own CSS file for rendered markdown content, making it easier to understand and customize
    • Removed @tailwindcss/typography dependency as a result
  • Improve search component styling and animation
  • Add a slew of extra components under src/components/starwind
  • Update code tours
  • Upgrade to Astro 5.3.0
  • Update other dependencies

6.0.1 - 2025-01-04

  • Add data-astro-reload on language switcher component so that pagefind works right when using ClientRouter
  • Fix table of contents component with Astro v5 updates
  • Additional small i18n improvements for Tags and Categories pages

6.0.0 - 2025-01-03

  • Upgrade to Astro 5.1.2
  • Fix id attributes in the NavDropdownToggle.astro component
  • Updated fonts to local installation via npm package to improve loading speed
  • Add hreflang links as meta tags to improve SEO for multi-language websites
  • i18n script improvements when using one language only
    • script now removes all getRelativeLocaleUrl() and text translation uses, simplifying the code
  • Keystatic unistall script improvement - detects your package manager and uses the appropriate uninstall command
  • Upgrade astro-icon
  • pnpm support
    • added .npmrc file with a few settings to enable pnpm local builds
    • removed package-lock.json and replaced with pnpm-lock.yaml
      • If you install with npm install a normal package-lock.json file will be created
  • Update prettier config file to be more strict (and help remove potential script issues if your setup differs)
  • Change versioning structure to the more standard major, minor, patch
  • Update other dependencies

5.2 - 2024-11-21

  • This update is YUGE. This adds new configuration scripts npm run config-i18n and npm run remove-keystatic
    • It is now incredibly easy to configure i18n features when starting a project, and remove keystatic features if desired
  • Enhance global.scss to remove usage of sass @import and use @use instead
    • The @import directive is being deprecated in Dart Sass and will be removed in future versions
  • Update playform/compress config setting to not optimize images or SVGs
    • In particular, using the image optimization here can dramatically increase build times for sites with many images, and astro:assets already handles it
  • Add vite config in astro.config.mjs to remove Dart Sass deprecation warning
    • This is not necessary, but it removes a minor annoyance
  • Update README
  • Update to Astro 4.16.13
  • Update other dependencies

5.1 - 2024-10-17

  • Updated NavLink.astro so that trailing slashes are removed from navbar links
    • This allows ID’s to be used in the navbar through the navData.json.ts files
  • Add fancier pagination component with more options, similar to The Void and Dawnlight themes
  • Enhance global.scss to remove usage of sass @import and use @use instead
    • The @import directive is being deprecated in Dart Sass and will be removed in future versions
  • Improve README
  • Update to Astro 4.16.5
  • Update other dependencies

5.0 - 2024-06-23

  • Add all i18n features originally seen in Atlas
    • Language switcher component
    • Keystatic CMS support for multiple languages
    • Translate routes
    • Utility functions to:
      • Translate text
      • Filter content collections by locale
      • Format dates in the correct locale
      • Get the current locale from the current URL
      • & more
  • Add additional columns to Keystatic interface which you can sort by
  • Adjust accordions so all other ones close when a new one is opened
  • Refactor src/icons folder to have a more organized structure. Also all used icons are now copied locally in this folder.
  • README updates
  • Update to Astro 4.11.0
  • Update other dependencies

4.2 - 2024-04-06

  • Add search component with Pagefind
  • Add “@keystatic/core” as dep in package.json to fix pnpm install issue
    • pnpm does not auto install peer dependencies
  • Add “rel” and “target” optional props to the <Button /> component to remove typescript errors
  • NavDropdown.astro and NavDropdownToggle.astro both now fade-out when closed
  • Keystatic Other Pages collection addition
  • Refactor so Keystatic components have their own ComponentBlocks.tsx file
    • Unclutters the keystatic.config.tsx file
  • Improve the “keystatic cms” code tour
  • Update to Astro 4.5.16
  • Update other dependencies

4.1 - 2024-03-02

  • Fix bug in src/components/Nav.astro where dropdown menus on mobile were not working right with “transition:persist”
    • Removed “transition:persist” from the nav component
  • Refactor various pages to ensure correct padding on mobile devices

4.0 - 2024-03-02

  • Add Keystatic CMS integration for blog posts and authors content collections
    • This adds a great interface with rich text editor for easy content editing
    • This is largely in addition to the existing MDX blog setup, and you can still just use the MDX blog if you prefer
      • Folder structure is unchanged
  • Update to Astro 4.4.8
  • Update other dependencies

3.2 - 2024-02-16

  • Revamped scroll animations
    • New animations, improved performance, and reduced bundle size
    • See the animations documentation for more information
    • If you need assistance upgrading, send us a message for support
  • Remove transform-gpu class to replace with tailwind transform-gpu class
  • Improved TableOfContents.astro components
    • Now with better highlighting and scroll margin top
  • Update to Astro 4.4.0
  • Update other dependencies

3.1 - 2024-01-24

  • Add Sharp override to package.json file
    • This fixes a build issue with conflicting Sharp versions on linux

3.0 - 2024-01-16

  • Add scroll based animations to the hero sections. These are enabled by default
    • They can be disabled by setting useAnimations = false in src/config/siteData.json.ts
    • They can easily be extended to other sections of the site
  • Add cookie banner component, for use with GA4 or other cookie based analytics
    • Cookie banner is disabled by default. To enable it, uncomment the CookieBanner component in src/layouts/BaseLayout.astro
  • All components now use class instead of classes prop for any extra classes to pass to the component
  • Improve responsiveness of related posts at the bottom of each blog post
  • SEO component cleanup
  • Update to Astro 4.1.2
  • Update other dependencies

2.0 - 2023-12-22

  • Refactor all pages such that every page uses BaseLayout.astro, including the homepage
    • This makes it easier add global scripts and styles
    • Previously, the homepage was styled differently to allow for the full-width hero section. Now, the homepage uses the same layout as all other pages, but the hero section is still full-width
  • Now get headings for blog post sidebar from Astro’s post.render() instead of my own function
  • Update <NavDropdownToggle /> component with better accessibility and functionality. This is an alternative to the default nav dropdown on hover. You can change to this inside the src/components/Nav.astro file
  • Update pagination component
  • Update dependencies

1.2 - 2023-12-10

  • Update to Astro 4.0.3
  • Update other dependencies

1.1 - 2023-11-17

  • Safari fixes with blurred elements. It is strongly recommended to download the latest version of the theme and update your project.
  • Update dependencies

1.0 - 2023-10-28

  • Initial release