{
  "version": "https://jsonfeed.org/version/1",
  "title": "Release-Notes on enumerator.dev",
  "icon": "<no value>",
  "home_page_url": "https://enumerator.dev/",
  "feed_url": "https://enumerator.dev/feed.json",
  "items": [
      {
        "id": "https://enumerator.dev/willow-camp-updates-october-7-2025/",
        "title": "willow.camp Updates - October 7, 2025",
        "content_html": "<p>I&rsquo;ve spent most of my willow.camp work on finding a new backend language. But I&rsquo;ve still updated the Rails app! Here&rsquo;s what&rsquo;s changed since my last update.</p>\n<ul>\n<li>Moved HTML storage out of the <code>post</code> table and into <code>ActionText</code>. It was this deep dive that made me question using Rails. I went down a long rabbit hole, finding a good text editor and then realized this work felt more like building Ikea furniture than I wanted. I&rsquo;m more interested in having access to the application end-to-end than plugging parts together. Anyway, in the meantime, your posts are now stored in an ActionText table.</li>\n<li>Prevented email enumeration attacks by returning an ambiguous error on sign-up. This is my pet peeve with Devise, and I am a bit embarrassed I let this live in production for so long. Previously, the sign-up form would indicate if an email address had already been taken. Since I can&rsquo;t guarantee people use unique passwords, this means an attacker could use a leaked email/password list to access accounts that use poor password hygiene. No more! I&rsquo;ve done my best to give ambiguous, helpful messages when something is wrong on the signup page.</li>\n<li>Updated dependencies! A whole bunch of Ruby Gems and npm packages got minor version bumps.</li>\n<li>Fixed CI errors with vips. This is minor but tests were failing in CI because vips wasn&rsquo;t installed on the machine.</li>\n<li>Cleaned up the Hanami directory. There was a day when I was convinced Hanami was the next framework for willow.camp, and I started a migration in its own directory.</li>\n<li>Cleaned up image things I was trying out with images and media handling.</li>\n</ul>\n",
        "date_published": "2025-10-07T11:25:05+00:00",
        "url": "https://enumerator.dev/willow-camp-updates-october-7-2025/",
        "tags": ["willow-camp","release-notes"]
      },
      {
        "id": "https://enumerator.dev/willow-camp-updates-september-21-2025/",
        "title": "willow.camp Updates September 21, 2025",
        "content_html": "<p>Quiet on the updates this week. I could rename &ldquo;Major Features&rdquo; to &ldquo;Major Worries&rdquo; because I&rsquo;ve spent more time worrying about how images should work than testing them with real users!</p>\n<p>I enabled image uploads on the <a href=\"github.com/avo-hq/marksmith\">marksmith</a> text editor this week, and a few people tested it out for me. Turns out marksmith doesn&rsquo;t work how I thought it would with images. Image uploads are still enabled, but I&rsquo;m going back to the drawing board with the editor UI and media management.</p>\n<h2 id=\"major-features\">Major Features</h2>\n<ul>\n<li>Image storage and processing functionality with Active Storage integration, direct uploads, and automatic image processing</li>\n<li>I heard you like willow.camp. How about deleting willow.camp? You can now delete your blog and account if you&rsquo;d like. This will delete all your data and is irreversible. The option is there if you need it.</li>\n</ul>\n<h2 id=\"improvements\">Improvements</h2>\n<ul>\n<li>Enhanced navigation to only show blog title or subdomain in menu</li>\n<li>Updated testing configuration for quieter pre-commit output</li>\n<li>Removed social_share_image functionality</li>\n</ul>\n<h2 id=\"security--dependencies\">Security &amp; Dependencies</h2>\n<ul>\n<li>Updated JavaScript dependencies</li>\n<li>Updated Ruby gem dependencies</li>\n<li>Added new license file</li>\n</ul>\n",
        "date_published": "2025-09-21T12:58:00+00:00",
        "url": "https://enumerator.dev/willow-camp-updates-september-21-2025/",
        "tags": ["willow-camp","release-notes"]
      },
      {
        "id": "https://enumerator.dev/willow-camp-updates-september-7-2025/",
        "title": "willow.camp Updates September 7 2025",
        "content_html": "<p>It&rsquo;s been a busy month! I took some time off for a much-needed vacation and forgot to post about willow.camp. I&rsquo;ve worked on some fun features in the past few weeks.</p>\n<h2 id=\"new-features\">New Features</h2>\n<ol>\n<li>Favicons now use <a href=\"https://openmoji.org/\">OpenMoji</a> emojis! I think these are adorable icons. I have a few qualms with how they fit in the willow.camp design (they&rsquo;re all a little bottom-heavy), but it&rsquo;s not a deal breaker.</li>\n<li>New favicon picker! You can now search for an emoji by name to pick for your blog.</li>\n<li>Now you can have two blogs! You can click on the profile icon and add a second blog. I&rsquo;m going to use this to document my garden and remind myself what I want to do next year.</li>\n</ol>\n<p>I also fiddled around with auto-generating OG images for each blog. I wrote a script that uses your OpenMoji favicon and your blog&rsquo;s colours to create an Open Graph image for your blog.</p>\n<p>Here&rsquo;s what the tiled image looks like for enumerator.dev.</p>\n<p><img src=\"/tiled_1F3D5_1200x630.png\" alt=\"willow.camp tile\"></p>\n<p>Ultimately, the best approach for images is to enable users to upload them instead of doing some clever auto-generation. I&rsquo;m going to put this on my project board and figure out how to do it. Since storage costs me, I might need to change the license on willow.camp and start charging for image uploads.</p>\n<p>Here is the Claude-generated summary of the last few weeks.</p>\n<h2 id=\"summary---august-17---september-7-2025\">Summary - August 17 - September 7, 2025</h2>\n<h3 id=\"major-features\">Major Features</h3>\n<ul>\n<li><strong>Multi-Blog Support</strong>: Complete implementation of &ldquo;Two Blogs per User&rdquo; feature (<a href=\"https://github.com/cassiascheffer/willow_camp/commit/a33fdaa9eec42e4f9e046653886963ce2a986dcc\">#85</a>) - Major architectural change allowing users to have multiple blogs instead of a single-tenant structure</li>\n<li><strong>OpenMoji Favicon System</strong>: Implemented comprehensive emoji favicon selector with search functionality using OpenMoji library (<a href=\"https://github.com/cassiascheffer/willow_camp/commit/2d13fd2e318339b77cf0068a0dd0b945896e44bd\">2d13fd2e</a>)</li>\n</ul>\n<h3 id=\"improvements\">Improvements</h3>\n<ul>\n<li><strong>OG Image Generation</strong>: Added automated Open Graph image generation scripts (<a href=\"https://github.com/cassiascheffer/willow_camp/commit/29ba2359fdd5b761d0cf995fbc3f8153e24a5c3f\">29ba2359</a>, <a href=\"https://github.com/cassiascheffer/willow_camp/commit/290f237256be0ff7f1ab7ddc100cbb82eef751d5\">290f2372</a>)</li>\n</ul>\n",
        "date_published": "2025-09-08T00:20:35+00:00",
        "url": "https://enumerator.dev/willow-camp-updates-september-7-2025/",
        "tags": ["willow-camp","release-notes"]
      },
      {
        "id": "https://enumerator.dev/willow-camp-release-notes-week-of-jul-19/",
        "title": "willow.camp Release Notes Week of Jul 19",
        "content_html": "<h2 id=\"features-added\">Features Added</h2>\n<ul>\n<li>Live markdown preview functionality using &ldquo;Preview Post&rdquo; button at the bottom. This is better than the Marksmith &ldquo;Preview&rdquo; beside &ldquo;Write&rdquo; because it shows the rendered site.</li>\n<li>Automatic dark mode detection for Marksmith editor which is better than before but still needs work</li>\n<li>Enhanced tag selection using the Choices.js library. Yay! I learned something about importing and CSS variables here. I&rsquo;ll write a post on this soon.</li>\n<li>API documentation link added to settings page.</li>\n<li>Post footer feature with conditional display (hidden on about page). Find this on your settings page.</li>\n<li>Tag functionality with tag counts and improved UI. I still want to work on this a bit.</li>\n</ul>\n<p>Thanks to <a href=\"https://wondering.willow.camp/\">Mark</a> for a few of these suggestions!</p>\n<h2 id=\"bug-fixes\">Bug Fixes</h2>\n<ul>\n<li>Draft post handling - Skip OG published_time tag for draft posts and allow nil dates</li>\n<li>Colour fixes for UI elements</li>\n<li>Landing page navigation - Fixed redirect behaviour when logged-in users visit the home page</li>\n<li>Production optimization - Conditionally preload the app only in the production environment, fixes dev env hanging sometimes.</li>\n<li>JSON error handling - Return 404 for JSON requests to non-existent resources</li>\n<li>Accessibility updates for blog interface and voiceover support. <a href=\"https://letterbird.co/cassia\">Feedback please!</a> I&rsquo;m new to a11y and would love to know how to make this better.</li>\n</ul>\n<h2 id=\"performance--maintenance\">Performance &amp; Maintenance</h2>\n<ul>\n<li>Test optimization - <a href=\"/speeding-up-willow-camp-s-post_test-rb-by-99\">Reduced markdown content in slow Mermaid tests</a></li>\n<li>Parallel testing is temporarily disabled for stability (on my machine ☹️)</li>\n<li>Security update - Brakeman updated from 7.0.2 to 7.1.0</li>\n<li>Code quality - Multiple linting fixes applied</li>\n<li>Documentation - Added CLAUDE.md project instructions</li>\n</ul>\n",
        "date_published": "2025-07-20T18:13:00+00:00",
        "url": "https://enumerator.dev/willow-camp-release-notes-week-of-jul-19/",
        "tags": ["willow-camp","release-notes"]
      }
  ]
}
