@sveltia/cms 0.106.1 → 0.106.3
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 +46 -19
- package/dist/sveltia-cms.js +179 -179
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +178 -178
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
- package/schema/sveltia-cms.json +0 -10
- package/types/public.d.ts +0 -5
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
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
|
-
Built from the ground up, Sveltia CMS offers
|
|
5
|
+
Built from the ground up, Sveltia CMS offers excellent UX, DX, performance, security and internationalization (i18n) support. Our numerous enhancements across the board ensure smooth daily workflows. This free, open source alternative to Netlify/Decap CMS is now in public beta, with version 1.0 expected in late 2025.
|
|
6
6
|
|
|
7
7
|
<br>
|
|
8
8
|
|
|
@@ -125,13 +125,21 @@ Due to its unfortunate abandonment in early 2022, Netlify CMS spawned 3 successo
|
|
|
125
125
|
- Actively developed with frequent releases and numerous improvements
|
|
126
126
|
- Solved more than 250 issues reported in the Netlify/Decap CMS repository
|
|
127
127
|
- [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version
|
|
128
|
-
- [Announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as
|
|
129
|
-
- Mostly
|
|
128
|
+
- [Announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as an official continuation with a Netlify agency partner taking ownership
|
|
129
|
+
- Mostly low activity with occasional releases and a few minor improvements
|
|
130
130
|
- A [XSS vulnerability](https://github.com/advisories/GHSA-xp8g-32qh-mv28), high severity dependency vulnerabilities, fatal crashes and many other bugs remain unaddressed
|
|
131
131
|
|
|
132
|
-
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:
|
|
132
|
+
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:
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
- We have rebuilt the app from scratch using a [modern framework](https://svelte.dev/)
|
|
135
|
+
- We don’t reuse any part of the predecessor’s codebase
|
|
136
|
+
- We incorporate i18n support into the core instead of adding it as an afterthought
|
|
137
|
+
- We closely monitor and analyze the predecessor’s issue tracker
|
|
138
|
+
- We have rearchitected the entire user experience (UX) and developer experience (DX)
|
|
139
|
+
|
|
140
|
+
This “total reboot” allows us to implement [hundreds of improvements](#differentiators) without getting stuck in a legacy system, establishing Sveltia CMS as a **unparalleled successor** to Netlify CMS.
|
|
141
|
+
|
|
142
|
+
As we continue to add more features, we hope that our product will eventually become an appearing headless CMS option for everyone, not just for existing Netlify/Decap CMS users.
|
|
135
143
|
|
|
136
144
|
### Our goals
|
|
137
145
|
|
|
@@ -206,23 +214,29 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
206
214
|
|
|
207
215
|
### Better productivity
|
|
208
216
|
|
|
217
|
+
We’ve made various improvements to help you get your work done faster and more efficiently:
|
|
218
|
+
|
|
209
219
|
- Developers can [work with a local Git repository](#working-with-a-local-git-repository) without any additional configuration or proxy server, resulting in a streamlined workflow and improved performance.[^26]
|
|
210
220
|
- It also avoids a number of issues, including potential security risks,[^158][^282] a 30 MB file size limit,[^51] an unknown error with `publish_mode`,[^75] and an unused `logo_url`.[^49]
|
|
211
221
|
- 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.
|
|
212
222
|
- Provides a smoother user experience in the Content Editor:
|
|
223
|
+
- Users can upload multiple files at once to File/Image fields when the `multiple` option is enabled.[^239]
|
|
224
|
+
- Uploading files can be done with drag and drop.[^20]
|
|
225
|
+
- Users can [translate entry fields with one click](#translating-entry-fields-with-one-click) using an integrated translation service without having to leave the CMS.
|
|
213
226
|
- 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]
|
|
214
227
|
- Click once (the Save button) instead of twice (Publish > Publish now) to save an entry. Or just hit the `Ctrl+S` (Windows/Linux) or `Command+S` (macOS) key to save your time.
|
|
215
228
|
- The editor closes automatically when an entry is saved. This behaviour can be changed in the application settings.
|
|
216
|
-
-
|
|
217
|
-
- Users can upload multiple files at once to the Asset Library.
|
|
229
|
+
- Thanks to the [built-in image optimizer](#optimizing-images-for-upload), there’s no need for an external application to convert or resize images before uploading them.[^199][^200]
|
|
218
230
|
- Users can delete multiple entries and assets at once.
|
|
231
|
+
- Users can manage content on-the-go with mobile and tablet support.[^18][^215] This is especially useful for content editors who need to make quick updates while away from their desks.
|
|
219
232
|
- Instant full-text search with results sorted by relevance helps you find entries faster. In Netlify/Decap CMS, you often won’t get the results you expect.
|
|
220
233
|
- Some [keyboard shortcuts](#using-keyboard-shortcuts) are available for faster editing.
|
|
221
234
|
|
|
222
235
|
### Better security
|
|
223
236
|
|
|
224
237
|
- 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 unaddressed for a long time.[^33]
|
|
225
|
-
-
|
|
238
|
+
- We also use the [`cooldown`](https://github.com/raineorshine/npm-check-updates#cooldown) option for `ncu` and the [`minimumReleaseAge`](https://pnpm.io/settings#minimumreleaseage) option for `pnpm` to avoid upgrading to a version that was just released. These options help protect against npm supply chain attacks.
|
|
239
|
+
- The **unpatched** [XSS vulnerability](https://github.com/advisories/GHSA-xp8g-32qh-mv28) in Decap CMS does not affect Sveltia CMS, as our entry preview implementation is completely different.
|
|
226
240
|
- 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.
|
|
227
241
|
- Our [local repository workflow](#working-with-a-local-git-repository) does not require a proxy server. This reduces attack surfaces by eliminating the possibility of compromised dependencies[^158] and unauthorized API access.[^282]
|
|
228
242
|
- Thanks to pnpm, 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]
|
|
@@ -270,6 +284,7 @@ The [GitHub](https://decapcms.org/docs/github-backend/), [GitLab](https://decapc
|
|
|
270
284
|
- 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`.[^95][^27] If a branch name is specified, it works as expected.[^232]
|
|
271
285
|
- It’s possible to [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]
|
|
272
286
|
- The GitLab backend support comes with background [service status](https://status.gitlab.com/) checking, just like GitHub.
|
|
287
|
+
- The GitLab backend properly supports authorization via the GraphQL API.[^290]
|
|
273
288
|
- Service status checks are performed frequently and an incident notification is displayed prominently.
|
|
274
289
|
- Users can quickly open the source file of an entry or asset in your repository via the 3-dot menu when Developer Mode is enabled.
|
|
275
290
|
- We provide [our own OAuth client](https://github.com/sveltia/sveltia-cms-auth) for GitHub and GitLab.
|
|
@@ -410,7 +425,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
410
425
|
- The Preview Pane displays all fields, including each label, making it easier to see which fields are populated.
|
|
411
426
|
- Entering a long value into a field will not cause the field label to disappear.[^254]
|
|
412
427
|
- Clicking a field in the Preview Pane focuses the corresponding field in the Edit Pane.[^41] It automatically expands when collapsed.
|
|
413
|
-
- This is equivalent to the (misleading) visual editing feature introduced in [Decap CMS 3.6.0](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.6.0), but our click-to-highlight feature is enabled by default; you don’t need to opt in with the `editor.visualEditing` collection option.
|
|
428
|
+
- This is equivalent to the (misleading) visual editing feature introduced in [Decap CMS 3.6.0](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.6.0), but our click-to-highlight feature is enabled by default; you don’t need to opt in with the `editor.visualEditing` collection option. We don’t plan to support this option because it’s confusing, unnecessary and undocumented.
|
|
414
429
|
- The Preview Pane doesn’t cause a scrolling issue.[^136]
|
|
415
430
|
- The Preview Pane doesn’t crash with a Minified React error.[^186]
|
|
416
431
|
- Provides better scroll synchronization between the panes when editing or previewing an entry.[^92]
|
|
@@ -528,13 +543,13 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
528
543
|
- Users can also simply drag and drop a file onto a File/Image field to attach it without having to open the Select File dialog.
|
|
529
544
|
- Supports the boolean `multiple` option, which can be set to `true` to allow multiple file uploads.[^239]
|
|
530
545
|
- When enabled, users can select and upload multiple files at once in the Select File dialog, as well as drag and drop multiple files onto the field. The field value will be an array of strings instead of a single string.
|
|
531
|
-
- The `min` and `max` options are also available to limit the number of files that can be uploaded.
|
|
532
|
-
- 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.
|
|
546
|
+
- The `min` and `max` options are also available to limit the number of files that can be uploaded. Both accept positive integers. If `min` is not specified, it defaults to `0`. If `max` is not specified, it defaults to `Infinity`.
|
|
533
547
|
- The new `accept` option allows files to be filtered by a comma-separated list of unique file type specifiers, in the same way as the HTML [`accept` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept) for `<input type="file">`.[^216]
|
|
534
548
|
- By default, the Image widget only accepts an AVIF, GIF, JPEG, PNG, WebP or SVG image. BMP, HEIC, JPEG XL, PSD, TIFF and other less common or non-standard files are excluded.[^217]
|
|
535
549
|
- The File widget has no default restriction.
|
|
536
550
|
- If the `public_folder` contains `{{slug}}` and you’ve edited a slug field (e.g. `title`) of a new entry after uploading an asset, the updated slug will be used in the saved asset path.[^140] Other dynamic template tags such as `{{filename}}` will also be populated as expected.[^141]
|
|
537
551
|
- The CMS prevents the same file from being uploaded twice. It compares the hashes and selects an existing asset instead.
|
|
552
|
+
- 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.
|
|
538
553
|
- List and Object
|
|
539
554
|
- The `summary` is displayed correctly when it refers to a Relation field[^36] or a simple List field.
|
|
540
555
|
- The `summary` template tags support [transformations](https://decapcms.org/docs/summary-strings/), e.g. `{{fields.date | date('YYYY-MM-DD')}}`.
|
|
@@ -645,7 +660,7 @@ Due to the complexity, we have decided to defer the following features to the 2.
|
|
|
645
660
|
The following Netlify/Decap CMS features will not be implemented, primarily due to deprecation and performance considerations.
|
|
646
661
|
|
|
647
662
|
- **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.
|
|
648
|
-
- **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).
|
|
663
|
+
- **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) to secure a migration path for existing Git Gateway users.
|
|
649
664
|
- **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/).
|
|
650
665
|
- [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.
|
|
651
666
|
- 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.
|
|
@@ -658,8 +673,10 @@ The following Netlify/Decap CMS features will not be implemented, primarily due
|
|
|
658
673
|
- [Relation](https://decapcms.org/docs/widgets/#relation) widget: `displayFields`, `searchFields`, `valueField`
|
|
659
674
|
- Note: Some other camel case options, including Color widget options, are not deprecated.
|
|
660
675
|
- The deprecated Date widget: It was removed from Decap CMS 3.0 and Sveltia CMS 0.10. Use the DateTime widget with the [`time_format: false` option](#changing-the-input-type-of-a-datetime-field) instead.
|
|
676
|
+
- The `allow_multiple` option for the File and Image widgets: It’s a confusing option that defaults to `true`, and there is a separate option called `media_library.config.multiple`. We have added the new `multiple` option instead, which is more intuitive and works with all media libraries.
|
|
661
677
|
- The theme and keymap inline settings for the Code widget, along with support for some languages. Instead of [CodeMirror](https://codemirror.net/), we use Lexical’s code block functionality powered by [Prism](https://prismjs.com/), which is slated to be [replaced by Shiki](https://github.com/facebook/lexical/issues/6575).
|
|
662
678
|
- Remark plugins for the Markdown widget: Not compatible with our Lexical-based rich text editor.
|
|
679
|
+
- Extra features in the [Cloudinary](https://decapcms.org/docs/cloudinary/) and [Uploadcare](https://decapcms.org/docs/uploadcare/) media libraries: We plan to integrate these services using their APIs instead of pre-built widgets. This means third-party upload sources and other features will be unavailable. We plan to support some of the sources, camera access and image editing in the future.
|
|
663
680
|
- An absolute URL in the [`public_folder`](https://decapcms.org/docs/configuration-options/#public-folder) option: Such configuration is not recommended, as stated in the Netlify/Decap CMS document.
|
|
664
681
|
- Performance-related options: Sveltia CMS has [drastically improved performance](#better-performance) with GraphQL enabled by default, so these are no longer relevant:
|
|
665
682
|
- Global: [`search`](https://decapcms.org/docs/configuration-options/#search)
|
|
@@ -755,7 +772,7 @@ Or try one of the starter kits for popular frameworks created by community:
|
|
|
755
772
|
|
|
756
773
|
The Netlify/Decap CMS website has more [templates](https://decapcms.org/docs/start-with-a-template/) and [examples](https://decapcms.org/docs/examples/). You can probably use one of them and switch to Sveltia CMS. (Note: These third-party resources are not necessarily reviewed by the Sveltia CMS team.)
|
|
757
774
|
|
|
758
|
-
Unfortunately, **we are unable to provide
|
|
775
|
+
Unfortunately, **we are unable to provide installation and setup support** at this time. As the product evolves, we’ll provide comprehensive documentation, a built-in configuration editor and official starter kits to make it easier for everyone to start using Sveltia CMS.
|
|
759
776
|
|
|
760
777
|
### Migration
|
|
761
778
|
|
|
@@ -888,7 +905,7 @@ With Sveltia CMS, developers can modularize the site configuration. Just provide
|
|
|
888
905
|
|
|
889
906
|
Both standard `application/yaml` and non-standard `text/yaml` are acceptable for the YAML config link `type`.
|
|
890
907
|
|
|
891
|
-
Limitation: YAML anchors, aliases and merge keys only work if they are in the same file
|
|
908
|
+
Limitation: YAML anchors, aliases and merge keys only work if they are in the same file. This is because the files are parsed as separate JavaScript objects and then merged using the [`deepmerge`](https://www.npmjs.com/package/deepmerge) library.
|
|
892
909
|
|
|
893
910
|
### Working around an authentication error
|
|
894
911
|
|
|
@@ -916,6 +933,7 @@ Here are the workflow steps and tips:
|
|
|
916
933
|
- GitHub Desktop can be used for any repository, not just GitHub-hosted ones.
|
|
917
934
|
1. Open the dev site at `http://localhost:[port]/` to check the rendered pages.
|
|
918
935
|
- Depending on your framework, you may need to manually rebuild your site to reflect the changes you have made.
|
|
936
|
+
- You can skip this step if your changes don’t involve any pages.
|
|
919
937
|
1. Commit and push the changes if satisfied, or discard them if you’re just testing.
|
|
920
938
|
|
|
921
939
|
If you have migrated from Netlify/Decap CMS and are happy with the local repository workflow of Sveltia CMS, you can remove the `local_backend` property from your configuration and uninstall the proxy server. If you have configured a custom port number with the `.env` file, you can remove it as well.
|
|
@@ -1872,7 +1890,7 @@ Due late 2025
|
|
|
1872
1890
|
|
|
1873
1891
|
- Enhanced [compatibility with Netlify/Decap CMS](#current-limitations)
|
|
1874
1892
|
- Tackling some more Netlify/Decap CMS issues:
|
|
1875
|
-
- Several Cloudinary and Uploadcare media library issues, including selection of existing files[^247]
|
|
1893
|
+
- Several Cloudinary and Uploadcare media library issues, including authentication[^288] and selection of existing files[^247]
|
|
1876
1894
|
- [RTL localization support](https://github.com/sveltia/sveltia-cms/issues/385)[^245]
|
|
1877
1895
|
- Thorough site config validation[^246]
|
|
1878
1896
|
- [Entry pre-validation/normalization](https://github.com/sveltia/sveltia-cms/issues/395)[^248]
|
|
@@ -1882,6 +1900,8 @@ Due late 2025
|
|
|
1882
1900
|
- Marketing site
|
|
1883
1901
|
- [Live demo site](https://github.com/sveltia/sveltia-cms/issues/1)
|
|
1884
1902
|
|
|
1903
|
+
See also the [1.0 RC](https://github.com/sveltia/sveltia-cms/milestone/1) and [1.0](https://github.com/sveltia/sveltia-cms/milestone/2) milestones for a list of issues planned for v1.0.
|
|
1904
|
+
|
|
1885
1905
|
### v2.0
|
|
1886
1906
|
|
|
1887
1907
|
Due early/mid 2026
|
|
@@ -1911,7 +1931,7 @@ Due early/mid 2026
|
|
|
1911
1931
|
- [Theming](https://github.com/sveltia/sveltia-cms/issues/29)[^262]
|
|
1912
1932
|
- [Reusable field groups](https://github.com/sveltia/sveltia-cms/discussions/463)[^263]
|
|
1913
1933
|
- Offline support[^238]
|
|
1914
|
-
- Features to turn the CMS into a powerful NoSQL database management system:
|
|
1934
|
+
- Features to turn the CMS into a powerful NoSQL database management system (DBMS):
|
|
1915
1935
|
- Advanced Relation fields[^242]
|
|
1916
1936
|
- Cascade updates/deletes[^243]
|
|
1917
1937
|
- [Quick item additions](https://github.com/sveltia/sveltia-cms/issues/493)[^266]
|
|
@@ -1935,7 +1955,7 @@ Due early/mid 2026
|
|
|
1935
1955
|
- Advanced search options
|
|
1936
1956
|
- [Fuzzy search](https://www.fusejs.io/)
|
|
1937
1957
|
- [Local repository workflow](#working-with-a-local-git-repository) improvements: Git mode[^131] and change detection
|
|
1938
|
-
- [Preact+HTM
|
|
1958
|
+
- [Preact+HTM](https://github.com/sveltia/sveltia-cms/discussions/153) or Vue support for custom widgets, editor components and preview templates[^289]
|
|
1939
1959
|
- View, compare and restore revisions (like [WordPress](https://wordpress.com/support/page-post-revisions/))
|
|
1940
1960
|
- More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools, etc.
|
|
1941
1961
|
- More AI features for image generation, content writing, etc.
|
|
@@ -1957,6 +1977,7 @@ Due early/mid 2026
|
|
|
1957
1977
|
|
|
1958
1978
|
- 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.
|
|
1959
1979
|
- 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 an improved DX, but also for our rapid application development.
|
|
1980
|
+
- What is Sveltia, by the way? It implies something related to Svelte, but it has [another meaning](https://en.wikipedia.org/wiki/Sveltia).
|
|
1960
1981
|
- The maintainer may look 25 years younger than his actual age. [Here’s why](https://github.com/kyoshino#fun-facts-about-me).
|
|
1961
1982
|
|
|
1962
1983
|
## Related Links
|
|
@@ -1974,7 +1995,7 @@ Due early/mid 2026
|
|
|
1974
1995
|
|
|
1975
1996
|
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.
|
|
1976
1997
|
|
|
1977
|
-
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.
|
|
1998
|
+
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 subsequent API requests are made directly between your browser and the Git hosting provider.
|
|
1978
1999
|
|
|
1979
2000
|
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.
|
|
1980
2001
|
|
|
@@ -2210,7 +2231,7 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2210
2231
|
|
|
2211
2232
|
[^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), [#7602](https://github.com/decaporg/decap-cms/issues/7602)
|
|
2212
2233
|
|
|
2213
|
-
[^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).
|
|
2234
|
+
[^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), [#7610](https://github.com/decaporg/decap-cms/issues/7610) — 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).
|
|
2214
2235
|
|
|
2215
2236
|
[^114]: Netlify/Decap CMS [#5029](https://github.com/decaporg/decap-cms/issues/5029), [#5048](https://github.com/decaporg/decap-cms/issues/5048)
|
|
2216
2237
|
|
|
@@ -2555,3 +2576,9 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2555
2576
|
[^286]: Netlify/Decap CMS [#2367](https://github.com/decaporg/decap-cms/issues/2367)
|
|
2556
2577
|
|
|
2557
2578
|
[^287]: Netlify/Decap CMS [#1069](https://github.com/decaporg/decap-cms/issues/1069)
|
|
2579
|
+
|
|
2580
|
+
[^288]: Netlify/Decap CMS [#7015](https://github.com/decaporg/decap-cms/issues/7015)
|
|
2581
|
+
|
|
2582
|
+
[^289]: Netlify/Decap CMS [#2183](https://github.com/decaporg/decap-cms/issues/2183)
|
|
2583
|
+
|
|
2584
|
+
[^290]: Netlify/Decap CMS [#7611](https://github.com/decaporg/decap-cms/issues/7611)
|