@sveltia/cms 0.31.2 → 0.33.0

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 CHANGED
@@ -16,9 +16,14 @@ Sveltia CMS is a Git-based lightweight headless CMS under active development as
16
16
 
17
17
  Sveltia CMS was born in November 2022, when the progress of Netlify CMS was stalled for more than six months. [@kyoshino](https://github.com/kyoshino)’s clients wanted to replace their Netlify CMS instances without much effort, mainly to get better internationalization (i18n) support.
18
18
 
19
- To achieve radical improvements in UX, performance, i18n and other areas, it was decided to build an alternative from the ground up, while ensuring an easy migration path from the other. After proving the concept with a rapid [Svelte](https://svelte.dev/) prototype, development was accelerated to address their primary use cases. The new offering has since been named Sveltia CMS and released as open source software to encourage wider adoption.
19
+ To achieve radical improvements in UX, performance, i18n and other areas, it was decided to build an alternative from the ground up, while ensuring an easy migration path from the other. After proving the concept 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.
20
20
 
21
- Our goal is to make it a viable successor to Netlify CMS, expand the Git-based headless CMS market, empower small businesses and individuals who need a simple yet powerful CMS solution, and showcase the huge potential of the Svelte framework.
21
+ ### Our goals
22
+
23
+ - Making Sveltia CMS a viable successor to Netlify CMS
24
+ - Emerging as the leading open source offering in the Git-based headless CMS market
25
+ - Empowering small businesses and individuals who need a simple, free, yet powerful CMS solution
26
+ - Showcasing the vast potential of the Svelte framework
22
27
 
23
28
  ## Development status
24
29
 
@@ -28,7 +33,8 @@ While we are fixing reported bugs as fast as we can, usually within 24 hours, th
28
33
 
29
34
  - Ensuring maximum [compatibility with existing versions of Netlify/Decap CMS](#compatibility)
30
35
  - Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible
31
- - So far, 100+ of them have been effectively solved in Sveltia CMS, with the goal of reaching 150 by GA and 250 in later releases.
36
+ - So far, 100+ of them (or 180+ including duplicates) have been effectively solved in Sveltia CMS
37
+ - Target: 150 issues by GA, 250 in a later release
32
38
  - [Let us know](https://github.com/sveltia/sveltia-cms/issues/new) if you have any specific issues you’d like to see solved!
33
39
  - Responding to user feedback
34
40
  - Implementing our own UX enhancement ideas
@@ -45,34 +51,35 @@ We are working hard to create a **significantly better alternative to Netlify CM
45
51
 
46
52
  - Ready to be used as a drop-in replacement for Netlify/Decap CMS _in some casual use case scenarios_ with a single line of code update.
47
53
  - Your existing [configuration file](https://decapcms.org/docs/configuration-options/) can be reused as is.
48
- - Some features are still missing or will not be added though — look at the [compatibility info](#compatibility) below to see if you can migrate now or soon.
54
+ - However, some features are still missing or will not be added — look at the [compatibility info](#compatibility) below to see if you can migrate now or soon.
49
55
 
50
56
  ### Better UX
51
57
 
52
58
  - Created and maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code, design and marketing. You can expect constant improvements to the user experience (UX) and developer experience (DX) across the platform.
53
59
  - Offers a modern, intuitive user interface, including an immersive dark mode[^2], inspired in part by the Netlify CMS v3 prototype[^1].
54
60
  - Comes with touch device support. While the UI is not yet optimized for small screens, large tablets like iPad Pro or Pixel Tablet should work well. Mobile support is planned after the 1.0 release.
55
- - Made with Svelte, not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid fatal React app crashes[^999]. Best of all, Svelte offers great performance!
61
+ - Made with Svelte, not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid fatal React application crashes[^113]. Best of all, Svelte offers great performance!
56
62
  - The screenshots above are worth a thousand words, but read on to learn about many other improvements in detail.
57
63
 
58
64
  ### Better performance
59
65
 
60
66
  - Built completely from scratch with Svelte instead of forking React-based Netlify/Decap CMS. The app starts fast and stays fast. The compiled code is vanilla JavaScript — you can use it with almost any framework.
61
- - Small footprint: The bundle size is less than 500 KB when minified and gzipped, which is much lighter than bloated Netlify CMS (1.5 MB) and Decap CMS (1.8 MB)[^57][^64]. Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
62
- - No typing lag on input widgets, especially within nested lists and objects[^77].
67
+ - Small footprint: The bundle size is less than 500 KB when minified and gzipped, which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.8 MB) and Static CMS (a Netlify CMS fork, 2.6 MB), even though we haven’t implemented some features yet[^57][^64].
68
+ - The upcoming [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) upgrade is anticipated to deliver further performance improvements, including accelerated speed and even smaller bundle size (50+ KB reduction).
69
+ - Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
63
70
  - Uses the GraphQL API for GitHub and GitLab to quickly fetch content at once, so that entries and assets can be listed and searched instantly[^32][^65]. It also avoids the slowness and potential API rate limit violations caused by hundreds of requests with Relation widgets[^14].
64
71
  - Saving entries and assets to GitHub is also much faster thanks to the [GraphQL mutation](https://github.blog/changelog/2021-09-13-a-simpler-api-for-authoring-commits/).
65
72
  - Using caching and lazy loading techniques. A list of repository files is stored locally for faster startup and bandwidth savings.
66
73
  - Thumbnails of assets, including PDF files, are generated and cached for faster rendering of the Asset Library and other parts of the CMS[^39].
67
- - The upcoming [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) upgrade is anticipated to deliver a further boost in performance, including accelerated speed and reduced code size.
74
+ - No typing lag on input widgets, especially within nested lists and objects[^77].
68
75
 
69
76
  ### Better productivity
70
77
 
71
78
  - You can [work with a local Git repository](#working-with-a-local-git-repository) without any extra configuration or proxy server[^26].
72
- - Deleting an entry or asset file also deletes the empty enclosing folder, so you don’t have to delete it manually.
73
79
  - In addition to a streamlined workflow, it offers great performance by loading files natively through the browser rather than using a slow, ad hoc REST API.
74
80
  - It also avoids a number of issues, including the 30 MB file size limit[^51], an unknown error with `publish_mode`[^75], and an unused `logo_url`[^49].
75
- - Eliminates some workflow disruptions in the Content Editor:
81
+ - When you delete an entry or an asset file, the empty folder that contains it is also deleted, so you don’t have to delete it manually.
82
+ - Provides a smoother user experience in the Content Editor:
76
83
  - A local backup of an entry draft is automatically created without interruption by a confirmation dialog, which annoys users and can cause a page navigation problem if dismissed[^106]. The backup can then be reliably restored without unexpected overwriting[^85].
77
84
  - Click once (the Save button) instead of twice (Publish > Publish now) to save an entry.
78
85
  - The editor closes automatically when an entry is saved.
@@ -101,7 +108,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
101
108
 
102
109
  - Some servers and frameworks remove the trailing slash from the CMS URL (`/admin`) depending on the configuration. In such cases, the config file is loaded from a root-relative URL (`/admin/config.yml`) instead of a regular relative URL (`./config.yml` = `/config.yml`) that results in a 404 Not Found error[^107].
103
110
  - Supports a [JSON configuration file](#providing-a-json-configuration-file) that can be generated for bulk or complex collections[^60].
104
- - The application renders within the dimensions of the custom mount element (`<div id="nc-root">`), if it exists[^109].
111
+ - The application renders within the dimensions of a [custom mount element](https://decapcms.org/docs/custom-mounting/), if exists[^109].
105
112
 
106
113
  ### Better backend support
107
114
 
@@ -131,7 +138,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
131
138
  - Language labels appear in human-readable display names instead of ISO 639 language codes, which not everyone is familiar with. (For example, it might be difficult to recognize `DE` as German, `NL` as Dutch, or `ZH` as Chinese.)
132
139
  - The List widget’s `label` and `label_singular` are not converted to lowercase, which is especially problematic in German, where all nouns are capitalized[^98].
133
140
  - Content editing
134
- - [Integrates DeepL](#using-deepl-to-translate-entry-fields) to allow translation of text fields from another locale with one click.
141
+ - [Integrates DeepL](#using-deepl-to-translate-entry-fields) to allow translation of text fields from another locale with one click. More translation services will be added in the future.
135
142
  - You can [disable non-default locale content](#disabling-non-default-locale-content)[^15].
136
143
  - Boolean, DateTime, List and Number fields in the entry preview are displayed in a localized format.
137
144
  - Boolean fields are updated in real time between locales like other widgets to avoid confusion[^35].
@@ -142,20 +149,23 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
142
149
 
143
150
  ### Better collections
144
151
 
145
- - You can choose a [custom icon for each collection](#using-a-custom-icon-for-a-collection)[^3].
146
- - You can [add dividers to the collection list](#adding-dividers-to-the-collection-list).
147
- - Assets stored in a [per-collection media folder](#using-a-custom-media-folder-for-a-collection) can be displayed next to the entries.
148
- - You can use nested fields (dot notation) in the `path` option for a folder collection, e.g. `{{fields.state.name}}/{{slug}}`[^62].
149
- - You can use Markdown in collection descriptions[^79]. Bold, italic, strikethrough, code and links are allowed.
150
- - The New Entry button won’t appear when a developer accidentally sets the `create: true` option on a file collection because it’s useless[^89].
151
- - The Delete Entry button won’t appear when a developer accidentally sets the `delete: true` option on a file collection because the preconfigured files should not be deleted.
152
- - A folder collection filter with a boolean value works as expected[^93].
153
- - Sort by a DateTime field works as expected[^110].
154
- - Improved entry slugs
152
+ - Configuration
153
+ - You can [choose a custom icon for each collection](#using-a-custom-icon-for-a-collection) with the new `icon` collection option[^3].
154
+ - You can [add dividers to the collection list](#adding-dividers-to-the-collection-list) with the new `divider` collection option.
155
+ - You can specify the field name for a thumbnail displayed on the entry list with the new `thumbnail` collection option. A nested field can be specified using dot notation, e.g. `images.0.src`. If undefined, the `name` of the first image field is used.
156
+ - You can use nested fields (dot notation) in the `path` option for a folder collection, e.g. `{{fields.state.name}}/{{slug}}`[^62].
157
+ - You can use Markdown in the `description` collection option[^79]. Bold, italic, strikethrough, code and links are allowed.
158
+ - Entry slugs
155
159
  - You can [use a random UUID for an entry slug](#using-a-random-id-for-an-entry-slug).
156
160
  - Entry slug template tags support [filter transformations](https://decapcms.org/docs/summary-strings/) just like summary string template tags[^29].
157
161
  - Single quotes in a slug will be replaced with `sanitize_replacement` (default: hyphen) rather than being removed[^52].
158
162
  - You can set the maximum number of characters for an entry slug with the new `slug_length` collection option[^25].
163
+ - Entry listing
164
+ - A folder collection filter with a boolean value works as expected[^93].
165
+ - Sorting entries by a DateTime field works as expected[^110].
166
+ - Assets stored in a [per-collection media folder](#using-a-custom-media-folder-for-a-collection) can be displayed next to the entries.
167
+ - The New Entry button won’t appear when a developer accidentally sets the `create: true` option on a file collection because it’s useless[^89].
168
+ - The Delete Entry button won’t appear when a developer accidentally sets the `delete: true` option on a file collection because the preconfigured files should not be deleted.
159
169
 
160
170
  ### Better content editing
161
171
 
@@ -198,7 +208,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
198
208
  - You can enter spaces in a simple text-based List field[^50].
199
209
  - You can preview variable types without having to register a preview template[^42].
200
210
  - Markdown
201
- - The rich text editor is built with [Lexical](https://github.com/facebook/lexical) instead of [Slate](https://github.com/ianstormtaylor/slate), which solves various problems found in Netlify/Decap CMS, including fatal application crashes[^53][^70][^71][^72][^73].
211
+ - The rich text editor is built with [Lexical](https://github.com/facebook/lexical) instead of [Slate](https://github.com/ianstormtaylor/slate), which solves various problems found in Netlify/Decap CMS, including fatal application crashes[^53][^70][^71][^72][^73][^111].
202
212
  - You can set the default editor mode 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.
203
213
  - Line breaks are rendered as line breaks in the preview pane according to GitHub Flavored Markdown.
204
214
  - Object
@@ -215,8 +225,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
215
225
  - It’s possible to select an option with value `0`[^56].
216
226
  - `label` is displayed in the preview pane instead of `value`.
217
227
  - String
218
- - When a YouTube video URL is entered in a String field, it appears as an embedded video in the preview pane.
219
- - Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
228
+ - When a YouTube video URL is entered in a String field, it appears as an embedded video in the preview pane. Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
220
229
  - When a regular URL is entered in a String field, it appears as a link that can be opened in a new browser tab.
221
230
  - Supports the `type` option that accepts `url` or `email` as a value, which will validate the value as a URL or email.
222
231
  - Supports the `prefix` and `suffix` string options, which automatically prepend and/or append the developer-defined value to the user-input value.
@@ -227,7 +236,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
227
236
  - [Collection-specific assets](#using-a-custom-media-folder-for-a-collection) are listed for easy selection, while all assets are displayed in a separate tab[^19].
228
237
  - A new asset can be uploaded by dragging & dropping it into the dialog[^20].
229
238
  - A URL can also be entered in the dialog.
230
- - Integration with Pexels, Pixabay and Unsplash makes it easy to select and insert a free stock photo[^8]. More services will be added later.
239
+ - Integration with Pexels, Pixabay and Unsplash makes it easy to select and insert a free stock photo[^8]. More stock photo providers will be added in the future.
231
240
  - Large images automatically fit in the preview pane instead of being displayed at their original size, which can easily exceed the width of the pane.
232
241
  - List and Object
233
242
  - The `summary` is displayed correctly when it refers to a Relation field[^36].
@@ -235,8 +244,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
235
244
  - A required field containing only spaces or line breaks will result in a validation error, as if no characters were entered.
236
245
  - Relation and Select
237
246
  - If a dropdown list has options with long wrapping labels, they won’t overlap with the next option[^83].
238
- - When there are 5 or fewer options, the UI switches from a dropdown list to radio buttons (single-select) or checkboxes (multi-select) for faster data entry[^61].
239
- - This number can be changed with the `dropdown_threshold` option for the `relation` and `select` widgets.
247
+ - When there are 5 or fewer options, the UI switches from a dropdown list to radio buttons (single-select) or checkboxes (multi-select) for faster data entry[^61]. This number can be changed with the `dropdown_threshold` option for the `relation` and `select` widgets.
240
248
  - String and Text
241
249
  - Supports the `minlength` and `maxlength` options, which allow developers to specify the minimum and maximum number of characters required for input without having to write a custom regular expression with the `pattern` option. A character counter is available when one of the options is given, and a user-friendly validation error is displayed if the condition is not met.
242
250
 
@@ -254,12 +262,11 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
254
262
 
255
263
  - A completely new Asset Library, built separately from the image selection dialog, makes it easy to manage all of your files, including images, videos and documents[^96].
256
264
  - Navigate between the global media folder and per-collection media folders[^6].
257
- - Preview image, audio, video, text and PDF files.
258
- - Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
259
- - Copy the public URL[^74], file path, text data or image data of a selected asset to clipboard.
260
- - The file path starts with `/` as expected[^48].
261
- - Edit plain text assets, including SVG images.
262
- - Replace existing assets.
265
+ - Preview image, audio, video, text and PDF files. Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
266
+ - Copy the public URL[^74], file path, text data or image data of a selected asset to clipboard. The file path starts with `/` as expected[^48].
267
+ - Edit a plain text asset, including SVG images.
268
+ - Rename an existing asset.
269
+ - Replace an existing asset. If the asset is used in any entries, the File/Image fields will be automatically updated with a new file path.
263
270
  - Download one or more selected assets at once.
264
271
  - Delete one or more selected assets at once.
265
272
  - Upload multiple assets at once, including files in nested folders, by browsing or dragging and dropping them into the library[^5].
@@ -271,6 +278,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
271
278
  - Hidden files (dot files) don’t appear in the Asset Library[^47].
272
279
  - You can add assets using the Quick Add button in the upper right corner of the application.
273
280
  - Files are uploaded with their original names, without converting uppercase letters and spaces to lowercase letters and hyphens[^97].
281
+ - No fatal application crash when uploading assets[^112].
274
282
 
275
283
  ## Compatibility
276
284
 
@@ -308,7 +316,7 @@ Missing other features? Let us know by [filing an issue](https://github.com/svel
308
316
  - The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
309
317
  - Sveltia CMS has dropped the support for the deprecated Date widget following Decap CMS 3.0. Use the DateTime widget instead.
310
318
  - Remark plugins will not be supported, as they are not compatible with our Lexical-based rich text editor.
311
- - Undocumented [methods available on the `window.CMS` object](https://github.com/sveltia/sveltia-cms/blob/b7f62741e02dc390c63c03291f95b2ca315d811b/src/main.js#L3-L33) will not be implemented. This includes custom backends, if any.
319
+ - Undocumented [methods available on the `window.CMS` object](https://github.com/sveltia/sveltia-cms/blob/b7f62741e02dc390c63c03291f95b2ca315d811b/src/main.js#L3-L33) will not be implemented. This includes custom backends and custom media libraries, if any.
312
320
 
313
321
  ## Roadmap
314
322
 
@@ -327,6 +335,7 @@ Missing other features? Let us know by [filing an issue](https://github.com/svel
327
335
  ### After the 1.0 release
328
336
 
329
337
  - Compatibility with Static CMS, a community fork of Netlify CMS
338
+ - AI integrations
330
339
  - Roles[^23]
331
340
  - Config editor[^10]
332
341
  - Mobile support[^18]
@@ -429,7 +438,7 @@ Also, at this point, you have to reload the CMS to see the latest content after
429
438
 
430
439
  ### Using a custom icon for a collection
431
440
 
432
- You can have an icon for each collection for easy identification in the collection list.
441
+ You can specify an icon for each collection for easy identification in the collection list. You don’t need to install a custom icon set because the Material Symbols font file is already loaded for the application UI. Just pick one of the 2,500+ icons:
433
442
 
434
443
  1. Visit the [Material Symbols](https://fonts.google.com/icons?icon.set=Material+Symbols&icon.platform=android) page on Google Fonts.
435
444
  1. Search and select an icon, and copy the icon name displayed on the right panel.
@@ -511,8 +520,6 @@ If you have upgraded to DeepL API Pro, provide your new Authentication Key:
511
520
  1. Paste your key to the DeepL API Authentication Key field.
512
521
  1. Close the Settings dialog.
513
522
 
514
- More translation service providers will be added in the future.
515
-
516
523
  ### Localizing entry slugs
517
524
 
518
525
  In Sveltia CMS, it’s possible to localize entry slugs (filenames) if the i18n structure is `multiple_files` or `multiple_folders`. All you need is the `localize` filter for `slug` template tags:
@@ -762,113 +769,227 @@ Last but not least, don’t forget to star this project and spread the word so m
762
769
  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.
763
770
 
764
771
  [^1]: Netlify/Decap CMS [#2557](https://github.com/decaporg/decap-cms/issues/2557)
772
+
765
773
  [^2]: Netlify/Decap CMS [#3267](https://github.com/decaporg/decap-cms/issues/3267)
774
+
766
775
  [^3]: Netlify/Decap CMS [#1040](https://github.com/decaporg/decap-cms/issues/1040)
776
+
767
777
  [^4]: Netlify/Decap CMS [#3671](https://github.com/decaporg/decap-cms/issues/3671)
778
+
768
779
  [^5]: Netlify/Decap CMS [#1032](https://github.com/decaporg/decap-cms/issues/1032)
780
+
769
781
  [^6]: Netlify/Decap CMS [#3240](https://github.com/decaporg/decap-cms/issues/3240)
782
+
770
783
  [^7]: Netlify/Decap CMS [#4386](https://github.com/decaporg/decap-cms/issues/4386)
784
+
771
785
  [^8]: Netlify/Decap CMS [#2579](https://github.com/decaporg/decap-cms/issues/2579)
786
+
772
787
  [^9]: Netlify/Decap CMS [#3505](https://github.com/decaporg/decap-cms/issues/3505), [#4211](https://github.com/decaporg/decap-cms/issues/4211), [#5439](https://github.com/decaporg/decap-cms/issues/5439)
788
+
773
789
  [^10]: Netlify/Decap CMS [#341](https://github.com/decaporg/decap-cms/issues/341), [#1167](https://github.com/decaporg/decap-cms/issues/1167)
790
+
774
791
  [^11]: Netlify/Decap CMS [#1382](https://github.com/decaporg/decap-cms/issues/1382)
792
+
775
793
  [^12]: Netlify/Decap CMS [#1975](https://github.com/decaporg/decap-cms/issues/1975), [#3712](https://github.com/decaporg/decap-cms/issues/3712)
794
+
776
795
  [^13]: Netlify/Decap CMS [#5112](https://github.com/decaporg/decap-cms/issues/5112), [#5653](https://github.com/decaporg/decap-cms/issues/5653)
796
+
777
797
  [^14]: Netlify/Decap CMS [#4635](https://github.com/decaporg/decap-cms/issues/4635), [#5920](https://github.com/decaporg/decap-cms/issues/5920), [#6410](https://github.com/decaporg/decap-cms/issues/6410)
798
+
778
799
  [^15]: Netlify/Decap CMS [#6932](https://github.com/decaporg/decap-cms/issues/6932)
800
+
779
801
  [^16]: Netlify/Decap CMS [#2103](https://github.com/decaporg/decap-cms/issues/2103)
802
+
780
803
  [^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333)
804
+
781
805
  [^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441)
806
+
782
807
  [^19]: Netlify/Decap CMS [#5910](https://github.com/decaporg/decap-cms/issues/5910)
808
+
783
809
  [^20]: Netlify/Decap CMS [#4563](https://github.com/decaporg/decap-cms/issues/4563)
810
+
784
811
  [^21]: Netlify/Decap CMS [#4781](https://github.com/decaporg/decap-cms/issues/4781)
812
+
785
813
  [^22]: Netlify/Decap CMS [#3615](https://github.com/decaporg/decap-cms/issues/3615), [#4069](https://github.com/decaporg/decap-cms/issues/4069), [#5097](https://github.com/decaporg/decap-cms/issues/5097), [#6642](https://github.com/decaporg/decap-cms/issues/6642)
814
+
786
815
  [^23]: Netlify/Decap CMS [#2](https://github.com/decaporg/decap-cms/issues/2)
816
+
787
817
  [^24]: Netlify/Decap CMS [#6831](https://github.com/decaporg/decap-cms/issues/6831)
818
+
788
819
  [^25]: Netlify/Decap CMS [#526](https://github.com/decaporg/decap-cms/issues/526), [#6987](https://github.com/decaporg/decap-cms/issues/6987)
789
- [^26]: Netlify/Decap CMS [#3285](https://github.com/decaporg/decap-cms/issues/3285), [#7030](https://github.com/decaporg/decap-cms/issues/7030), [#7067](https://github.com/decaporg/decap-cms/issues/7067)
820
+
821
+ [^26]: Netlify/Decap CMS [#3285](https://github.com/decaporg/decap-cms/issues/3285), [#7030](https://github.com/decaporg/decap-cms/issues/7030), [#7067](https://github.com/decaporg/decap-cms/issues/7067), [#7217](https://github.com/decaporg/decap-cms/issues/7217)
822
+
790
823
  [^27]: Netlify/Decap CMS [#3285](https://github.com/decaporg/decap-cms/issues/5617)
824
+
791
825
  [^28]: Netlify/Decap CMS [#2677](https://github.com/decaporg/decap-cms/pull/2677), [#6836](https://github.com/decaporg/decap-cms/pull/6836)
826
+
792
827
  [^29]: Netlify/Decap CMS [#4783](https://github.com/decaporg/decap-cms/issues/4783)
828
+
793
829
  [^30]: Netlify/Decap CMS [#565](https://github.com/decaporg/decap-cms/issues/565)
830
+
794
831
  [^31]: Netlify/Decap CMS [#1045](https://github.com/decaporg/decap-cms/issues/1045)
832
+
795
833
  [^32]: Netlify/Decap CMS [#302](https://github.com/decaporg/decap-cms/issues/302), [#5549](https://github.com/decaporg/decap-cms/issues/5549)
834
+
796
835
  [^33]: Netlify/Decap CMS [#6513](https://github.com/decaporg/decap-cms/issues/6513)
836
+
797
837
  [^34]: Netlify/Decap CMS [#2138](https://github.com/decaporg/decap-cms/issues/2138)
838
+
798
839
  [^35]: Netlify/Decap CMS [#7086](https://github.com/decaporg/decap-cms/issues/7086)
840
+
799
841
  [^36]: Netlify/Decap CMS [#6325](https://github.com/decaporg/decap-cms/issues/6325)
842
+
800
843
  [^37]: Netlify/Decap CMS [#1481](https://github.com/decaporg/decap-cms/issues/1481)
844
+
801
845
  [^38]: Netlify/Decap CMS [#1984](https://github.com/decaporg/decap-cms/issues/1984)
846
+
802
847
  [^39]: Netlify/Decap CMS [#946](https://github.com/decaporg/decap-cms/issues/946)
848
+
803
849
  [^40]: Netlify/Decap CMS [#5630](https://github.com/decaporg/decap-cms/issues/5630)
850
+
804
851
  [^41]: Netlify/Decap CMS [#7011](https://github.com/decaporg/decap-cms/issues/7011)
852
+
805
853
  [^42]: Netlify/Decap CMS [#2307](https://github.com/decaporg/decap-cms/issues/2307)
854
+
806
855
  [^43]: Netlify/Decap CMS [#4387](https://github.com/decaporg/decap-cms/issues/4387), [#5381](https://github.com/decaporg/decap-cms/issues/5381)
856
+
807
857
  [^44]: Netlify/Decap CMS [#2613](https://github.com/decaporg/decap-cms/issues/2613)
858
+
808
859
  [^45]: Netlify/Decap CMS [#1424](https://github.com/decaporg/decap-cms/issues/1424)
860
+
809
861
  [^46]: Netlify/Decap CMS [#4726](https://github.com/decaporg/decap-cms/issues/4726)
862
+
810
863
  [^47]: Netlify/Decap CMS [#2370](https://github.com/decaporg/decap-cms/issues/2370), [#5596](https://github.com/decaporg/decap-cms/issues/5596)
864
+
811
865
  [^48]: Netlify/Decap CMS [#5569](https://github.com/decaporg/decap-cms/issues/5569)
866
+
812
867
  [^49]: Netlify/Decap CMS [#5752](https://github.com/decaporg/decap-cms/issues/5752)
868
+
813
869
  [^50]: Netlify/Decap CMS [#4646](https://github.com/decaporg/decap-cms/issues/4646), [#7167](https://github.com/decaporg/decap-cms/issues/7167)
870
+
814
871
  [^51]: Netlify/Decap CMS [#6731](https://github.com/decaporg/decap-cms/issues/6731)
872
+
815
873
  [^52]: Netlify/Decap CMS [#7147](https://github.com/decaporg/decap-cms/issues/7147)
874
+
816
875
  [^53]: Netlify/Decap CMS [#512](https://github.com/decaporg/decap-cms/issues/512), [#5673](https://github.com/decaporg/decap-cms/issues/5673), [#6707](https://github.com/decaporg/decap-cms/issues/6707)
876
+
817
877
  [^54]: Netlify/Decap CMS [#1347](https://github.com/decaporg/decap-cms/issues/1347), [#4629](https://github.com/decaporg/decap-cms/issues/4629), [#6287](https://github.com/decaporg/decap-cms/issues/6287), [#6826](https://github.com/decaporg/decap-cms/issues/6826) — Decap 3.0 updated the Slate editor in an attempt to fix the problems, but the IME issues remain unresolved when using a mobile/tablet browser.
878
+
818
879
  [^55]: Netlify/Decap CMS [#4480](https://github.com/decaporg/decap-cms/issues/4480), [#6353](https://github.com/decaporg/decap-cms/issues/6353)
880
+
819
881
  [^56]: Netlify/Decap CMS [#6515](https://github.com/decaporg/decap-cms/issues/6515)
882
+
820
883
  [^57]: Netlify/Decap CMS [#328](https://github.com/decaporg/decap-cms/issues/328)
884
+
821
885
  [^58]: Netlify/Decap CMS [#5125](https://github.com/decaporg/decap-cms/issues/5125)
886
+
822
887
  [^59]: Netlify/Decap CMS [#1654](https://github.com/decaporg/decap-cms/issues/1654)
888
+
823
889
  [^60]: Netlify/Decap CMS [#386](https://github.com/decaporg/decap-cms/issues/386)
890
+
824
891
  [^61]: Netlify/Decap CMS [#1489](https://github.com/decaporg/decap-cms/issues/1489), [#5838](https://github.com/decaporg/decap-cms/issues/5838)
892
+
825
893
  [^62]: Netlify/Decap CMS [#7192](https://github.com/decaporg/decap-cms/issues/7192)
894
+
826
895
  [^63]: Netlify/Decap CMS [#4877](https://github.com/decaporg/decap-cms/issues/4877)
896
+
827
897
  [^64]: Netlify/Decap CMS [#3853](https://github.com/decaporg/decap-cms/issues/3853)
898
+
828
899
  [^65]: Netlify/Decap CMS [#6034](https://github.com/decaporg/decap-cms/issues/6034)
900
+
829
901
  [^66]: Netlify/Decap CMS [#3353](https://github.com/decaporg/decap-cms/issues/3353)
902
+
830
903
  [^67]: Netlify/Decap CMS [#7077](https://github.com/decaporg/decap-cms/issues/7077)
904
+
831
905
  [^68]: Netlify/Decap CMS [#6978](https://github.com/decaporg/decap-cms/issues/6978)
906
+
832
907
  [^69]: Netlify/Decap CMS [#6994](https://github.com/decaporg/decap-cms/issues/6994)
908
+
833
909
  [^70]: Netlify/Decap CMS [#6482](https://github.com/decaporg/decap-cms/issues/6482)
834
- [^71]: Netlify/Decap CMS [#6999](https://github.com/decaporg/decap-cms/issues/6999), [#7000](https://github.com/decaporg/decap-cms/issues/7000), [#7001](https://github.com/decaporg/decap-cms/issues/7001), [#7152](https://github.com/decaporg/decap-cms/issues/7152)
910
+
911
+ [^71]: Netlify/Decap CMS [#6999](https://github.com/decaporg/decap-cms/issues/6999), [#7000](https://github.com/decaporg/decap-cms/issues/7000), [#7001](https://github.com/decaporg/decap-cms/issues/7001), [#7152](https://github.com/decaporg/decap-cms/issues/7152), [#7220](https://github.com/decaporg/decap-cms/issues/7220)
912
+
835
913
  [^72]: Netlify/Decap CMS [#7047](https://github.com/decaporg/decap-cms/issues/7047)
836
- [^73]: Netlify/Decap CMS [#7123](https://github.com/decaporg/decap-cms/issues/7123)
914
+
915
+ [^73]: Netlify/Decap CMS [#6993](https://github.com/decaporg/decap-cms/issues/6993), [#7123](https://github.com/decaporg/decap-cms/issues/7123), [#7127](https://github.com/decaporg/decap-cms/issues/7127), [#7128](https://github.com/decaporg/decap-cms/issues/7128)
916
+
837
917
  [^74]: Netlify/Decap CMS [#4209](https://github.com/decaporg/decap-cms/issues/4209)
918
+
838
919
  [^75]: Netlify/Decap CMS [#5472](https://github.com/decaporg/decap-cms/issues/5472)
920
+
839
921
  [^76]: Netlify/Decap CMS [#4738](https://github.com/decaporg/decap-cms/issues/4738)
922
+
840
923
  [^77]: Netlify/Decap CMS [#3415](https://github.com/decaporg/decap-cms/issues/3415), [#6565](https://github.com/decaporg/decap-cms/issues/6565)
924
+
841
925
  [^78]: Netlify/Decap CMS [#2294](https://github.com/decaporg/decap-cms/issues/2294), [#3046](https://github.com/decaporg/decap-cms/issues/3046), [#4363](https://github.com/decaporg/decap-cms/issues/4363)
926
+
842
927
  [^79]: Netlify/Decap CMS [#5726](https://github.com/decaporg/decap-cms/issues/5726)
928
+
843
929
  [^80]: Netlify/Decap CMS [#5493](https://github.com/decaporg/decap-cms/issues/5493), [#6600](https://github.com/decaporg/decap-cms/issues/6600)
930
+
844
931
  [^81]: Netlify/Decap CMS [#4645](https://github.com/decaporg/decap-cms/issues/4645)
932
+
845
933
  [^82]: Netlify/Decap CMS [#6500](https://github.com/decaporg/decap-cms/issues/6500)
934
+
846
935
  [^83]: Netlify/Decap CMS [#6508](https://github.com/decaporg/decap-cms/issues/6508)
936
+
847
937
  [^84]: Netlify/Decap CMS [#7142](https://github.com/decaporg/decap-cms/issues/7142)
938
+
848
939
  [^85]: Netlify/Decap CMS [#5055](https://github.com/decaporg/decap-cms/issues/5055), [#5470](https://github.com/decaporg/decap-cms/issues/5470), [#6989](https://github.com/decaporg/decap-cms/issues/6989)
940
+
849
941
  [^86]: Netlify/Decap CMS [#6759](https://github.com/decaporg/decap-cms/issues/6759), [#6901](https://github.com/decaporg/decap-cms/issues/6901)
942
+
850
943
  [^87]: Netlify/Decap CMS [#5280](https://github.com/decaporg/decap-cms/issues/5280)
944
+
851
945
  [^88]: Netlify/Decap CMS [#1267](https://github.com/decaporg/decap-cms/issues/1267)
946
+
852
947
  [^89]: Netlify/Decap CMS [#4255](https://github.com/decaporg/decap-cms/issues/4255)
948
+
853
949
  [^90]: Netlify/Decap CMS [#725](https://github.com/decaporg/decap-cms/issues/725)
950
+
854
951
  [^91]: Netlify/Decap CMS [#4954](https://github.com/decaporg/decap-cms/issues/4954)
952
+
855
953
  [^92]: Netlify/Decap CMS [#1466](https://github.com/decaporg/decap-cms/issues/1466)
954
+
856
955
  [^93]: Netlify/Decap CMS [#1000](https://github.com/decaporg/decap-cms/issues/1000)
956
+
857
957
  [^94]: Netlify/Decap CMS [#5487](https://github.com/decaporg/decap-cms/issues/5487)
958
+
858
959
  [^95]: Netlify/Decap CMS [#4417](https://github.com/decaporg/decap-cms/issues/4417)
960
+
859
961
  [^96]: Netlify/Decap CMS [#962](https://github.com/decaporg/decap-cms/issues/962)
962
+
860
963
  [^97]: Netlify/Decap CMS [#4288](https://github.com/decaporg/decap-cms/issues/4288)
964
+
861
965
  [^98]: Netlify/Decap CMS [#3856](https://github.com/decaporg/decap-cms/issues/3856)
966
+
862
967
  [^99]: Netlify/Decap CMS [#1685](https://github.com/decaporg/decap-cms/issues/1685)
968
+
863
969
  [^100]: Netlify/Decap CMS [#4147](https://github.com/decaporg/decap-cms/issues/4147)
970
+
864
971
  [^101]: Netlify/Decap CMS [#5969](https://github.com/decaporg/decap-cms/issues/5969)
972
+
865
973
  [^102]: Netlify/Decap CMS [#1270](https://github.com/decaporg/decap-cms/issues/1270)
974
+
866
975
  [^103]: Netlify/Decap CMS [#6307](https://github.com/decaporg/decap-cms/issues/6307)
976
+
867
977
  [^104]: Netlify/Decap CMS [#6819](https://github.com/decaporg/decap-cms/issues/6819)
978
+
868
979
  [^105]: Netlify/Decap CMS [#5701](https://github.com/decaporg/decap-cms/issues/5701)
980
+
869
981
  [^106]: Netlify/Decap CMS [#2822](https://github.com/decaporg/decap-cms/issues/2822)
982
+
870
983
  [^107]: Netlify/Decap CMS [#332](https://github.com/decaporg/decap-cms/issues/332), [#683](https://github.com/decaporg/decap-cms/issues/683), [#999](https://github.com/decaporg/decap-cms/issues/999), [#1456](https://github.com/decaporg/decap-cms/issues/1456), [#4175](https://github.com/decaporg/decap-cms/issues/4175), [#5688](https://github.com/decaporg/decap-cms/issues/5688), [#6828](https://github.com/decaporg/decap-cms/issues/6828), [#6862](https://github.com/decaporg/decap-cms/issues/6862), [#7023](https://github.com/decaporg/decap-cms/issues/7023)
984
+
871
985
  [^108]: Netlify/Decap CMS [#6829](https://github.com/decaporg/decap-cms/issues/6829)
986
+
872
987
  [^109]: Netlify/Decap CMS [#7197](https://github.com/decaporg/decap-cms/issues/7197)
988
+
873
989
  [^110]: Netlify/Decap CMS [#4637](https://github.com/decaporg/decap-cms/issues/4637)
874
- [^999]: 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), [#6965](https://github.com/decaporg/decap-cms/issues/6965), [#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) — These `removeChild` crashes are common in React apps and seem to be caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).
990
+
991
+ [^111]: Netlify/Decap CMS [#7190](https://github.com/decaporg/decap-cms/issues/7190), [#7218](https://github.com/decaporg/decap-cms/issues/7218)
992
+
993
+ [^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)
994
+
995
+ [^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), [#6965](https://github.com/decaporg/decap-cms/issues/6965), [#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) — These `removeChild` crashes are common in React apps and seem to be caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).