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