Apostrophe 4.21.0: Effortless Image Uploads and Strategic Platform Enhancements #5056
BoDonkey
announced in
Release Notes
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Apostrophe 4.21.0: Effortless Image Uploads and Strategic Platform Enhancements
Hello Apostrophe Community!
Apostrophe 4.21.0 delivers immediate improvements to the content editing experience while laying important groundwork for next-generation features. This release centers on quick image uploads that eliminate friction for editors, plus platform enhancements that will enable exciting new capabilities in upcoming releases.
Important: Before updating, ensure your Node.js version is 20 or higher, as this release requires a supported version of Node.js.
pres-4.21.0.mov
Quick Image Upload: Smoothing the Content Creation Flow
Content editors can now upload images exactly the way they expect to—with zero extra steps. Our new quick image upload transforms what was previously a multistep media library workflow into an instant, intuitive experience.
Content managers can now:
This enhancement eliminates the cognitive overhead that comes with bouncing between the media library and content editing interfaces. For editorial teams working with image-heavy content—whether blog posts, product pages, or marketing materials—this translates to measurably faster content creation and a much more natural editing experience.
The implementation works seamlessly with all existing image widget functionality, including focal point adjustment and alternative text, ensuring that accessibility and design control remain intact while dramatically improving usability.
Foundation for Next-Generation Editing Features
While the quick image upload delivers immediate value, this release also includes strategic platform enhancements that will enable powerful new capabilities in upcoming versions. We've built new infrastructure for custom widget creation workflows and enhanced modal interactions to support features like reusable section templates and AI-powered layouts.
These behind-the-scenes improvements include new APIs for extending the "add widget" experience, transformer pipelines for processing content before insertion, and enhanced modal flexibility. While these changes immediately benefit developers building advanced editorial interfaces, the groundwork being laid will soon enable editors to work with pre-built layout templates, leverage AI for content suggestions, and access other productivity-enhancing tools.
The groundwork being laid here will soon enable editors to work with pre-built layout templates, leverage AI for content suggestions, and access other productivity-enhancing tools that build on these foundational improvements.
Relationship Field Refinements: Responsive to Community Feedback
Based on developer feedback, we've adjusted relationship field validation to be less restrictive in practice. The strict server-side enforcement introduced in 4.16.0 was causing unexpected errors when related content changed, so we've returned to a more practical approach that balances data integrity with real-world content management workflows.
Quality Improvements Across the Platform
This release includes several important fixes that improve the stability and usability of core features:
?render-areas=1API feature now correctly disregards areas in related documents, rather than failing the callThese improvements are ready for you to explore! Remember to update your Node.js version to 20 or higher before running
npm update. Let us know what you think on our roadmap.🚀 Happy coding!
Apostrophe 4.21.0
Adds
apos.area.addCreateWidgetOperationto register a custom operation that invokes a modal and inserts the widget returned by that modal. These operations are offered as choices in all "add widget" menus, both regular and expanded.AposDocEditornow accepts avaluesprop, which can be used to pass an object of initial values for some or all fields. Use of this prop is optional. It is not supported when editing existing documents.apos.doc.editnow accepts an optionalvaluesobject as the final parameter, containing initial values for some or all fields. This is supported only when editing existing documents.aposSectionTemplateLibraryWidgetToDoc|AposDocEditorwill invoke the transformeraposSectionTemplateLibraryWidgetToDocwith the original props, and pass the returned result toAposDocEditor. Note that transformers are awaited. Transformers are registered in frontend admin UI code by passing a name and a function toapos.ui.addTransformer.@apostrophecms/image-widget.Fixes
?render-areas=1API feature now correctly disregards areas in separate documents loaded via relationship fields. Formerly their presence resulted in an error, not a rendering.~path per the admin UI now works per the documentation, as long as the Vue component used for the icon is structured like those found in@apostrophecms/vue-material-design-icons.button: trueflag works again for piece module utility operations. Previously the button appeared but did not trigger the desired operation.minSizeandaspectRatioweren't passed to the image cropper when coming directly from the area and the widget controls (without passing through the widget editor).postprocessmethod being called, which leads to a loss of data inAposWidgetEditor(like the autocrop data).AposWidgetEditorrelationships are now post processed after they are updated inAposInputRelationshiponly for the relationship that has been updated.It allows live preview to work well with it, it also avoids complexity and fixes updated data not being properly synced between the editor and the
AposSchema.Changes
requiredandminfor relationship fields. Because the related document can be archived or deleted at any time, it is misleading to offer such enforcement. Also, it greatly complicates adding these constraints to existing schemas, resulting in surprising and unwanted behaviors. Therefore it is better for these constraints to be soft constraints on the front end.maxis still a hard constraint.@apostrophecms/login/whoamiroute now accepts bothPOST(recommended) andGETrequests. Previously, it only supportedGET. This maintains backwards compatibility while aligning with the documentation’s recommendation to usePOST.Pro Modules
@apostrophecms-pro/advanced-permission1.0.5This module provides more granular control over content permission. It allows the creation of custom groups with proscribed abilities and the ability to assign users to as few or as many groups as desired. Users and groups can also be assigned per-document and per-locale permissions allowing for fine control of who can edit and publish any document. Explore our documentation to learn how this extension can enhance your project. Once you’re ready, obtain a license and install it through Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.
Changes
eslint-config-apostropheto5, fixes errors, removes unused dependencies.@apostrophecms-pro/automatic-translation1.4.3This bundle allows automatic translation of documents (pages and pieces) when localizing content. It comes with two translation providers: Google Cloud Translation and DeepL, but it is also possible to configure your own providers. Explore our documentation to learn how this extension can enhance your project. Once you’re ready, obtain a license and install it through Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.
Changes
@apostrophecms-pro/cypress-tools1.0.0-beta.22Automated functional browser tests are an important part of quality assurance for enterprise websites and web applications. Cypress is an industry-standard, open-source library for carrying out automated functional browser tests. This module provides a collection of conveniences for testing the ApostropheCMS admin UI within Cypress. Explore our documentation to learn how this extension can enhance your project. Once you’re ready, obtain a license and install it through Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.
Adds
dragAndDropFilecommand.@apostrophecms-pro/data-set2.0.4This module provides an easy avenue for low-code data presentation. It creates a data-set piece for the import of comma-separated values (CSV) files. A separate widget allows for the dynamic selection of columns, and display of the data as an HTML table, or in other templates provided by the developer. Explore our documentation to learn how this extension can enhance your project. Once you’re ready, obtain a license and install it through Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.
Changes
@apostrophecms-pro/import-export-translation1.0.4The purpose of this module is to create a specialized JSON file containing the text of the site, which can be downloaded and manually edited into a different language before being imported into a new locale. Upon import, pages from the default locale will be localized into the new locale substituting the translated text. Explore our documentation to learn how this extension can enhance your project. Once you’re ready, obtain a license and install it through Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.
Changes
@apostrophecms-pro/seo-assistant1.2.2The SEO Assistant module generates SEO page metadata automatically through the use of AI. It comes configured for use with the OpenAI models. It is also possible to configure your own providers. This extension requires that the project also have the
@apostrophecms-pro/automatic-translationandapostrophecms/seoextensions installed. Explore our documentation to learn how this extension can enhance your project. Once you’re ready, obtain a license and install it through Apostrophe Workspaces. For further details or inquiries, feel free to contact us or visit our pricing page.Changes
Free modules
@apostrophecms/blog1.0.6This module bundle helps developers quickly add blog articles to Apostrophe websites. It provides the blog post piece type (
@apostrophecms/blog) as well as a special page type (@apostrophecms/blog-page) for editors to create a blog.Changes
@apostrophecms/import-export3.3.1This module enables import and export of pages and pieces, with or without related documents such as files, images and other related types.
Fixes
typecolumn when importing pieces.connect-multipartymiddleware, eliminating superfluous warnings.@apostrophecms/passport-bridge1.5.2 (2025-08-27)apostrophe-passportworks together withpassport-google-oauth20,passport-gitlab2and similar passport strategy modules to let users log in to Apostrophe CMS sites via Google, Gitlab and other identity providers. This feature is often called federation or single sign-on.Fixes
req.emailis available in the profile, e.g. when the user's full name or username is not available, as can happen when an idP is configured to provide an absolute minimum of information.@apostrophecms/redirect1.4.3Manages site redirects for Apostrophe.
Fixes
@apostrophecms/seo1.3.2Add useful meta fields to all pages and pieces.
Changes
Utilities
uploadfs1.25.1 (2025-08-28)uploadfscopies files to a web-accessible location and provides a consistent way to get the URLs that correspond to those files. uploadfs can also resize, crop and autorotate uploaded images. uploadfs includes S3-based, Azure-based, GCS-based and local filesystem-based backends and you may supply others.Changes
@google-cloud/storageto 7.x to address a deprecation warning.npx mocha test/gcs.jsexits without hanging (there was no bug in the actual functionality, just the test).Beta Was this translation helpful? Give feedback.
All reactions