Skip to content

Releases: DimwitLabs/ode

v1.4.4

28 Feb 10:29

Choose a tag to compare

Added

v1.4.3

27 Feb 21:33

Choose a tag to compare

Changed

  • Ode will now move from DeepanshKhurana/ode to DimwitLabs/ode. Please ensure you update your docker-compose.yml for the new url which will be under ghcr.io/dimwitlabs/ode:<tag>. This version functionally changes nothing except this information. v1.4.4 is planned to be from the new url. In that case, ghcr.io/deepanshkhurana/ode:latest will point to v1.4.3 while ghcr.io/dimwitlabs/ode:latest will continue to get updates.

v1.4.2

27 Feb 11:36

Choose a tag to compare

Changed

  • OG images now generate asynchronously in background after build completes, allowing site to start serving immediately.

Fixed

  • Cache headers for dynamic content (config.yaml, content/, generated/index/, feed.xml) in nginx and Vercel configs.
  • RSS feed now correctly handles date-only entries with local timezone.
  • Sidebar piece count now reflects actual count from pieces.json.

v1.4.1

26 Feb 00:48

Choose a tag to compare

Added

  • Configurable Body of Work page: bodyOfWork.title and bodyOfWork.slug fields in config.yaml.

Fixed

  • 502 error page now correctly uses theme from ui.theme.preset instead of defaulting to journal.
  • Deployment script now polls host filesystem for 502 page instead of waiting for container build.

v1.4.0

25 Feb 23:53

Choose a tag to compare

Added

Metadata (#14)

  • Social card preview system with OG image generation using satori and @resvg/resvg-js.
  • Pre-rendered meta pages for bots (WhatsApp, LinkedIn, Twitter, Facebook, etc.) with full og:* and twitter:* tags. Note that the tags work according to bot lists and would not be readily available on an online checker. However, curling the bots with a User-Agent e.g. curl -H "User-Agent: WhatsApp/2.0"... can be a good way to test. This works across nginx as well as Vercel. Configurations for both are provided in the repository as nginx/ and vercel.json.
  • Content-based meta descriptions: first 160 characters extracted from markdown content with formatting stripped.
  • Reader URL bot support: /reader/:collection?piece=:slug serves appropriate meta pages to bots. The page is selected to be the piece the reader is currently reading.
  • Custom bodyOfWork.description field in config.yaml for body-of-work page social preview.
  • nginx configuration templates in nginx/ directory with setup instructions.
  • OG images generated at 1200x630px with theme-specific styling.

502 Error Page for nginx (#19)

  • Themed 502 error page generation with customizable text via config.yaml's redeployPage section.
  • The theme respects all settings e.g. defaultMode, lowercase and overrides enabled in config.yaml.
  • 502 page served from persistent host location (survives container restarts).
  • Configuration settings are available in the nginx/ directory's base template.
Ode's 502 error page template

Here's what it looks like for my own site, fully customised. No more ugly 502 pages!

Changed

  • Improved GitHub Actions deployment documentation in WRITING.md with SSH key setup guide. (#18)

Fixed

  • Numeric values in config.yaml (e.g., 404) now handled correctly. (#17)

Removed

  • react-helmet dependency (using React 19 native meta tags).

v1.2.9

21 Feb 20:38
1b7246a

Choose a tag to compare

Changed

  • Moved auto-generated files to public/generated/ subdirectory for cleaner structure.

v1.2.8

20 Feb 09:12

Choose a tag to compare

Fixed

  • Duplicate meta tags in <head> caused by hardcoded tags in index.html conflicting with dynamically added tags from Layout.jsx and react-helmet in Header.jsx.

v1.2.7

17 Feb 09:38

Choose a tag to compare

Strong background improvements in this release with a lot of things you may not even see but the site needs to work properly. These came because I keep using ode on my own writing archive journal.coffee. This will always be a guarantee. I will use it and update ode whenever I see an issue.

Added

  • Development workflow with :development Docker tag for testing changes without affecting :latest users.
  • Automatic robots.txt generation during build process with sitemap URL from config.yaml. (#12)
  • Support for description field in piece frontmatter for RSS feed descriptions (with fallback to first line of content). (#11)
  • Routing support for /feed/, /sitemap/, /robots, and /robots.txt in both nginx and Vercel configurations. (#12)
  • Version badge (v1.2.7) in documentation site navbar.

Changed

  • RSS feed <link rel="self"> now correctly points to /feed.xml instead of /feed. (#11)
  • Footer styling restructured for better alignment on large displays - border now on article element with footer integrated into HomepageViewer component. (#13)
  • Vercel rewrite rules optimized with specific routes ordered before catch-all pattern.

Fixed

  • RSS feed validation errors: removed invalid managingEditor field (was not in email format). (#11)
  • RSS feed item structure: <description> now appears before <content:encoded> per RSS 2.0 best practices. (#11)
  • Footer border extending beyond content on larger displays due to float-based alignment. (#13)
  • ⚠️ Some changes were removed during a rebase. They were brought back as well.

Removed

  • managingEditor field from RSS feed generation (optional field causing validation warnings). (#11)

v1.2.5

27 Dec 14:15

Choose a tag to compare

Added

  • New landing page at ode.dimwit.me with links to live demo, documentation, and repository.
  • Official documentation site powered by Docusaurus, featuring automated root markdown synchronization and search for easy access.

v1.2.2

01 Dec 06:33

Choose a tag to compare

Fixed

  • Responsive horizontal margins now scale smoothly across existing intermediate breakpoints (xl, lg) to prevent excessively large margins on tablets and narrow desktop windows. (#3)