<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: stuart</title>
    <description>The latest articles on DEV Community by stuart (@stuartromanek).</description>
    <link>https://dev.to/stuartromanek</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2958432%2Fba16a2cd-eae3-4c30-b801-e8bc6218c7f8.jpg</url>
      <title>DEV Community: stuart</title>
      <link>https://dev.to/stuartromanek</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stuartromanek"/>
    <language>en</language>
    <item>
      <title>ApostropheCMS 4.18.0: Better Conditional Fields, Image Links in Rich Text &amp; Widgets, plus a New Default Rich Text Toolbar</title>
      <dc:creator>stuart</dc:creator>
      <pubDate>Wed, 11 Jun 2025 16:56:28 +0000</pubDate>
      <link>https://dev.to/stuartromanek/apostrophecms-4180-better-conditional-fields-image-links-in-rich-text-widgets-plus-a-new-981</link>
      <guid>https://dev.to/stuartromanek/apostrophecms-4180-better-conditional-fields-image-links-in-rich-text-widgets-plus-a-new-981</guid>
      <description>&lt;p&gt;Hello Apostrophe Community!&lt;/p&gt;

&lt;p&gt;Apostrophe 4.18.0 continues our commitment to improving the editorial experience with more options for conditional fields, easy image linking, and expanded rich text editing tools and styles.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/zsB9RfLO62M"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Conditional Fields with Enhanced Query Capabilities
&lt;/h2&gt;

&lt;p&gt;This release introduces enhancements to conditional field logic, giving developers more precise control over when fields appear in editing interfaces. Conditional fields now support &lt;code&gt;following&lt;/code&gt;, enabling fields to be conditionally displayed based on values within deeply nested objects or arrays.&lt;/p&gt;

&lt;p&gt;Additionally, conditional fields now support dot notation for conditionals like array length and MongoDB-like query operators including &lt;code&gt;$gt&lt;/code&gt;, &lt;code&gt;$gte&lt;/code&gt;, &lt;code&gt;$lt&lt;/code&gt;, and &lt;code&gt;$lte&lt;/code&gt;. This enhancement applies to all conditional fields, allowing developers to create more focused editing interfaces throughout the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unified Image Linking Experience
&lt;/h2&gt;

&lt;p&gt;We've enhanced how editors work with images by introducing linking capabilities that work consistently whether images are added through the rich text editor or the image widget.&lt;/p&gt;

&lt;p&gt;Images are now added as figure elements with caption support, providing better semantic structure and styling opportunities. This structure also enables captions and linking functionality. By default, the widgets allow you to add links to URLs or internal pages. The &lt;code&gt;linkWithType&lt;/code&gt; option allows you to add links to any piece-type show page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Styling Note&lt;/strong&gt;: Developers should review and update their CSS to ensure proper styling of figure-based images. An inline &lt;code&gt;margin: 0&lt;/code&gt; style is added by default, but can be disabled by setting &lt;code&gt;inlineStyles: false&lt;/code&gt; in widget configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Streamlined Rich Text Editing
&lt;/h2&gt;

&lt;p&gt;We've expanded the default toolbar and styling options available in the rich text widget, reducing setup work for new projects. Common formatting options that previously required explicit configuration are now available by default, allowing content teams to start creating formatted content immediately.&lt;/p&gt;

&lt;p&gt;These enhancements reduce friction in the content creation process while maintaining the flexibility developers need to create customized editorial experiences. To take advantage of these new default settings in an existing project, just remove any project-level rich text widget toolbar options.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Contributions: Zero-Downtime Site Management
&lt;/h2&gt;

&lt;p&gt;We're proud to highlight a significant contribution from Michelin to our multisite capabilities. As briefly noted on May 20th, the multisite extension now supports zero-downtime site reloads and proactive site prewarming, enabling enterprise customers to manage large-scale deployments more efficiently. When site configurations change, the system serves requests with existing instances while new instances start in the background, ensuring seamless transitions and improved performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quality of Life Improvements
&lt;/h2&gt;

&lt;p&gt;This release includes several refinements that improve the overall editorial experience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Media library download links now work as expected, immediately downloading files rather than navigating away from the current page&lt;/li&gt;
&lt;li&gt;Error pages now include proper cache headers to prevent serving stale error content&lt;/li&gt;
&lt;li&gt;API key permissions have been corrected to provide appropriate access levels for different user roles&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;These improvements are ready for you to explore! Update your projects with &lt;code&gt;npm update&lt;/code&gt; and let us know what you think on our &lt;a href="https://roadmap.apostrophecms.com/roadmap/" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt;. Your feedback helps us refine and enhance ApostropheCMS to meet your needs.&lt;/p&gt;

&lt;p&gt;🚀 Happy coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>apostrophecms</category>
    </item>
    <item>
      <title>ApostropheCMS 4.17.0: Live widget preview now default and image cropping shortcut</title>
      <dc:creator>stuart</dc:creator>
      <pubDate>Wed, 14 May 2025 20:43:07 +0000</pubDate>
      <link>https://dev.to/stuartromanek/apostrophecms-4170-live-widget-preview-now-default-and-image-cropping-shortcut-29d7</link>
      <guid>https://dev.to/stuartromanek/apostrophecms-4170-live-widget-preview-now-default-and-image-cropping-shortcut-29d7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hello Apostrophe Community!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apostrophecms.com/blog/apostrophecms-4-17-0-default-live-widget-preview-and-image-cropping-shortcut" rel="noopener noreferrer"&gt;The full changelog can be read on the ApostropheCMS blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The release of &lt;strong&gt;Apostrophe 4.17.0&lt;/strong&gt; includes updates to the core experience for teams, empowering editors with more intuitive widget editing and developers with tools to create more customized interfaces.&lt;/p&gt;

&lt;h2&gt;
  
  
  Image Widget: Streamlined Editing Path
&lt;/h2&gt;

&lt;p&gt;We've improved the image widget with a more intuitive editing workflow. Previously, users had to navigate through multiple modals to adjust an image's cropping and focal point. Now, the image widget offers a more accessible menu with direct access to key functions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ksuie1fqmmndoombuna.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ksuie1fqmmndoombuna.webp" alt="The new cropping shortcut UI" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This streamlined approach reduces clicks and makes image editing more efficient. The enhancement was implemented using our new widgetOperations configuration function, which adds the adjustImage operation to the image widget. This improvement demonstrates our commitment to making content editing more intuitive and efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live Widget Preview: Now Enabled by Default
&lt;/h2&gt;

&lt;p&gt;After extensive internal testing that proved its stability and value, we enabled the live widget preview feature by default for all users. This change transforms widget editing from a "save and see" experience to immediate visual feedback as you type or select options in the widget modal. The immediate visual feedback helps editors create exactly what they need faster than ever.&lt;/p&gt;

&lt;p&gt;For those who prefer to work without live previews, you can disable this feature in your widget settings, but we encourage you to give it a try - we believe it will substantially improve your content editing experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Customizable Widget Operations: Extend Any Widget's Capabilities
&lt;/h2&gt;

&lt;p&gt;Developers can now use the new widgetOperations cascade config property to add custom operations to any widget type. This feature demonstrates our commitment to making the platform more extensible - we've already used it ourselves to add the adjustImage operation to the core image widget!&lt;/p&gt;

&lt;p&gt;This new property allows developers to extend any widget's editing experience by adding custom operations directly to the menu interface. Content teams can now have editing workflows tailored specifically to their needs, with operations that make sense for their particular content types.&lt;/p&gt;

&lt;p&gt;This is also a first steps toward the creation of Sections, which will make it possible to save and re-use layouts across your site.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead: Enhanced Documentation for Improved Developer-Driven UX
&lt;/h2&gt;

&lt;p&gt;As part of our commitment to improving the content manager experience, we're enhancing our documentation site with an expanded tutorials section in the coming weeks and months. The first wave of new documents will help developers create better editorial interfaces, covering topics such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuring the admin bar for optimal workflow&lt;/li&gt;
&lt;li&gt;Adding support desk help where editors need it most&lt;/li&gt;
&lt;li&gt;Proper usage of tooltips and help text to guide users&lt;/li&gt;
&lt;li&gt;Best practices for creating intuitive editing experiences&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By providing developers with better UX guidance on, we aim to elevate the quality of editorial experiences across all ApostropheCMS projects. Look forward to these short-form, focused tutorials that will help you implement user-centered design principles in your CMS implementations.&lt;/p&gt;

&lt;p&gt;These improvements are ready for you to explore! Update your projects with npm update and let us know what you think on our new roadmap site. Your feedback helps us refine and enhance ApostropheCMS to meet your needs.&lt;/p&gt;

&lt;p&gt;🚀 Happy coding!&lt;/p&gt;

</description>
      <category>apostrophecms</category>
      <category>vue</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Apostrophe 4.15.0: In-Context Live Preview, Enhanced Tables, and Translation Tools</title>
      <dc:creator>stuart</dc:creator>
      <pubDate>Wed, 16 Apr 2025 18:49:14 +0000</pubDate>
      <link>https://dev.to/stuartromanek/apostrophe-4150-in-context-live-preview-enhanced-tables-and-translation-tools-46e1</link>
      <guid>https://dev.to/stuartromanek/apostrophe-4150-in-context-live-preview-enhanced-tables-and-translation-tools-46e1</guid>
      <description>&lt;p&gt;Hello Apostrophe Community!&lt;/p&gt;

&lt;p&gt;A few notes here at the top, we have a video overview of 4.15.0&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/XGdejAzowbw"&gt;
  &lt;/iframe&gt;
&lt;br&gt;
&lt;a href="https://apostrophecms.com/blog/apostrophecms-4-15-0-in-context-live-preview-batch-media-operations-table-controls-and-translation-tools" rel="noopener noreferrer"&gt;and the full deep-dive on our blog&lt;/a&gt; and a &lt;a href="https://github.com/apostrophecms/apostrophe/discussions/4922" rel="noopener noreferrer"&gt;link to the GitHub discussion&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We're excited to announce the release of Apostrophe 4.15.0, focused on empowering your editorial and marketing teams with tools that make content creation more intuitive and efficient. This release brings significant improvements to the core editing experience while enhancing our support for global enterprise customers through improved translation capabilities and content management.&lt;/p&gt;

&lt;h2&gt;
  
  
  In-Context Live Widget Preview: See Changes as You Make Them
&lt;/h2&gt;

&lt;p&gt;The standout feature in this release is the new in-context live preview capability for widgets. Now, content editors can see changes reflected on the page in real-time as they make edits—no more waiting to publish or preview to see how adjustments will look.&lt;/p&gt;

&lt;p&gt;Although this feature is well-tested, the feature is currently opt-in as we gather community feedback. To enable it, set &lt;code&gt;preview: true&lt;/code&gt; in the &lt;code&gt;options&lt;/code&gt; section of the &lt;code&gt;index.js&lt;/code&gt; file of any widget module, or activate it globally by setting it on the &lt;code&gt;@apostrophecms/widget-type&lt;/code&gt; module. We encourage you to test this feature and &lt;a href="https://roadmap.apostrophecms.com/roadmap/85124b19-40e7-4d3f-8200-2d2cc0aa327e" rel="noopener noreferrer"&gt;share your experience with us&lt;/a&gt;. The in-context preview is particularly powerful when combined with &lt;code&gt;range&lt;/code&gt; fields for styles like container widths, allowing editors to fine-tune their content with immediate visual feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enhanced Table Editing in Rich Text
&lt;/h2&gt;

&lt;p&gt;Tables are a crucial part of presenting structured information, and we've made them even better:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A dedicated control bar specifically for table editing&lt;/li&gt;
&lt;li&gt;Drag-to-resize column functionality for perfect table layouts&lt;/li&gt;
&lt;li&gt;Building on our recently released CSV import feature, these improvements make managing tabular data more intuitive than ever&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a reminder, if your rich text widgets don’t offer tables on the insert menu yet, be sure to add &lt;code&gt;table&lt;/code&gt; to the &lt;code&gt;insert&lt;/code&gt; option when configuring the rich text widget in each area. Then editors can access the insert menu by pressing &lt;code&gt;/&lt;/code&gt; at the start of any line.&lt;/p&gt;

&lt;h2&gt;
  
  
  Global Reach with Translation Support
&lt;/h2&gt;

&lt;p&gt;For our enterprise customers operating internationally, we've enhanced the Import/Export extension with automatic translation capabilities. When importing content, you can now leverage our &lt;a href="https://apostrophecms.com/extensions/automatic-translation" rel="noopener noreferrer"&gt;Automatic Translation extension&lt;/a&gt; to streamline multilingual content management. This feature makes managing content across different languages and regions more efficient, especially if some of your locales are hosted in a separate deployment of ApostropheCMS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Batch Operations for Media Library
&lt;/h2&gt;

&lt;p&gt;Content managers working with large media collections will appreciate the enhanced batch operations in the Media Library. You can now select multiple images at once to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Archive images in bulk&lt;/li&gt;
&lt;li&gt;Localize multiple images simultaneously for different regions&lt;/li&gt;
&lt;li&gt;Export selected images for use in other contexts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These batch operations significantly streamline workflows when managing extensive media collections, saving valuable time for your editorial and marketing teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  UX Improvements Across the Board
&lt;/h2&gt;

&lt;p&gt;We believe that small enhancements add up to a significantly better experience. This release includes numerous quality-of-life improvements, part of our broader commitment to focus on making the editor experience more intuitive in upcoming release cycles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smoother Page Management&lt;/strong&gt;: Page dragging and reordering now happens in the background without blocking the UI, and the UI scrolls automatically when dragging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced Media Manager&lt;/strong&gt;: Uploading images is now smoother with no additional server requests and improved error handling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Form Refinements&lt;/strong&gt;: The user email field is properly typed as &lt;code&gt;email&lt;/code&gt;, and the reset password button is more clearly labeled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance Optimizations&lt;/strong&gt;: We've reduced verbose logging and made background processes more efficient.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Community Contributions: sanitize-html Enhancements
&lt;/h2&gt;

&lt;p&gt;We're proud to highlight community contributions in this release, particularly the enhancements to the &lt;a href="https://www.npmjs.com/package/sanitize-html" rel="noopener noreferrer"&gt;sanitize-html module&lt;/a&gt;. Thanks to Rimvydas Naktinis, this long-standing module now includes &lt;code&gt;onOpenTag&lt;/code&gt; and &lt;code&gt;onCloseTag&lt;/code&gt; events, enabling more advanced filtering capabilities. This improvement demonstrates the power of our open-source community and their continued commitment to improving Apostrophe's ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discover Our New Public Roadmap
&lt;/h2&gt;

&lt;p&gt;We're excited to announce our new public roadmap at &lt;a href="https://roadmap.apostrophecms.com/roadmap" rel="noopener noreferrer"&gt;https://roadmap.apostrophecms.com/&lt;/a&gt;. Visit to see what is in progress, coming next, and currently in the backlog — and share your ideas and feedback on current and future features. Insights from you help shape the direction of Apostrophe, and we encourage community contributions to make our CMS even better.&lt;/p&gt;




&lt;p&gt;These improvements are ready for you to explore! Update your projects with &lt;code&gt;npm update&lt;/code&gt; and let us know what you think. Your feedback helps us refine and enhance ApostropheCMS to meet your needs.&lt;/p&gt;

&lt;p&gt;🚀 Happy coding!&lt;/p&gt;

</description>
      <category>apostrophecms</category>
      <category>webdev</category>
      <category>cms</category>
      <category>javascript</category>
    </item>
    <item>
      <title>ApostropheCMS 4.14.0: Smarter Content Management, Better Performance, and CSV Table Imports</title>
      <dc:creator>stuart</dc:creator>
      <pubDate>Wed, 19 Mar 2025 18:41:31 +0000</pubDate>
      <link>https://dev.to/stuartromanek/apostrophecms-4140-smarter-content-management-better-performance-and-csv-table-imports-4o3p</link>
      <guid>https://dev.to/stuartromanek/apostrophecms-4140-smarter-content-management-better-performance-and-csv-table-imports-4o3p</guid>
      <description>&lt;p&gt;Hello Dev.to community!&lt;/p&gt;

&lt;p&gt;ApostropheCMS 4.14.0 has been released. Check out an overview.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/t59TFCNtTDw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;There is also a &lt;a href="https://apostrophecms.com/blog/apostrophecms-4-14-0-smarter-content-management-better-performance-and-csv-table-imports" rel="noopener noreferrer"&gt;full deep dive of the release on our blog &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From enhanced table support in the rich-text editor to better piece management, this release brings several quality-of-life improvements for both developers and content managers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rich Text Improvements
&lt;/h2&gt;

&lt;p&gt;The heart of content creation in Apostrophe has always been our rich text editor, and with this release, it becomes even more powerful. We've added the ability to generate tables from imported CSV files directly within the rich text widget. This allows content editors to quickly transform spreadsheet data into well-formatted web content.&lt;/p&gt;

&lt;p&gt;We've also reworked rich text popovers to use &lt;code&gt;AposContextMenu&lt;/code&gt; for both toolbar components and insert menu items, fixing problems seen when editing on smaller screen sizes.&lt;/p&gt;

&lt;h2&gt;
  
  
  A More Efficient and Intuitive UI
&lt;/h2&gt;

&lt;p&gt;This release also brings several usability improvements. One of the more noticeable changes is the increase in the default pagination size for piece-type managers, jumping from 10 to 50 items per page. This change significantly reduces the need for excessive clicking and increases efficiency when managing extensive collections of content.&lt;/p&gt;

&lt;p&gt;Finding the right PDF is now faster with the addition of a "Tags" filter to the file manager. We've also improved the image manager’s infinite scroll pagination for a more reliable browsing experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quality-of-Life Fixes and Enhancements
&lt;/h2&gt;

&lt;p&gt;No update is complete without some essential fixes. The &lt;code&gt;lang&lt;/code&gt; attribute of the page &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; tag now correctly reflects the active localization settings, ensuring better accessibility and SEO compliance. We've also fine-tuned focus styling within the &lt;code&gt;AposTable&lt;/code&gt; headers and added better error handling for misconfigured widgets in expanded preview mode. Another small but impactful fix: altering CSS styling to prevent margin collapse in nested areas, especially when the nested area comes from another document. This would sometimes make adding a peer widget above or below a parent widget difficult or impossible.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;postcss-viewport-to-container-toggle&lt;/code&gt; plugin was improved with expanded handling and conversion of more media queries and units, making our breakpoint preview feature more robust and versatile across a broader range of design scenarios.&lt;/p&gt;

&lt;p&gt;🚀 Happy coding!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://apostrophecms.com/blog/apostrophecms-4-14-0-smarter-content-management-better-performance-and-csv-table-imports" rel="noopener noreferrer"&gt;Our blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apostrophecms/apostrophe/discussions/4889" rel="noopener noreferrer"&gt;GitHub Discussion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=t59TFCNtTDw" rel="noopener noreferrer"&gt;YouTube Video&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>vue</category>
    </item>
  </channel>
</rss>
