@sveltia/cms 0.23.0 → 0.24.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 CHANGED
@@ -27,35 +27,34 @@ Our goal is to make it a viable successor to Netlify CMS, expand the Git-based h
27
27
  While we are fixing reported bugs as fast as we can, usually within 24 hours, the overall progress may be slower than you think. The thing is, it’s not just a personal project of [@kyoshino](https://github.com/kyoshino), but also involves different kinds of activities:
28
28
 
29
29
  - Ensuring maximum compatibility with existing versions of Netlify/Decap CMS
30
- - Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible (so far 75+ of them have been effectively solved in Sveltia CMS, with the goal of reaching 100 by GA)
30
+ - Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible (so far 70+ of them have been effectively solved in Sveltia CMS, with the goal of reaching 100 by GA)
31
31
  - Implementing our own enhancement ideas
32
32
 
33
33
  At this point, **we are aiming to ship version 1.0 in Q3 2024**. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) for updates.
34
34
 
35
35
  ## Features
36
36
 
37
- We are working hard to create a **significantly better alternative to Netlify CMS** and Decap CMS by improving everything. Here’s what makes Sveltia CMS different. Look how serious we are!
37
+ We are working hard to create a **significantly better alternative to Netlify CMS and Decap CMS** by improving everything. Here’s what makes Sveltia CMS different. Look how serious we are!
38
38
 
39
39
  ### Compatible with Netlify/Decap CMS
40
40
 
41
41
  - Ready to replace Netlify/Decap CMS _in some casual use case scenarios_ by updating a single line of code.
42
42
  - Your existing [configuration file](https://decapcms.org/docs/configuration-options/) can be reused as is.
43
- - Various features are still missing though — look at the [compatibility info](#compatibility) below to see if you can migrate.
43
+ - Various features are still missing though — look at the [compatibility info](#compatibility) below to see if you can migrate now or soon.
44
44
 
45
45
  ### Better UX
46
46
 
47
47
  - Created and maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code, design and marketing. You can expect constant UX improvements across the platform.
48
48
  - Offers a modern, intuitive user interface, including an immersive dark mode[^2], inspired in part by the Netlify CMS v3 prototype[^1].
49
49
  - 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.
50
- - Made with Svelte, not React, means we can spend more time on UX rather than tedious state management.
51
- - The screenshots above are worth a thousand words!
52
- - Read on to learn about many other enhancements, including performance, productivity, accessibility, service integrations, and an all-new Asset Library.
50
+ - 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 crashes in a React application[^100]. Best of all, Svelte offers great performance!
51
+ - The screenshots above are worth a thousand words, but read on to learn about many other improvements in detail.
53
52
 
54
53
  ### Better performance
55
54
 
56
55
  - 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.
57
- - 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]. Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
58
- - 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]. It also avoids the slowness and potential API rate limit violations caused by hundreds of requests with Relation widgets[^14].
56
+ - 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).
57
+ - 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].
59
58
  - 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/).
60
59
  - Using caching and lazy loading techniques. A list of repository files is stored locally for faster startup and bandwidth savings.
61
60
  - Thumbnails of assets, including PDF files, are generated and cached for faster rendering of the Asset Library and other parts of the CMS[^39].
@@ -64,7 +63,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
64
63
  ### Better productivity
65
64
 
66
65
  - You can [work with a local Git repository](#working-with-a-local-git-repository) without any configuration or proxy server[^26].
67
- - In addition to a streamlined workflow, it offers great performance by loading files natively through the browser rather than using a slow, ad hoc API.
66
+ - 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.
68
67
  - It also allows you to bypass the 30 MB file size limit[^51].
69
68
  - The `logo_url` defined in the configuration will be used[^49].
70
69
  - Eliminates some workflow disruptions in the Content Editor:
@@ -78,11 +77,11 @@ We are working hard to create a **significantly better alternative to Netlify CM
78
77
  - Search for entries and assets: `Ctrl+F` (Windows/Linux) or `Command+F` (macOS)
79
78
  - Create a new entry: `Ctrl+E` (Windows/Linux) or `Command+E` (macOS)
80
79
  - Save an entry: `Ctrl+S` (Windows/Linux) or `Command+S` (macOS)
81
- - Never miss out on the latest features and bug fixes by being notified when an update to the CMS is available[^31].
80
+ - 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].
82
81
 
83
82
  ### Better accessibility
84
83
 
85
- - Improved keyboard handling lets you efficiently navigate through UI elements using the Tab, Space, Enter and arrow keys[^17].
84
+ - Improved keyboard handling lets you efficiently navigate through UI elements using the Tab, Space, Enter and arrow keys[^17][^67].
86
85
  - Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver.
87
86
  - Ensures sufficient contrast between the foreground text and background colours.
88
87
  - Honours your operating system’s [reduced motion](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion) and [reduced transparency](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-transparency) settings.
@@ -101,6 +100,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
101
100
  - The Git branch name is automatically set to the repository’s default branch (`main`, `master` or whatever) if not specified in the configuration file, preventing data loading errors due to a hardcoded fallback to `master`[^27].
102
101
  - You can [disable automatic deployments](#disabling-automatic-deployments) by default or on demand to save costs and resources associated with CI/CD and to publish multiple changes at once[^24].
103
102
  - The GitLab backend support comes with background service status checking, just like GitHub.
103
+ - You can quickly open the source file of an entry or asset in your repository using View on GitHub (or GitLab) under the 3-dot menu.
104
104
 
105
105
  ### Better i18n support
106
106
 
@@ -111,11 +111,12 @@ We are working hard to create a **significantly better alternative to Netlify CM
111
111
  - [Integrates DeepL](#using-deepl-to-translate-entry-fields) to allow translation of text fields from another locale with one click.
112
112
  - You can [disable non-default locale content](#disabling-non-default-locale-content)[^15].
113
113
  - You can [use a random UUID for an entry slug](#using-a-random-id-for-an-entry-slug), which is a good option for locales that write in non-Latin characters.
114
- - Removes the [limitations in the List and Object widgets](https://decapcms.org/docs/i18n/#limitations) so that changes made with these widgets will be duplicated between locales as expected when using the `i18n: duplicate` field configuration[^7].
114
+ - Removes the [limitations in the List and Object widgets](https://decapcms.org/docs/i18n/#limitations) so that changes made with these widgets will be duplicated between locales as expected when using the `i18n: duplicate` field configuration[^7][^68].
115
115
  - Raises a validation error instead of failing silently if the `single_file` structure is used and a required field is not filled in any of the locales[^55].
116
116
  - [Entry-relative media folders](https://decapcms.org/docs/collection-folder/#media-and-public-folder) can be used in conjunction with the `multiple_folders` i18n structure[^21].
117
117
  - Boolean fields are updated in real time between locales like other widgets to avoid confusion[^35].
118
118
  - Solves problems with Chinese, Japanese and Korean (CJK) [IME](https://en.wikipedia.org/wiki/Input_method) text input in the rich text editor for the Markdown widget[^54].
119
+ - You can use the `{{locale}}` template tag in the [`preview_path`](https://decapcms.org/docs/configuration-options/#preview_path) collection option to provide site preview links for each language[^63].
119
120
 
120
121
  ### Better collections
121
122
 
@@ -125,6 +126,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
125
126
  - Entry slug template tags support [filter transformations](https://decapcms.org/docs/summary-strings/) just like summary string template tags[^29].
126
127
  - You can set the maximum number of characters for an entry slug with the new `slug_length` collection option[^25].
127
128
  - Single quotes in a slug will be replaced with `sanitize_replacement` (default: hyphen) rather than being removed[^52].
129
+ - You can use nested fields (dot notation) in the `path` option for a folder collection, e.g. `{{fields.state.name}}/{{slug}}`[^62].
128
130
 
129
131
  ### Better content editing
130
132
 
@@ -139,7 +141,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
139
141
 
140
142
  - For data consistency, Boolean, List (see below) and other fields are always saved as a proper value, such as an empty string or an empty array, rather than nothing, even if it’s optional or empty.
141
143
  - Leading and trailing spaces in text-type field values are automatically removed when you save an entry[^37].
142
- - JSON/TOML/YAML data is saved with a new line at the end of the file to prevent unnecessary changes being made to the file[^11].
144
+ - JSON/TOML/YAML data is saved with a new line at the end of the file to prevent unnecessary changes being made to the file[^11][^69].
143
145
  - String values in YAML files can be quoted with the new `yaml_quote: true` option for a collection, mainly for framework compatibility[^9].
144
146
 
145
147
  ### Better widgets
@@ -153,7 +155,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
153
155
  - You can enter spaces in a simple text-based List field[^50].
154
156
  - You can preview variable types without having to register a preview template[^42].
155
157
  - Markdown
156
- - The rich text editor is built with [Lexical](https://github.com/facebook/lexical) instead of [Slate](https://github.com/ianstormtaylor/slate), which solves several problems found in Netlify/Decap CMS, including fatal application crashes[^53].
158
+ - The rich text editor is built with [Lexical](https://github.com/facebook/lexical) instead of [Slate](https://github.com/ianstormtaylor/slate), which solves several problems found in Netlify/Decap CMS, including fatal application crashes[^53][^70][^71][^72][^73].
157
159
  - 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.
158
160
  - Object
159
161
  - Supports [variable types](https://decapcms.org/docs/variable-type-widgets/) just like the List widget. This allows you to have dependent fields in a collection[^30].
@@ -163,6 +165,8 @@ We are working hard to create a **significantly better alternative to Netlify CM
163
165
  - Select
164
166
  - It’s possible to select an option with value `0`[^56].
165
167
  - String
168
+ - When a YouTube video URL is entered in a String field, it appears as an embedded video in the preview pane.
169
+ - Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
166
170
  - Supports the `type` property that accepts `url` or `email` as a value, which will validate the value as a URL or email.
167
171
  - Supports the `prefix` and `suffix` string properties, which automatically prepend and/or append the developer-defined value to the user-input value.
168
172
  - Boolean, Number and String
@@ -178,7 +182,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
178
182
  - Markdown, String and Text
179
183
  - A required field containing only spaces or line breaks will result in a validation error, as if no characters were entered.
180
184
  - Relation and Select
181
- - When there are 5 or fewer options, the UI switches from a dropdown list to checkboxes or radio buttons for faster data entry[^61].
185
+ - 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].
182
186
 
183
187
  #### New widgets
184
188
 
@@ -215,7 +219,7 @@ We are trying to make Sveltia CMS as compatible as possible with Netlify/Decap C
215
219
 
216
220
  ### Current limitations
217
221
 
218
- The table below shows the current limitations of Sveltia CMS, that are expected to be resolved before GA:
222
+ These limitations are expected to be resolved before GA:
219
223
 
220
224
  | Feature | Status in Sveltia CMS |
221
225
  | --- | --- |
@@ -236,6 +240,8 @@ The table below shows the current limitations of Sveltia CMS, that are expected
236
240
  | Map | Not yet supported. |
237
241
  | Markdown | Editor components are not yet supported. |
238
242
 
243
+ If we have missed any other features, let us know by [filing an issue](https://github.com/sveltia/sveltia-cms/issues).
244
+
239
245
  ### Features not to be implemented
240
246
 
241
247
  - The deprecated client-side implicit grant for the GitLab backend will not be supported, as it has already been [removed from GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/344609). Use the client-side PKCE authorization instead.
@@ -244,6 +250,7 @@ The table below shows the current limitations of Sveltia CMS, that are expected
244
250
  - The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
245
251
  - Sveltia CMS has dropped the support for the deprecated Date widget following Decap CMS 3.0. Use the DateTime widget instead.
246
252
  - Remark plugins will not be supported, as they are not compatible with our Lexical-based rich text editor.
253
+ - 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.
247
254
 
248
255
  ## Roadmap
249
256
 
@@ -283,7 +290,7 @@ Alternatively, you can probably use one of the [Netlify/Decap CMS templates](htt
283
290
 
284
291
  ### Migration
285
292
 
286
- Have a look at the [compatibility info](#compatibility) above first. If you’re already using Netlify/Decap CMS with the GitHub or GitLab backend and don’t have any custom widget, custom preview or plugin, migrating to Sveltia CMS is super easy. Edit `/admin/index.html` to replace the CMS `script` tag, and push the change to your repository.
293
+ Have a look at the [compatibility info](#compatibility) above first. If you’re already using Netlify/Decap CMS with the GitHub or GitLab backend and don’t have any custom widget, custom preview or plugin, migrating to Sveltia CMS is super easy — it works as a drop-in replacement. Edit `/admin/index.html` to replace the CMS `script` tag, and push the change to your repository.
287
294
 
288
295
  From Netlify CMS:
289
296
 
@@ -309,7 +316,7 @@ For advanced users, we have also made the bundle available as an [npm package](h
309
316
 
310
317
  Updating Sveltia CMS is transparent, unless you include a specific version in the `<script>` source URL or use the npm package. Whenever you (re)load the CMS, the latest version will be served via [UNPKG](https://unpkg.com/). The CMS also periodically checks for updates and notifies you when a new version is available. After the product reaches GA, you could use a semantic version range (`^1.0.0`) like Netlify/Decap CMS.
311
318
 
312
- If you’ve chosen to install with npm, updating the package is your responsibility. We recommend using [`ncu`](https://www.npmjs.com/package/npm-check-updates) to keep dependencies up to date, otherwise you’ll miss important bug fixes and new features.
319
+ If you’ve chosen to install with npm, updating the package is your responsibility. We recommend using [`ncu`](https://www.npmjs.com/package/npm-check-updates) or a service like [Dependabot](https://github.blog/2020-06-01-keep-all-your-packages-up-to-date-with-dependabot/) to keep dependencies up to date, otherwise you’ll miss important bug fixes and new features.
313
320
 
314
321
  ## Tips & tricks
315
322
 
@@ -541,6 +548,11 @@ Then, add the following origins depending on your Git backend and enabled integr
541
548
  ```
542
549
  https://api.deepl.com
543
550
  ```
551
+ - YouTube:
552
+ - `frame-src`
553
+ ```
554
+ https://www.youtube-nocookie.com
555
+ ```
544
556
 
545
557
  If you choose to [disable automatic deployments](#disabling-automatic-deployments) and have configured a webhook URL, you may need to add the origin to the `connect-src` directive. For example,
546
558
 
@@ -573,6 +585,8 @@ Since Sveltia CMS is still in beta, we expect various problems. Please [report a
573
585
 
574
586
  Tips are always welcome! The project hasn’t set up a sponsorship program, but maintainer [@kyoshino](https://github.com/kyoshino) has a [PayPal account](https://paypal.me/kohei).
575
587
 
588
+ Last but not least, don’t forget to star this project and spread the word so more users can benefit from the app!
589
+
576
590
  ## Related links
577
591
 
578
592
  - Introducing Sveltia CMS: a short technical presentation by [@kyoshino](https://github.com/kyoshino) during the _This Week in Svelte_ online meetup on March 31, 2023 — [recording](https://youtu.be/-YjLubiieYs?t=1660) & [slides](https://docs.google.com/presentation/d/1Wi4ty-1AwOp2-zy7LctmzCV4rrdYPfke9NGhO0DdRdM)
@@ -592,17 +606,17 @@ This software is provided “as is” without any express or implied warranty. W
592
606
  [^4]: Netlify/Decap CMS [#3671](https://github.com/decaporg/decap-cms/issues/3671)
593
607
  [^5]: Netlify/Decap CMS [#1032](https://github.com/decaporg/decap-cms/issues/1032)
594
608
  [^6]: Netlify/Decap CMS [#3240](https://github.com/decaporg/decap-cms/issues/3240)
595
- [^7]: Netlify/Decap CMS [#4386](https://github.com/decaporg/decap-cms/issues/4386), [#6978](https://github.com/decaporg/decap-cms/issues/6978)
609
+ [^7]: Netlify/Decap CMS [#4386](https://github.com/decaporg/decap-cms/issues/4386)
596
610
  [^8]: Netlify/Decap CMS [#2579](https://github.com/decaporg/decap-cms/issues/2579)
597
611
  [^9]: Netlify/Decap CMS [#3505](https://github.com/decaporg/decap-cms/issues/3505)
598
612
  [^10]: Netlify/Decap CMS [#341](https://github.com/decaporg/decap-cms/issues/341), [#1167](https://github.com/decaporg/decap-cms/issues/1167)
599
- [^11]: Netlify/Decap CMS [#1382](https://github.com/decaporg/decap-cms/issues/1382), [#6994](https://github.com/decaporg/decap-cms/issues/6994)
613
+ [^11]: Netlify/Decap CMS [#1382](https://github.com/decaporg/decap-cms/issues/1382)
600
614
  [^12]: Netlify/Decap CMS [#1975](https://github.com/decaporg/decap-cms/issues/1975)
601
615
  [^13]: Netlify/Decap CMS [#5112](https://github.com/decaporg/decap-cms/issues/5112), [#5653](https://github.com/decaporg/decap-cms/issues/5653)
602
- [^14]: Netlify/Decap CMS [#4635](https://github.com/decaporg/decap-cms/issues/4635), [#4738](https://github.com/decaporg/decap-cms/issues/4738), [#5920](https://github.com/decaporg/decap-cms/issues/5920), [#6410](https://github.com/decaporg/decap-cms/issues/6410)
616
+ [^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)
603
617
  [^15]: Netlify/Decap CMS [#6932](https://github.com/decaporg/decap-cms/issues/6932)
604
618
  [^16]: Netlify/Decap CMS [#2103](https://github.com/decaporg/decap-cms/issues/2103)
605
- [^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333), [#7077](https://github.com/decaporg/decap-cms/issues/7077)
619
+ [^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333)
606
620
  [^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441)
607
621
  [^19]: Netlify/Decap CMS [#5910](https://github.com/decaporg/decap-cms/issues/5910)
608
622
  [^20]: Netlify/Decap CMS [#4563](https://github.com/decaporg/decap-cms/issues/4563)
@@ -616,8 +630,8 @@ This software is provided “as is” without any express or implied warranty. W
616
630
  [^28]: Netlify/Decap CMS [#6836](https://github.com/decaporg/decap-cms/pull/6836)
617
631
  [^29]: Netlify/Decap CMS [#4783](https://github.com/decaporg/decap-cms/issues/4783)
618
632
  [^30]: Netlify/Decap CMS [#565](https://github.com/decaporg/decap-cms/issues/565)
619
- [^31]: Netlify/Decap CMS [#1045](https://github.com/decaporg/decap-cms/issues/1045), [#3353](https://github.com/decaporg/decap-cms/issues/3353)
620
- [^32]: Netlify/Decap CMS [#302](https://github.com/decaporg/decap-cms/issues/302), [#5549](https://github.com/decaporg/decap-cms/issues/5549), [#6034](https://github.com/decaporg/decap-cms/issues/6034)
633
+ [^31]: Netlify/Decap CMS [#1045](https://github.com/decaporg/decap-cms/issues/1045)
634
+ [^32]: Netlify/Decap CMS [#302](https://github.com/decaporg/decap-cms/issues/302), [#5549](https://github.com/decaporg/decap-cms/issues/5549)
621
635
  [^33]: Netlify/Decap CMS [#6513](https://github.com/decaporg/decap-cms/issues/6513)
622
636
  [^34]: Netlify/Decap CMS [#2138](https://github.com/decaporg/decap-cms/issues/2138)
623
637
  [^35]: Netlify/Decap CMS [#7086](https://github.com/decaporg/decap-cms/issues/7086)
@@ -638,12 +652,25 @@ This software is provided “as is” without any express or implied warranty. W
638
652
  [^50]: Netlify/Decap CMS [#4646](https://github.com/decaporg/decap-cms/issues/4646), [#7167](https://github.com/decaporg/decap-cms/issues/7167)
639
653
  [^51]: Netlify/Decap CMS [#6731](https://github.com/decaporg/decap-cms/issues/6731)
640
654
  [^52]: Netlify/Decap CMS [#7147](https://github.com/decaporg/decap-cms/issues/7147)
641
- [^53]: Netlify/Decap CMS [#5673](https://github.com/decaporg/decap-cms/issues/5673), [#6482](https://github.com/decaporg/decap-cms/issues/6482), [#6707](https://github.com/decaporg/decap-cms/issues/6707), [#6999](https://github.com/decaporg/decap-cms/issues/6999), [#7047](https://github.com/decaporg/decap-cms/issues/7047), [#7123](https://github.com/decaporg/decap-cms/issues/7123), [#7152](https://github.com/decaporg/decap-cms/issues/7152)
655
+ [^53]: Netlify/Decap CMS [#5673](https://github.com/decaporg/decap-cms/issues/5673), [#6707](https://github.com/decaporg/decap-cms/issues/6707)
642
656
  [^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) — 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.
643
657
  [^55]: Netlify/Decap CMS [#4480](https://github.com/decaporg/decap-cms/issues/4480), [#6353](https://github.com/decaporg/decap-cms/issues/6353)
644
658
  [^56]: Netlify/Decap CMS [#6515](https://github.com/decaporg/decap-cms/issues/6515)
645
- [^57]: Netlify/Decap CMS [#328](https://github.com/decaporg/decap-cms/issues/328), [#3853](https://github.com/decaporg/decap-cms/issues/3853)
659
+ [^57]: Netlify/Decap CMS [#328](https://github.com/decaporg/decap-cms/issues/328)
646
660
  [^58]: Netlify/Decap CMS [#5125](https://github.com/decaporg/decap-cms/issues/5125)
647
661
  [^59]: Netlify/Decap CMS [#1654](https://github.com/decaporg/decap-cms/issues/1654)
648
662
  [^60]: Netlify/Decap CMS [#386](https://github.com/decaporg/decap-cms/issues/386)
649
663
  [^61]: Netlify/Decap CMS [#1489](https://github.com/decaporg/decap-cms/issues/1489)
664
+ [^62]: Netlify/Decap CMS [#7192](https://github.com/decaporg/decap-cms/issues/7192)
665
+ [^63]: Netlify/Decap CMS [#4877](https://github.com/decaporg/decap-cms/issues/4877)
666
+ [^64]: Netlify/Decap CMS [#3853](https://github.com/decaporg/decap-cms/issues/3853)
667
+ [^65]: Netlify/Decap CMS [#6034](https://github.com/decaporg/decap-cms/issues/6034)
668
+ [^66]: Netlify/Decap CMS [#3353](https://github.com/decaporg/decap-cms/issues/3353)
669
+ [^67]: Netlify/Decap CMS [#7077](https://github.com/decaporg/decap-cms/issues/7077)
670
+ [^68]: Netlify/Decap CMS [#6978](https://github.com/decaporg/decap-cms/issues/6978)
671
+ [^69]: Netlify/Decap CMS [#6994](https://github.com/decaporg/decap-cms/issues/6994)
672
+ [^70]: Netlify/Decap CMS [#6482](https://github.com/decaporg/decap-cms/issues/6482)
673
+ [^71]: Netlify/Decap CMS [#6999](https://github.com/decaporg/decap-cms/issues/6999), [#7152](https://github.com/decaporg/decap-cms/issues/7152)
674
+ [^72]: Netlify/Decap CMS [#7047](https://github.com/decaporg/decap-cms/issues/7047)
675
+ [^73]: Netlify/Decap CMS [#7123](https://github.com/decaporg/decap-cms/issues/7123)
676
+ [^100]: 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).