@sveltia/cms 0.104.3 → 0.105.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +175 -57
- package/dist/sveltia-cms.js +280 -280
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +283 -283
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
# Sveltia CMS: Netlify/Decap CMS successor
|
|
2
2
|
|
|
3
|
-
Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, powerful, quick replacement for Netlify CMS and Decap CMS.
|
|
3
|
+
Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, powerful, quick replacement for Netlify CMS and Decap CMS. While some features are still missing, we’ve already solved over 250 issues reported in the predecessor’s repository, from critical bugs to top feature requests.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Welcome to the only Netlify CMS successor you can trust!
|
|
5
|
+
Built from scratch, Sveltia CMS offers an excellent UX, DX, performance and i18n support, as well as numerous other enhancements to ensure smooth day-to-day workflows. This free, open source alternative to Netlify/Decap CMS is now in public beta, with version 1.0 expected in late 2025.
|
|
8
6
|
|
|
9
7
|
<br>
|
|
10
8
|
|
|
@@ -47,11 +45,11 @@ Welcome to the only Netlify CMS successor you can trust!
|
|
|
47
45
|
- [Current limitations](#current-limitations)
|
|
48
46
|
- [Features not to be implemented](#features-not-to-be-implemented)
|
|
49
47
|
- [Other breaking changes](#other-breaking-changes)
|
|
50
|
-
- [Compatibility with Static CMS](#compatibility-with-static-cms)
|
|
51
48
|
- [Framework support](#framework-support)
|
|
52
49
|
- [Backend support](#backend-support)
|
|
53
50
|
- [Browser support](#browser-support)
|
|
54
51
|
- [Deprecations](#deprecations)
|
|
52
|
+
- [Compatibility with Static CMS](#compatibility-with-static-cms)
|
|
55
53
|
- [Getting Started](#getting-started)
|
|
56
54
|
- [Installation \& setup](#installation--setup)
|
|
57
55
|
- [Migration](#migration)
|
|
@@ -82,6 +80,7 @@ Welcome to the only Netlify CMS successor you can trust!
|
|
|
82
80
|
- [Configuring multiple media libraries](#configuring-multiple-media-libraries)
|
|
83
81
|
- [Optimizing images for upload](#optimizing-images-for-upload)
|
|
84
82
|
- [Disabling stock assets](#disabling-stock-assets)
|
|
83
|
+
- [Using entry tags for categorization](#using-entry-tags-for-categorization)
|
|
85
84
|
- [Editing site deployment configuration files](#editing-site-deployment-configuration-files)
|
|
86
85
|
- [Editing data files with a top-level list](#editing-data-files-with-a-top-level-list)
|
|
87
86
|
- [Changing the input type of a DateTime field](#changing-the-input-type-of-a-datetime-field)
|
|
@@ -102,7 +101,9 @@ Welcome to the only Netlify CMS successor you can trust!
|
|
|
102
101
|
- [Trivia](#trivia)
|
|
103
102
|
- [Related Links](#related-links)
|
|
104
103
|
- [As seen on](#as-seen-on)
|
|
104
|
+
- [Privacy](#privacy)
|
|
105
105
|
- [Disclaimer](#disclaimer)
|
|
106
|
+
- [Acknowledgements](#acknowledgements)
|
|
106
107
|
|
|
107
108
|
## Motivation
|
|
108
109
|
|
|
@@ -110,17 +111,17 @@ Sveltia CMS was born in November 2022, when the progress of Netlify CMS was stal
|
|
|
110
111
|
|
|
111
112
|
To achieve radical improvements in UX, performance, i18n and other areas, it was ultimately decided to build an alternative from the ground up, while ensuring an easy migration path from the other. After proving the idea with a rapid [Svelte](https://svelte.dev/) prototype, development was accelerated to address their primary use cases. The new product has since been named Sveltia CMS and released as open source software to encourage wider adoption.
|
|
112
113
|
|
|
113
|
-
We loved the simple setup of Netlify CMS that turned a Git repository into a database with a single page app served from a CDN plus a plain YAML config file. In support of the [Jamstack](https://jamstack.org/) concept, we wanted to revive it, modernize it, and take it to the next level.
|
|
114
|
+
We loved the simple, unique setup of Netlify CMS that turned a Git repository into a database with a single page app served from a CDN plus a plain YAML config file. In support of the [Jamstack](https://jamstack.org/) concept, we wanted to revive it, modernize it, and take it to the next level.
|
|
114
115
|
|
|
115
116
|
### Our advantage
|
|
116
117
|
|
|
117
118
|
Due to its unfortunate abandonment in early 2022, Netlify CMS spawned 3 successors:
|
|
118
119
|
|
|
119
120
|
- [Static CMS](https://github.com/StaticJsCMS/static-cms): a community fork, initial commit made in September 2022 — discontinued in September 2024 after making meaningful improvements
|
|
120
|
-
- **Sveltia CMS**: not a fork but a **complete rewrite**, started in November 2022, first appeared on GitHub in March 2023
|
|
121
|
+
- **Sveltia CMS**: not a fork but a **complete rewrite**, started in November 2022, first appeared on GitHub in March 2023 — actively developed with frequent releases and numerous improvements
|
|
121
122
|
- [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version, [announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as the official successor with a Netlify agency partner taking ownership — mostly stagnant, no significant improvements made since then
|
|
122
123
|
|
|
123
|
-
Sveltia CMS is the only project that doesn’t inherit the complexity, technical debt, and numerous bugs of Netlify CMS, which was launched in 2015. Our product is better by design: We have rebuilt the app from the ground up using a [modern framework](https://svelte.dev/) while closely monitoring and analyzing the predecessor’s issue tracker. We don’t
|
|
124
|
+
Sveltia CMS is the only project that doesn’t inherit the complexity, technical debt, and numerous bugs of Netlify CMS, which was launched in 2015. Our product is better by design: We have rebuilt the app from the ground up using a [modern framework](https://svelte.dev/) while closely monitoring and analyzing the predecessor’s issue tracker. We don’t reuse any part of their code. This “total reboot” allows us to make [hundreds of improvements](#differentiators) without getting stuck in an old system.
|
|
124
125
|
|
|
125
126
|
While Sveltia CMS was created to replace legacy Netlify CMS instances, it can also be used as an alternative to other Netlify CMS successors. With its [solid i18n support](#better-i18n-support), we’re hoping our product will eventually be an appearing option for anyone looking for a free headless CMS.
|
|
126
127
|
|
|
@@ -165,7 +166,7 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
165
166
|
|
|
166
167
|
### Better UX
|
|
167
168
|
|
|
168
|
-
- Created and actively maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code, design, marketing and
|
|
169
|
+
- Created and actively maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code, design, marketing, localization and everything in between. You can expect constant improvements to the user experience (UX) and developer experience (DX) across the platform.
|
|
169
170
|
- The maintainer tries to respond to bug reports as quickly as possible. While there are no guarantees, the typical turnaround time for a bug fix is less than 24 hours.
|
|
170
171
|
- Frequent releases deliver new features and enhancements to users faster. Many of our minor [releases](https://github.com/sveltia/sveltia-cms/releases) address one or more Netlify/Decap CMS issues, giving you even more reasons to switch from the legacy predecessor.
|
|
171
172
|
- Offers a modern, intuitive user interface that utilizes the full viewport,[^178] inspired in part by the Netlify CMS v3 prototype.[^1][^211][^212][^213][^214]
|
|
@@ -173,9 +174,8 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
173
174
|
- Users can easily manage content on-the-go with mobile and tablet support.[^18][^215]
|
|
174
175
|
- For a smoother experience, we even go beyond responsive design with optimized navigation, floating action buttons, smooth [view transitions](https://developer.chrome.com/docs/web-platform/view-transitions), larger buttons, and other tweaks. We’ll continue to fully optimize the app for small screens and touch devices.
|
|
175
176
|
- If you’re already signed in on your desktop, open the Account menu in the top right corner of the CMS, click Sign In with Mobile, and scan the QR code for passwordless sign-in. Your settings will be automatically copied.
|
|
176
|
-
- Sveltia CMS loads all entries at startup. We don’t support backends that cannot retrieve multiple entries at once. This deliberate design choice improves performance and UX by enabling instant full-text searches, fast and powerful relation fields, and linking between assets and entries.
|
|
177
177
|
- Made with [Svelte](https://svelte.dev/), not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid common fatal React application crashes.[^113][^129] Best of all, Svelte offers great performance.
|
|
178
|
-
- Other crashes in Netlify/Decap CMS are also irrelevant to us, making Sveltia CMS much more stable.[^112][^203][^204][^260]
|
|
178
|
+
- Other crashes in Netlify/Decap CMS are also irrelevant to us, making Sveltia CMS much more stable.[^112][^203][^204][^260] Netlify/Decap CMS continues to receive crash reports, with no effective solution in sight.
|
|
179
179
|
- We build [our own UI component library](https://github.com/sveltia/sveltia-ui), including custom dialogs, to ensure optimal usability without compromising accessibility.[^277][^196][^205][^206][^207][^208][^209][^210]
|
|
180
180
|
- Users can personalize the application with various settings, including appearance and language. Developer Mode can also be enabled, which enables certain features and displays the CMS version number.[^270]
|
|
181
181
|
- Never miss out on the latest features and bug fixes by being notified when an update to the CMS is available.[^31] Then update to the latest version with a single click.[^66]
|
|
@@ -225,7 +225,10 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
225
225
|
### Better security
|
|
226
226
|
|
|
227
227
|
- Avoids vulnerabilities in dependencies through constant updates, Dependabot alerts, [`pnpm audit`](https://pnpm.io/cli/audit), and frequent releases, unlike Netlify/Decap CMS where a number of high severity vulnerabilities remain unpatched for a long time.[^33]
|
|
228
|
+
- The [XSS vulnerability](https://github.com/advisories/GHSA-xp8g-32qh-mv28) found in Decap CMS does not affect Sveltia CMS, as our entry preview implementation is completely different.
|
|
229
|
+
- However, the Markdown widget was potentially vulnerable to XSS attacks because the `sanitize_preview` option was set to `false` by default for compatibility with Netlify/Decap CMS. This behaviour is [documented](https://decapcms.org/docs/widgets/#markdown) and is not a bug, but it’s definitely not secure. In [Sveltia CMS 0.105.0](https://github.com/sveltia/sveltia-cms/releases/tag/v0.105.0), we changed the default value to `true`, assuming that most users would prefer security over compatibility.
|
|
228
230
|
- Thanks to pnpm, Svelte, Vite, GitHub Actions and [npm package provenance](https://github.blog/security/supply-chain-security/introducing-npm-package-provenance/), our release process is fast, reliable and transparent. This setup makes it easy to verify the integrity of published code and assets. It also helps us avoid errors that can occur with manual build steps.[^264]
|
|
231
|
+
- We have created a [security policy](https://github.com/sveltia/sveltia-cms/blob/main/SECURITY.md).
|
|
229
232
|
- We have documented how to [set up a Content Security Policy](#setting-up-content-security-policy) for the CMS to prevent any unexpected errors or otherwise insecure configuration.[^108]
|
|
230
233
|
- The `unsafe-eval` and `unsafe-inline` keywords are not needed in the `script-src` CSP directive.[^34]
|
|
231
234
|
- The `same-origin` referrer policy is automatically set with a `<meta>` tag.
|
|
@@ -244,12 +247,11 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
244
247
|
|
|
245
248
|
### Better configuration
|
|
246
249
|
|
|
247
|
-
- We provide
|
|
250
|
+
- We provide comprehensive [compatibility information](#compatibility) to help you avoid unsupported options and configurations that might cause errors. By contrast, the Netlify/Decap CMS documentation does not mention the deprecation of camel case options, the removal of the Date widget and the replacement of Moment.js.
|
|
248
251
|
- Sveltia CMS supports a [JSON configuration file](#providing-a-json-configuration-file) that can be generated for bulk or complex collections.[^60]
|
|
249
252
|
- Also supports [multiple configuration files](#providing-multiple-configuration-files) to allow developers to modularize the configuration.[^197]
|
|
250
|
-
- We provide an [up-to-date JSON schema](#enabling-autocomplete-and-validation-for-the-configuration-file) for YAML/JSON configuration files, which enables autocomplete and validation in VS Code and other editors.[^253]
|
|
253
|
+
- We provide an [up-to-date JSON schema](#enabling-autocomplete-and-validation-for-the-configuration-file) for YAML/JSON configuration files, which enables autocomplete and validation in VS Code and other editors.[^253] If you use [deprecated options](#deprecations) in a supported code editor, you should receive a warning.
|
|
251
254
|
- Improved TypeScript support: We keep our type definitions for `CMS.init()` and other methods complete, accurate, up-to-date and annotated.[^190][^191][^192][^193][^227] This makes it easier to provide a site config object when [manually initializing](https://decapcms.org/docs/manual-initialization/) the CMS.
|
|
252
|
-
- [Deprecated options](#deprecations) are clearly marked as such in both the JSON schema and the TypeScript type definitions. If you use these options in a supported code editor, you should receive a warning.
|
|
253
255
|
|
|
254
256
|
### Better backend support
|
|
255
257
|
|
|
@@ -422,7 +424,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
422
424
|
|
|
423
425
|
### Better widgets
|
|
424
426
|
|
|
425
|
-
Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widgets/) available in Netlify/Decap CMS. We have improved these widgets significantly while adding some new ones.
|
|
427
|
+
Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widgets/) available in Netlify/Decap CMS. We have improved these widgets significantly while adding some new ones.
|
|
426
428
|
|
|
427
429
|
- Boolean
|
|
428
430
|
- A required Boolean field with no default value is saved as `false` by default, without raising a confusing validation error.[^45]
|
|
@@ -468,6 +470,7 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
468
470
|
- The map looks good in dark mode.
|
|
469
471
|
- Markdown
|
|
470
472
|
- The rich text editor is built with the well-maintained [Lexical](https://lexical.dev/) framework, which solves various issues with a [Slate](https://github.com/ianstormtaylor/slate)-based editor in Netlify/Decap CMS,[^235] including fatal application crashes,[^71][^72][^73][^111] lost formatting when pasting,[^124] an extra line break when pasting,[^169] extra HTML comments when pasting,[^229] backslash injections,[^53] dropdown visibility,[^70] and text input difficulties with IME.[^54]
|
|
473
|
+
- For [better security](#better-security), the `sanitize_preview` option defaults to `true` since [Sveltia CMS 0.105.0](https://github.com/sveltia/sveltia-cms/releases/tag/v0.105.0).
|
|
471
474
|
- The default editor mode can be set by changing the order of the `modes` option.[^58] If you want to use the plain text editor by default, add `modes: [raw, rich_text]` to the field configuration.
|
|
472
475
|
- A Markdown field plays well with a variable type List field.[^202]
|
|
473
476
|
- A combination of bold and italic doesn’t create a confusing 3-asterisk markup.[^160] In our editor, bold is 2 asterisks and italic is an underscore.
|
|
@@ -617,7 +620,7 @@ These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are
|
|
|
617
620
|
|
|
618
621
|
[Localization](https://github.com/sveltia/sveltia-cms/blob/main/src/lib/locales/README.md), [documentation](https://github.com/sveltia/sveltia-cms/issues/485) and [demo site](https://github.com/sveltia/sveltia-cms/issues/1) will all be prepared once the 1.0 Release Candidate is ready.
|
|
619
622
|
|
|
620
|
-
Due to the complexity, we have decided to defer the following features to the 2.0 release due early 2026. Netlify/Decap CMS has dozens of open issues with these collaboration and beta features — we want to implement them the right way.
|
|
623
|
+
Due to the complexity, we have decided to defer the following features to the 2.0 release due early/mid 2026. Netlify/Decap CMS has dozens of open issues with these collaboration and beta features — we want to implement them the right way.
|
|
621
624
|
|
|
622
625
|
- [Editorial workflow](https://decapcms.org/docs/editorial-workflows/)
|
|
623
626
|
- [Open authoring](https://decapcms.org/docs/open-authoring/)
|
|
@@ -631,7 +634,7 @@ The following Netlify/Decap CMS features will not be implemented, primarily due
|
|
|
631
634
|
- **Azure and Bitbucket backends**: For performance reasons. We’ll support these platforms if their APIs improve to allow the CMS to fetch multiple entries at once.
|
|
632
635
|
- **Git Gateway backend**: Also for performance reasons. [Git Gateway](https://github.com/netlify/git-gateway) has not been actively maintained since Netlify CMS was abandoned, and it’s known to be slow and prone to rate limit violations. We plan to develop a GraphQL-based high-performance alternative [in the future](#roadmap).
|
|
633
636
|
- **Netlify Identity Widget**: It’s not useful without Git Gateway, and the Netlify Identity service itself is now [deprecated](https://www.netlify.com/changelog/deprecation-netlify-identity/). We plan to develop an alternative solution with role support [in the future](#roadmap), most likely using [Cloudflare Workers](https://workers.cloudflare.com/) and [Auth.js](https://authjs.dev/).
|
|
634
|
-
- [Gatsby plugin](https://github.com/decaporg/gatsby-plugin-decap-cms): In light of Gatsby’s [decline](https://2024.stateofjs.com/en-US/libraries/meta-frameworks/) and [
|
|
637
|
+
- [Gatsby plugin](https://github.com/decaporg/gatsby-plugin-decap-cms): In light of Gatsby’s [decline](https://2024.stateofjs.com/en-US/libraries/meta-frameworks/) and [uncertainty](https://github.com/gatsbyjs/gatsby/discussions/39062), we won’t be investing time in developing a plugin for it. You can still create `index.html` yourself. Note: We don’t support Netlify Identity Widget; the favicon can be specified with the `logo_url` option.
|
|
635
638
|
- The deprecated client-side implicit grant for the GitLab backend: It has already been [removed from GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/344609). Use the client-side PKCE authorization instead.
|
|
636
639
|
- The deprecated Netlify Large Media service: Consider other storage providers.
|
|
637
640
|
- Deprecated camel case configuration options: Use snake case instead, according to the current Decap CMS document.
|
|
@@ -658,34 +661,13 @@ The following Netlify/Decap CMS features will not be implemented, primarily due
|
|
|
658
661
|
There are some differences in behaviour between Sveltia CMS and Netlify/Decap CMS that may affect your existing configuration or content.
|
|
659
662
|
|
|
660
663
|
- [Decap CMS 3.1.1](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.1.1) replaced Moment.js with Day.js for date handling, and [Sveltia CMS 0.104.0](https://github.com/sveltia/sveltia-cms/releases/tag/v0.104.0) followed suit. Since [Day.js tokens](https://day.js.org/docs/en/display/format) are not 100% compatible with [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/), this could be a breaking change in certain cases. Check your `format`, `date_format` and `time_format` options for DateTime fields, as well as any date formatting in [summary string transformations](https://decapcms.org/docs/summary-strings/).
|
|
661
|
-
-
|
|
664
|
+
- By default, Sveltia CMS does not slugify uploaded filenames, as mentioned in the [asset management](#better-asset-management) section. If your site generator expects hyphenated filenames, you can enable the `slugify_filename` [default media library option](#configuring-multiple-media-libraries).
|
|
665
|
+
- In some cases, the [data output](#better-data-output) of Sveltia CMS may differ from that of Netlify/Decap CMS. Notably, Sveltia CMS does not omit empty optional fields by default. If you have data validation in your site generator, this could cause issues. Use the `omit_empty_optional_fields` [output option](#controlling-data-output) if needed.
|
|
662
666
|
- Sveltia CMS requires a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts), meaning it only works with HTTPS, `localhost` or `127.0.0.1` URLs. If you’re running your own remote server and serving content over HTTP, the CMS will not work. We recommend obtaining a TLS certificate from [Let’s Encrypt](https://letsencrypt.org/).
|
|
667
|
+
- As of [Sveltia CMS 0.105.0](https://github.com/sveltia/sveltia-cms/releases/tag/v0.105.0), the `sanitize_preview` option for the [Markdown](https://decapcms.org/docs/widgets/#markdown) widget is set to `true` by default to prevent potential XSS attacks via entry previews. We recommend keeping this option enabled unless you fully trust all users of your CMS.
|
|
663
668
|
|
|
664
669
|
[Let us know](https://github.com/sveltia/sveltia-cms/issues/new?type=bug) if you have encounter any compatibility issues that are not listed here.
|
|
665
670
|
|
|
666
|
-
### Compatibility with Static CMS
|
|
667
|
-
|
|
668
|
-
Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/StaticJsCMS/static-cms), a now-defunct fork of Netlify CMS. Since Static CMS was archived some time ago, we don’t plan to implement additional compatibility beyond what’s listed below. However, we may still adopt some of their features that we find useful.
|
|
669
|
-
|
|
670
|
-
Static CMS made [some breaking changes](https://staticjscms.netlify.app/docs/decap-migration-guide) while Sveltia CMS mostly follows Netlify/Decap CMS, so you should review your configuration carefully.
|
|
671
|
-
|
|
672
|
-
- Configuration options
|
|
673
|
-
- Sveltia CMS supports the [`sortable_fields`](#specifying-default-sort-field-and-direction), `view_filters` and `view_groups` options with the new `default` option. We still support the legacy Netlify/Decap CMS format as well, so you can use [either format](https://staticjscms.netlify.app/docs/decap-migration-guide#sortable-fields) for these options.
|
|
674
|
-
- Directory navigation in the Asset Library is partially supported in Sveltia CMS. If you define [collection-specific `media_folder`s](#using-a-custom-media-folder-for-a-collection), these folders will be displayed in the Asset Library and Select File/Image dialog. Display of subfolders within a configured folder will be implemented before GA. We don’t plan to support the `folder_support` and `display_in_navigation` options for `media_library`; subfolders will be displayed with no configuration. ([#301](https://github.com/sveltia/sveltia-cms/issues/301))
|
|
675
|
-
- The `logo_link` global option will not be supported. Use `display_url` or `site_url` instead.
|
|
676
|
-
- The `yaml` global option will not be supported, as Sveltia CMS doesn’t expose the underlying `yaml` library options for forward compatibility reasons. However, we do have some [data output options](#controlling-data-output), including YAML indentation and quotes.
|
|
677
|
-
- I18n support
|
|
678
|
-
- The `enforce_required_non_default` i18n option will not be supported. Sveitia CMS enforces required fields in all locales by default. However, the `initial_locales` i18n option allows users to [disable non-default locales](#disabling-non-default-locale-content) if needed. Developers can also specify a subset of locales with the `required` field option, e.g. `required: [en]`.
|
|
679
|
-
- Widgets
|
|
680
|
-
- The date/time format options for the DateTime widget are **not compatible** since Static CMS [switched to date-fns](https://staticjscms.netlify.app/docs/decap-migration-guide#dates) while Decap CMS and Sveltia CMS have replaced Moment.js with Day.js. Update your formats accordingly.
|
|
681
|
-
- The [KeyValue widget](#new-widgets) is implemented in Sveltia CMS with the same options.
|
|
682
|
-
- The [UUID widget](#new-widgets) is also implemented, but with different options.
|
|
683
|
-
- The `prefix` and `suffix` options for the Boolean, Number and String widgets are implemented as `before_input` and `after_input` in Sveltia CMS, respectively. Our `prefix` and `suffix` options for the String widget are literally a prefix and suffix to the value.
|
|
684
|
-
- The `multiple` option for the File and Image widgets will be implemented in Sveltia CMS before GA. ([#10](https://github.com/sveltia/sveltia-cms/issues/10))
|
|
685
|
-
- The [breaking change to the List widget](https://staticjscms.netlify.app/docs/decap-migration-guide#list-widget) doesn’t apply to Sveltia CMS. You must use the `field` (singular) option to produce a single subfield with [no `name` output](#understanding-exceptions-in-data-output).
|
|
686
|
-
- Customization
|
|
687
|
-
- `CMS.registerIcon()` will not be supported, as Sveltia CMS includes the Material Symbols font for [custom collection icons](#using-a-custom-icon-for-a-collection) that doesn’t require manual registration.
|
|
688
|
-
|
|
689
671
|
### Framework support
|
|
690
672
|
|
|
691
673
|
While Sveltia CMS is built with Svelte, the application is **framework-agnostic**. It’s a small, compiled, vanilla JavaScript bundle that manages content in a Git repository directly via an API. It doesn’t interact with the framework that builds your site.
|
|
@@ -711,13 +693,36 @@ Sveitia CMS works with all modern browsers, but there are a few limitations beca
|
|
|
711
693
|
|
|
712
694
|
### Deprecations
|
|
713
695
|
|
|
714
|
-
These options are deprecated and will be removed in Sveltia CMS
|
|
696
|
+
These options are deprecated and will be removed in Sveltia CMS 1.0:
|
|
715
697
|
|
|
716
698
|
- The `automatic_deployments` backend option. Use the new [`skip_ci` option](#disabling-automatic-deployments) instead, which is more intuitive. `automatic_deployments: false` is equivalent to `skip_ci: true`, and `automatic_deployments: true` is equivalent to `skip_ci: false`.
|
|
717
699
|
- The `save_all_locales` i18n option. Use the [`initial_locales` option](#disabling-non-default-locale-content) instead, which provides more flexibility. `save_all_locales: false` is equivalent to `initial_locales: all`.
|
|
718
700
|
- The `yaml_quote` collection option. `yaml_quote: true` is equivalent to `quote: double` in the [new YAML format options](#controlling-data-output).
|
|
719
701
|
- The `read_only` UUID widget option. Use the `readonly` common field option instead, which defaults to `true` for the UUID widget.
|
|
720
702
|
|
|
703
|
+
### Compatibility with Static CMS
|
|
704
|
+
|
|
705
|
+
Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/StaticJsCMS/static-cms), a now-defunct fork of Netlify CMS. Since Static CMS was archived some time ago, we don’t plan to implement additional compatibility beyond what’s listed below. However, we may still adopt some of their features that we find useful.
|
|
706
|
+
|
|
707
|
+
Static CMS made [some breaking changes](https://staticjscms.netlify.app/docs/decap-migration-guide) while Sveltia CMS mostly follows Netlify/Decap CMS, so you should review your configuration carefully.
|
|
708
|
+
|
|
709
|
+
- Configuration options
|
|
710
|
+
- Sveltia CMS supports the [`sortable_fields`](#specifying-default-sort-field-and-direction), `view_filters` and `view_groups` options with the new `default` option. We still support the legacy Netlify/Decap CMS format as well, so you can use [either format](https://staticjscms.netlify.app/docs/decap-migration-guide#sortable-fields) for these options.
|
|
711
|
+
- Directory navigation in the Asset Library is partially supported in Sveltia CMS. If you define [collection-specific `media_folder`s](#using-a-custom-media-folder-for-a-collection), these folders will be displayed in the Asset Library and Select File/Image dialog. We plan to implement the display of subfolders within a configured folder in Sveltia CMS 2.0. We don’t plan to support the `folder_support` and `display_in_navigation` options for `media_library`; subfolders will be displayed with no configuration. ([#301](https://github.com/sveltia/sveltia-cms/issues/301))
|
|
712
|
+
- The `logo_link` global option will not be supported. Use `display_url` or `site_url` instead.
|
|
713
|
+
- The `yaml` global option will not be supported, as Sveltia CMS doesn’t expose the underlying `yaml` library options for forward compatibility reasons. However, we do have some [data output options](#controlling-data-output), including YAML indentation and quotes.
|
|
714
|
+
- I18n support
|
|
715
|
+
- The `enforce_required_non_default` i18n option will not be supported. Sveitia CMS enforces required fields in all locales by default. However, the `initial_locales` i18n option allows users to [disable non-default locales](#disabling-non-default-locale-content) if needed. Developers can also specify a subset of locales with the `required` field option, e.g. `required: [en]`.
|
|
716
|
+
- Widgets
|
|
717
|
+
- The date/time format options for the DateTime widget are **not compatible** since Static CMS [switched to date-fns](https://staticjscms.netlify.app/docs/decap-migration-guide#dates) while Decap CMS and Sveltia CMS have replaced Moment.js with Day.js. Update your formats accordingly.
|
|
718
|
+
- The [KeyValue widget](#new-widgets) is implemented in Sveltia CMS with the same options.
|
|
719
|
+
- The [UUID widget](#new-widgets) is also implemented, but with different options.
|
|
720
|
+
- The `prefix` and `suffix` options for the Boolean, Number and String widgets are implemented as `before_input` and `after_input` in Sveltia CMS, respectively. Our `prefix` and `suffix` options for the String widget are literally a prefix and suffix to the value.
|
|
721
|
+
- The `multiple` option for the File and Image widgets will be implemented in Sveltia CMS before GA. ([#10](https://github.com/sveltia/sveltia-cms/issues/10))
|
|
722
|
+
- The [breaking change to the List widget](https://staticjscms.netlify.app/docs/decap-migration-guide#list-widget) doesn’t apply to Sveltia CMS. You must use the `field` (singular) option to produce a single subfield with [no `name` output](#understanding-exceptions-in-data-output).
|
|
723
|
+
- Customization
|
|
724
|
+
- `CMS.registerIcon()` will not be supported, as Sveltia CMS includes the Material Symbols font for [custom collection icons](#using-a-custom-icon-for-a-collection) that doesn’t require manual registration.
|
|
725
|
+
|
|
721
726
|
## Getting Started
|
|
722
727
|
|
|
723
728
|
### Installation & setup
|
|
@@ -741,7 +746,7 @@ Unfortunately, **we are unable to provide free installation and setup support**
|
|
|
741
746
|
|
|
742
747
|
### Migration
|
|
743
748
|
|
|
744
|
-
Have a look at the [compatibility info](#compatibility) above first. If you’re already using Netlify/Decap CMS with the GitHub, GitLab or Gitea/Forgejo backend and don’t have any unsupported features like
|
|
749
|
+
Have a look at the [compatibility info](#compatibility) above first. If you’re already using Netlify/Decap CMS with the GitHub, GitLab or Gitea/Forgejo backend and don’t have any unsupported features like editorial workflow or nested collections, migrating to Sveltia CMS is super easy — it works as a drop-in replacement.
|
|
745
750
|
|
|
746
751
|
Open `/admin/index.html` locally with an editor like VS Code and replace the CMS `<script>` tag with the new one:
|
|
747
752
|
|
|
@@ -1337,6 +1342,89 @@ media_libraries:
|
|
|
1337
1342
|
providers: []
|
|
1338
1343
|
```
|
|
1339
1344
|
|
|
1345
|
+
### Using entry tags for categorization
|
|
1346
|
+
|
|
1347
|
+
If you write blog posts, for example, you may want to categorize them with taxonomies, often called tags, categories, labels or keywords. With Sveltia CMS, there are several ways to implement this feature, depending on your needs.
|
|
1348
|
+
|
|
1349
|
+
If you don’t have a predefined list of tags, you can use a simple [List](https://decapcms.org/docs/widgets/#list) field. This configuration will produce a newline-separated text field where users can enter tags freely:
|
|
1350
|
+
|
|
1351
|
+
```yaml
|
|
1352
|
+
collections:
|
|
1353
|
+
- name: posts
|
|
1354
|
+
label: Blog Posts
|
|
1355
|
+
label_singular: Blog Post
|
|
1356
|
+
folder: content/posts
|
|
1357
|
+
create: true
|
|
1358
|
+
fields:
|
|
1359
|
+
- name: title
|
|
1360
|
+
label: Title
|
|
1361
|
+
- name: tags
|
|
1362
|
+
label: Tags
|
|
1363
|
+
widget: list
|
|
1364
|
+
- name: body
|
|
1365
|
+
label: Body
|
|
1366
|
+
widget: markdown
|
|
1367
|
+
```
|
|
1368
|
+
|
|
1369
|
+
If you have a small number of predefined tags, you can use a [Select](https://decapcms.org/docs/widgets/#select) field. This configuration will produce a dropdown list where users can select one or more tags:
|
|
1370
|
+
|
|
1371
|
+
```yaml
|
|
1372
|
+
fields:
|
|
1373
|
+
- name: tags
|
|
1374
|
+
label: Tags
|
|
1375
|
+
widget: select
|
|
1376
|
+
multiple: true
|
|
1377
|
+
options:
|
|
1378
|
+
- { label: Travel, value: travel }
|
|
1379
|
+
- { label: Food, value: food }
|
|
1380
|
+
- { label: Technology, value: technology }
|
|
1381
|
+
- { label: Lifestyle, value: lifestyle }
|
|
1382
|
+
```
|
|
1383
|
+
|
|
1384
|
+
If you want more flexibility, you can create a separate collection for tags and reference it using a [Relation](https://decapcms.org/docs/widgets/#relation) field from your blog post collection. This approach allows you to:
|
|
1385
|
+
|
|
1386
|
+
- Add many tags without bloating the configuration file
|
|
1387
|
+
- Manage tags in one place within the CMS
|
|
1388
|
+
- Reuse tags across multiple collections
|
|
1389
|
+
- Add a description, image and other details to each tag (if you have tag index pages)
|
|
1390
|
+
- Localize tags with [i18n support](https://decapcms.org/docs/i18n/) enabled
|
|
1391
|
+
|
|
1392
|
+
This configuration will also produce a dropdown list where users can select one or more tags:
|
|
1393
|
+
|
|
1394
|
+
```yaml
|
|
1395
|
+
fields:
|
|
1396
|
+
- name: tags
|
|
1397
|
+
label: Tags
|
|
1398
|
+
widget: relation
|
|
1399
|
+
multiple: true
|
|
1400
|
+
collection: tags
|
|
1401
|
+
search_fields: [title]
|
|
1402
|
+
display_fields: [title]
|
|
1403
|
+
value_field: '{{slug}}'
|
|
1404
|
+
```
|
|
1405
|
+
|
|
1406
|
+
And here is an example of the corresponding tag collection:
|
|
1407
|
+
|
|
1408
|
+
```yaml
|
|
1409
|
+
collections:
|
|
1410
|
+
- name: tags
|
|
1411
|
+
label: Tags
|
|
1412
|
+
label_singular: Tag
|
|
1413
|
+
folder: content/tags
|
|
1414
|
+
create: true
|
|
1415
|
+
fields:
|
|
1416
|
+
- name: title
|
|
1417
|
+
label: Title
|
|
1418
|
+
- name: description
|
|
1419
|
+
label: Description
|
|
1420
|
+
widget: text
|
|
1421
|
+
required: false
|
|
1422
|
+
- name: image
|
|
1423
|
+
label: Image
|
|
1424
|
+
widget: image
|
|
1425
|
+
required: false
|
|
1426
|
+
```
|
|
1427
|
+
|
|
1340
1428
|
### Editing site deployment configuration files
|
|
1341
1429
|
|
|
1342
1430
|
Sveltia CMS allows users to edit files without extensions. Examples include `_headers` and `_redirects`, which are used by some static site hosting providers, such as [Netlify](https://docs.netlify.com/routing/redirects/), [GitLab Pages](https://docs.gitlab.com/user/project/pages/redirects/) and [Cloudflare Pages](https://developers.cloudflare.com/pages/configuration/redirects/). Since the `body` field is [saved without the field name](#understanding-exceptions-in-data-output) when using the default `yaml-frontmatter` format, you can use the following configuration to edit these files in the Content Editor:
|
|
@@ -1738,11 +1826,13 @@ Planning to build a website with Sveltia CMS? Looking for professional support?
|
|
|
1738
1826
|
|
|
1739
1827
|
## Contributions
|
|
1740
1828
|
|
|
1741
|
-
See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/main/CONTRIBUTING.md). Bug reports are highly encouraged
|
|
1829
|
+
See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/main/CONTRIBUTING.md). Bug reports are highly encouraged.
|
|
1742
1830
|
|
|
1743
1831
|
## Roadmap
|
|
1744
1832
|
|
|
1745
|
-
|
|
1833
|
+
As mentioned in the [Project Status](#project-status) section, we aim to solve 400+ [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) in total over the course of this project. We also have lots of ideas to make Sveltia CMS a great product.
|
|
1834
|
+
|
|
1835
|
+
We cannot promise any specific features or release dates, but here is a rough roadmap for the next few years.
|
|
1746
1836
|
|
|
1747
1837
|
### v1.0
|
|
1748
1838
|
|
|
@@ -1763,10 +1853,11 @@ Due late 2025
|
|
|
1763
1853
|
|
|
1764
1854
|
### v2.0
|
|
1765
1855
|
|
|
1766
|
-
Due early 2026
|
|
1856
|
+
Due early/mid 2026
|
|
1767
1857
|
|
|
1768
1858
|
- Implementing [a few deferred Netlify/Decap CMS features](#current-limitations), including editorial workflow and nested collections, while addressing a number of bugs in their implementations
|
|
1769
|
-
-
|
|
1859
|
+
- They will probably first be included as beta features in v1.x releases
|
|
1860
|
+
- Tackling even more Netlify/Decap CMS issues to bring the total number of issues solved to 300:
|
|
1770
1861
|
- [Manual entry sorting](https://github.com/sveltia/sveltia-cms/issues/214)[^125]
|
|
1771
1862
|
- [Directory navigation in the Asset Library](https://github.com/sveltia/sveltia-cms/issues/420)[^240]
|
|
1772
1863
|
|
|
@@ -1789,12 +1880,17 @@ Due early 2026
|
|
|
1789
1880
|
- [Theming](https://github.com/sveltia/sveltia-cms/issues/29)[^262]
|
|
1790
1881
|
- [Reusable field groups](https://github.com/sveltia/sveltia-cms/discussions/463)[^263]
|
|
1791
1882
|
- Offline support[^238]
|
|
1792
|
-
-
|
|
1793
|
-
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1883
|
+
- Features to turn the CMS into a powerful NoSQL database management system:
|
|
1884
|
+
- Advanced Relation fields[^242]
|
|
1885
|
+
- Cascade updates/deletes[^243]
|
|
1886
|
+
- [Quick item additions](https://github.com/sveltia/sveltia-cms/issues/493)[^266]
|
|
1887
|
+
- [Reverse reference lists](https://github.com/sveltia/sveltia-cms/discussions/416)
|
|
1888
|
+
- Autoincrement fields[^286]
|
|
1889
|
+
- Unique constraints[^287]
|
|
1890
|
+
- Data integrity checks
|
|
1796
1891
|
- [Asset collections](https://github.com/sveltia/sveltia-cms/issues/301)[^271]
|
|
1797
1892
|
- [Automatic asset file renaming with templates](https://github.com/sveltia/sveltia-cms/issues/422)[^241]
|
|
1893
|
+
- PKCE for GitHub[^285] — It’s [not yet supported](https://github.com/orgs/community/discussions/15752) by GitHub
|
|
1798
1894
|
- and many more (100+ issues and discussions)
|
|
1799
1895
|
- Enhancements to Sveltia CMS Additions (some may be included in v3.0):
|
|
1800
1896
|
- Post locking[^166] (like [WordPress](https://codex.wordpress.org/Post_Locking))
|
|
@@ -1803,15 +1899,15 @@ Due early 2026
|
|
|
1803
1899
|
- Proxy for services that don’t support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS):
|
|
1804
1900
|
- [DeepL Translate](https://github.com/sveltia/sveltia-cms/issues/437)
|
|
1805
1901
|
- [Git LFS support for GitHub](https://github.com/sveltia/sveltia-cms/discussions/353)[^244]
|
|
1902
|
+
- Search enhancements:
|
|
1903
|
+
- Customizable search fields[^274]
|
|
1904
|
+
- Advanced search options
|
|
1905
|
+
- [Fuzzy search](https://www.fusejs.io/)
|
|
1806
1906
|
- [Local repository workflow](#working-with-a-local-git-repository) improvements: Git mode[^131] and change detection
|
|
1807
1907
|
- [Preact+HTM support](https://github.com/sveltia/sveltia-cms/discussions/153) for custom widgets, editor components and preview templates
|
|
1808
1908
|
- View, compare and restore revisions (like [WordPress](https://wordpress.com/support/page-post-revisions/))
|
|
1809
1909
|
- More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools, etc.
|
|
1810
1910
|
- More AI features for image generation, content writing, etc.
|
|
1811
|
-
- Search enhancements:
|
|
1812
|
-
- Customizable search fields[^274]
|
|
1813
|
-
- Advanced search options
|
|
1814
|
-
- [Fuzzy search](https://www.fusejs.io/)
|
|
1815
1911
|
- Advanced digital asset management (DAM) features, including image editing and tagging[^114]
|
|
1816
1912
|
- Marketplace for custom widgets, etc.[^273]
|
|
1817
1913
|
- Official starter templates for the most popular frameworks, including SvelteKit and Next.js
|
|
@@ -1824,11 +1920,13 @@ Due early 2026
|
|
|
1824
1920
|
- Framework-specific integrations, including a WYSIWYG editor. We will focus on framework-agnostic core features that are essential for succeeding Netlify/Decap CMS and modernizing the platform.
|
|
1825
1921
|
- Enterprise features. We want to keep Sveltia CMS simple and easy to use for small teams and individual developers.
|
|
1826
1922
|
- Monetization. We may offer an affordable cloud version in the future since self-hosting the CMS can be a hassle. However, we will not charge for the CMS itself. We want to keep it free and open source forever.
|
|
1923
|
+
- Creating the longest README file in the world. 😉
|
|
1827
1924
|
|
|
1828
1925
|
## Trivia
|
|
1829
1926
|
|
|
1830
1927
|
- The [original version of Netlify CMS](https://github.com/netlify/netlify-cms-legacy) was built with Ember before being rewritten in React. There was also an [attempt](https://github.com/decaporg/decap-cms/issues/328) to replace React with Preact. Now we have completely rebuilt it in Svelte 4 and then in Svelte 5. So this is effectively the third/fourth time the application has gone through a framework migration. One more thing: We may migrate to [Ripple](https://www.ripplejs.com/) in the future if it looks promising.
|
|
1831
1928
|
- Our [local repository workflow](#working-with-a-local-git-repository) shares implementation with the Test backend, as both utilize the [File System API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API), allowing us to reduce maintenance costs. The seamless local workflow is critical not only for improved DX, but also for our rapid application development.
|
|
1929
|
+
- The maintainer may look 25 years younger than his actual age. [Here’s why](https://github.com/kyoshino#fun-facts-about-me).
|
|
1832
1930
|
|
|
1833
1931
|
## Related Links
|
|
1834
1932
|
|
|
@@ -1841,10 +1939,24 @@ Due early 2026
|
|
|
1841
1939
|
- [Hugo – Front-end interfaces](https://gohugo.io/tools/front-ends/)
|
|
1842
1940
|
- [Made with Svelte](https://madewithsvelte.com/sveltia-cms)
|
|
1843
1941
|
|
|
1942
|
+
## Privacy
|
|
1943
|
+
|
|
1944
|
+
Sveltia CMS is not a service but a client-side application that runs in your web browser. You don’t need an account to use the app, but you do need to authenticate with your Git hosting provider to read and write remote data. All content is stored in your Git repository. No data is sent to any server operated by us.
|
|
1945
|
+
|
|
1946
|
+
GitHub (and GitLab, depending on your configuration) requires server-side authentication. If you choose the GitHub backend, you will need to use an OAuth application hosted by yourself or a third party, such as Netlify or Cloudflare, to retrieve an access token from GitHub. Alternatively, you can provide an access token directly on the CMS’s sign-in page. Other Git backends support client-side authentication. In any case, your token is stored in your browser’s local storage, and API requests are made directly between your browser and the Git hosting provider.
|
|
1947
|
+
|
|
1948
|
+
The CMS also integrates with various third-party services, including stock photo providers and translation services. These are “bring your own key” (BYOK) features that are entirely optional. You provide your own API keys for these services, which are stored in your browser’s local storage, and API requests are then made directly between your browser and the relevant service providers.
|
|
1949
|
+
|
|
1950
|
+
As we don’t collect any analytics data either, we don’t have a privacy policy. For third-party services, please refer to their respective privacy policies.
|
|
1951
|
+
|
|
1844
1952
|
## Disclaimer
|
|
1845
1953
|
|
|
1846
1954
|
This software is provided “as is” without any express or implied warranty. We are not obligated to provide any support for the application. This product is not affiliated with or endorsed by Netlify, Decap CMS or any other integrated services. All product names, logos, and brands are the property of their respective owners.
|
|
1847
1955
|
|
|
1956
|
+
## Acknowledgements
|
|
1957
|
+
|
|
1958
|
+
This project would not have been possible without the open source Netlify CMS project. We are grateful to the maintainers for their hard work over the years. We would also like to thank the Sveltia CMS user community for their valuable feedback and ongoing support, which has helped us to identify issues and improve the product.
|
|
1959
|
+
|
|
1848
1960
|
[^1]: Netlify/Decap CMS [#2557](https://github.com/decaporg/decap-cms/issues/2557)
|
|
1849
1961
|
|
|
1850
1962
|
[^2]: Netlify/Decap CMS [#2039](https://github.com/decaporg/decap-cms/issues/2039), [#3267](https://github.com/decaporg/decap-cms/issues/3267), [#7084](https://github.com/decaporg/decap-cms/discussions/7084)
|
|
@@ -2067,7 +2179,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2067
2179
|
|
|
2068
2180
|
[^112]: Netlify/Decap CMS [#5815](https://github.com/decaporg/decap-cms/issues/5815), [#6522](https://github.com/decaporg/decap-cms/issues/6522), [#6532](https://github.com/decaporg/decap-cms/issues/6532), [#6588](https://github.com/decaporg/decap-cms/issues/6588), [#6617](https://github.com/decaporg/decap-cms/issues/6617), [#6640](https://github.com/decaporg/decap-cms/issues/6640), [#6663](https://github.com/decaporg/decap-cms/issues/6663), [#6695](https://github.com/decaporg/decap-cms/issues/6695), [#6697](https://github.com/decaporg/decap-cms/issues/6697), [#6764](https://github.com/decaporg/decap-cms/issues/6764), [#6765](https://github.com/decaporg/decap-cms/issues/6765), [#6835](https://github.com/decaporg/decap-cms/issues/6835), [#6983](https://github.com/decaporg/decap-cms/issues/6983), [#7205](https://github.com/decaporg/decap-cms/issues/7205), [#7450](https://github.com/decaporg/decap-cms/issues/7450), [#7453](https://github.com/decaporg/decap-cms/issues/7453), [#7572](https://github.com/decaporg/decap-cms/issues/7572)
|
|
2069
2181
|
|
|
2070
|
-
[^113]: Netlify/Decap CMS [#5656](https://github.com/decaporg/decap-cms/issues/5656), [#5837](https://github.com/decaporg/decap-cms/issues/5837), [#5972](https://github.com/decaporg/decap-cms/issues/5972), [#6476](https://github.com/decaporg/decap-cms/issues/6476), [#6516](https://github.com/decaporg/decap-cms/issues/6516), [#6930](https://github.com/decaporg/decap-cms/issues/6930), [#7080](https://github.com/decaporg/decap-cms/issues/7080), [#7105](https://github.com/decaporg/decap-cms/issues/7105), [#7106](https://github.com/decaporg/decap-cms/issues/7106), [#7119](https://github.com/decaporg/decap-cms/issues/7119), [#7176](https://github.com/decaporg/decap-cms/issues/7176), [#7194](https://github.com/decaporg/decap-cms/issues/7194), [#7244](https://github.com/decaporg/decap-cms/issues/7244), [#7278](https://github.com/decaporg/decap-cms/issues/7278), [#7301](https://github.com/decaporg/decap-cms/issues/7301), [#7342](https://github.com/decaporg/decap-cms/issues/7342), [#7348](https://github.com/decaporg/decap-cms/issues/7348), [#7354](https://github.com/decaporg/decap-cms/issues/7354), [#7376](https://github.com/decaporg/decap-cms/issues/7376), [#7408](https://github.com/decaporg/decap-cms/issues/7408), [#7412](https://github.com/decaporg/decap-cms/issues/7412), [#7413](https://github.com/decaporg/decap-cms/issues/7413), [#7422](https://github.com/decaporg/decap-cms/issues/7422), [#7427](https://github.com/decaporg/decap-cms/issues/7427), [#7434](https://github.com/decaporg/decap-cms/issues/7434), [#7438](https://github.com/decaporg/decap-cms/issues/7438), [#7454](https://github.com/decaporg/decap-cms/issues/7454), [#7464](https://github.com/decaporg/decap-cms/issues/7464), [#7471](https://github.com/decaporg/decap-cms/issues/7471), [#7485](https://github.com/decaporg/decap-cms/issues/7485), [#7499](https://github.com/decaporg/decap-cms/issues/7499), [#7515](https://github.com/decaporg/decap-cms/issues/7515), [#7564](https://github.com/decaporg/decap-cms/issues/7564), [#7571](https://github.com/decaporg/decap-cms/issues/7571), [#7574](https://github.com/decaporg/decap-cms/issues/7574), [#7580](https://github.com/decaporg/decap-cms/issues/7580), [#7583](https://github.com/decaporg/decap-cms/issues/7583), [#7589](https://github.com/decaporg/decap-cms/issues/7589) — These `removeChild` crashes are common in React apps, likely caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).
|
|
2182
|
+
[^113]: Netlify/Decap CMS [#5656](https://github.com/decaporg/decap-cms/issues/5656), [#5837](https://github.com/decaporg/decap-cms/issues/5837), [#5972](https://github.com/decaporg/decap-cms/issues/5972), [#6476](https://github.com/decaporg/decap-cms/issues/6476), [#6516](https://github.com/decaporg/decap-cms/issues/6516), [#6930](https://github.com/decaporg/decap-cms/issues/6930), [#7080](https://github.com/decaporg/decap-cms/issues/7080), [#7105](https://github.com/decaporg/decap-cms/issues/7105), [#7106](https://github.com/decaporg/decap-cms/issues/7106), [#7119](https://github.com/decaporg/decap-cms/issues/7119), [#7176](https://github.com/decaporg/decap-cms/issues/7176), [#7194](https://github.com/decaporg/decap-cms/issues/7194), [#7244](https://github.com/decaporg/decap-cms/issues/7244), [#7278](https://github.com/decaporg/decap-cms/issues/7278), [#7301](https://github.com/decaporg/decap-cms/issues/7301), [#7342](https://github.com/decaporg/decap-cms/issues/7342), [#7348](https://github.com/decaporg/decap-cms/issues/7348), [#7354](https://github.com/decaporg/decap-cms/issues/7354), [#7376](https://github.com/decaporg/decap-cms/issues/7376), [#7408](https://github.com/decaporg/decap-cms/issues/7408), [#7412](https://github.com/decaporg/decap-cms/issues/7412), [#7413](https://github.com/decaporg/decap-cms/issues/7413), [#7422](https://github.com/decaporg/decap-cms/issues/7422), [#7427](https://github.com/decaporg/decap-cms/issues/7427), [#7434](https://github.com/decaporg/decap-cms/issues/7434), [#7438](https://github.com/decaporg/decap-cms/issues/7438), [#7454](https://github.com/decaporg/decap-cms/issues/7454), [#7464](https://github.com/decaporg/decap-cms/issues/7464), [#7471](https://github.com/decaporg/decap-cms/issues/7471), [#7485](https://github.com/decaporg/decap-cms/issues/7485), [#7499](https://github.com/decaporg/decap-cms/issues/7499), [#7515](https://github.com/decaporg/decap-cms/issues/7515), [#7564](https://github.com/decaporg/decap-cms/issues/7564), [#7571](https://github.com/decaporg/decap-cms/issues/7571), [#7574](https://github.com/decaporg/decap-cms/issues/7574), [#7580](https://github.com/decaporg/decap-cms/issues/7580), [#7583](https://github.com/decaporg/decap-cms/issues/7583), [#7589](https://github.com/decaporg/decap-cms/issues/7589), [#7593](https://github.com/decaporg/decap-cms/issues/7593), [#7595](https://github.com/decaporg/decap-cms/issues/7595), [#7601](https://github.com/decaporg/decap-cms/issues/7601) — These `removeChild` crashes are common in React apps, likely caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).
|
|
2071
2183
|
|
|
2072
2184
|
[^114]: Netlify/Decap CMS [#5029](https://github.com/decaporg/decap-cms/issues/5029), [#5048](https://github.com/decaporg/decap-cms/issues/5048)
|
|
2073
2185
|
|
|
@@ -2293,7 +2405,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2293
2405
|
|
|
2294
2406
|
[^225]: Netlify/Decap CMS [#7401](https://github.com/decaporg/decap-cms/issues/7401)
|
|
2295
2407
|
|
|
2296
|
-
[^226]: Netlify/Decap CMS [#7031](https://github.com/decaporg/decap-cms/pull/7031), [#7540](https://github.com/decaporg/decap-cms/issues/7540)
|
|
2408
|
+
[^226]: Netlify/Decap CMS [#7031](https://github.com/decaporg/decap-cms/pull/7031), [#7540](https://github.com/decaporg/decap-cms/issues/7540), [#7597](https://github.com/decaporg/decap-cms/discussions/7597)
|
|
2297
2409
|
|
|
2298
2410
|
[^227]: Netlify/Decap CMS [#6794](https://github.com/decaporg/decap-cms/pull/6794)
|
|
2299
2411
|
|
|
@@ -2410,3 +2522,9 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2410
2522
|
[^283]: Netlify/Decap CMS [#713](https://github.com/decaporg/decap-cms/issues/713)
|
|
2411
2523
|
|
|
2412
2524
|
[^284]: Netlify/Decap CMS [#7585](https://github.com/decaporg/decap-cms/issues/7585)
|
|
2525
|
+
|
|
2526
|
+
[^285]: Netlify/Decap CMS [#6597](https://github.com/decaporg/decap-cms/issues/6597)
|
|
2527
|
+
|
|
2528
|
+
[^286]: Netlify/Decap CMS [#2367](https://github.com/decaporg/decap-cms/issues/2367)
|
|
2529
|
+
|
|
2530
|
+
[^287]: Netlify/Decap CMS [#1069](https://github.com/decaporg/decap-cms/issues/1069)
|