@sveltia/cms 0.38.3 → 0.39.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
@@ -22,13 +22,13 @@ To achieve radical improvements in UX, performance, i18n and other areas, it was
22
22
 
23
23
  Due to its unfortunate abandonment, Netlify CMS spawned 3 successors:
24
24
 
25
- - [Static CMS](https://github.com/StaticJsCMS/static-cms): a community maintenance fork, first appeared on GitHub in September 2022
25
+ - [Static CMS](https://github.com/StaticJsCMS/static-cms): a community maintenance fork, initial commit made in September 2022, discontinued in September 2024
26
26
  - **Sveltia CMS**: a total reboot, started in November 2022, first appeared on GitHub in March 2023
27
27
  - [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version, owned by a Netlify agency partner, [announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as the official successor
28
28
 
29
29
  Sveltia CMS is the only project that doesn’t inherit the complexity, technical debt and miscellaneous bugs of Netlify CMS, which was launched back in 2016. We are confident that our decision to rebuild the application from scratch was the right one, as proven by the hundreds of improvements we have already made.
30
30
 
31
- While Sveltia CMS is specifically designed to replace legacy Netlify CMS instances, it also aims to serve as a substitute for the other products. (Note: Static CMS compatibility will be worked on after the Sveltia CMS 1.0 release)
31
+ While Sveltia CMS is specifically designed to replace legacy Netlify CMS instances, it also aims to serve as a substitute for the other products. (Note: While we are closely following the development of Decap CMS, compatibility with Static CMS will be worked on after the release of Sveltia CMS 1.0)
32
32
 
33
33
  ### Our goals
34
34
 
@@ -42,16 +42,15 @@ While Sveltia CMS is specifically designed to replace legacy Netlify CMS instanc
42
42
 
43
43
  Sveltia CMS is **still in beta**, so please be careful when trying it out.
44
44
 
45
- While we are fixing reported bugs as fast as we can, 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:
45
+ While we fix reported bugs as quickly as possible, usually within 24 hours, our 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:
46
46
 
47
- - Ensuring maximum [compatibility with existing versions of Netlify/Decap CMS](#compatibility)
47
+ - Ensuring substantial [compatibility with existing versions of Netlify/Decap CMS](#compatibility)
48
48
  - Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible
49
- - So far, 115+ of them (or 190+ including duplicates) have been effectively solved in Sveltia CMS
50
- - Target: 125 issues by GA, 250 in a future release
49
+ - So far, 115+ of them (or 195+ including duplicates) have been effectively solved in Sveltia CMS
50
+ - Target: 150 issues by GA, 250 in a future release
51
51
  - [Let us know](https://github.com/sveltia/sveltia-cms/issues/new) if you have any specific issues you’d like to see solved!
52
- - Responding to user feedback
53
- - Implementing our own UX enhancement ideas
54
- - Upgrading to [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) for unparalleled performance
52
+ - Responding to feedback from clients and regular users
53
+ - Implementing our own enhancement ideas for every part of the product
55
54
 
56
55
  Sveltia CMS **version 1.0 is expected to ship by the end of 2024**. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) for updates. See also our [roadmap](#roadmap).
57
56
 
@@ -71,15 +70,15 @@ We are working hard to create a **significantly better alternative to Netlify CM
71
70
 
72
71
  - 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.
73
72
  - Offers a modern, intuitive user interface, including an immersive dark mode[^2], inspired in part by the Netlify CMS v3 prototype[^1].
74
- - 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.
73
+ - Comes with touch device support. While the UI is not yet optimized for small screens, it should work well with large tablets like iPad Pro or Pixel Tablet. Mobile support is planned after the 1.0 release.
75
74
  - Made with Svelte, not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid common fatal application crashes[^113]. Best of all, Svelte offers great performance!
76
75
  - The screenshots above are worth a thousand words, but read on to learn about many other improvements in detail.
77
76
 
78
77
  ### Better performance
79
78
 
80
79
  - 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 any framework that can load static data files while building your website or application.
81
- - Small footprint: The bundle size is less than 550 KB when minified and gzipped, which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.8 MB) and Static CMS (2.6 MB), even though we haven’t implemented some features yet[^57][^64].
82
- - The ongoing [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 (an estimated 100 KB reduction).
80
+ - Small footprint: The bundle size is less than 400 KB when minified and gzipped, which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.8 MB) and Static CMS (2.6 MB), even though we haven’t implemented some features yet[^57][^64].
81
+ - We have upgraded from Svelte 4 to [Svelte 5 Release Candidate](https://svelte.dev/blog/svelte-5-release-candidate) to further boost performance, including accelerated speed, reduced memory usage and even smaller bundle size. A full migration to the Svelte 5 _runes_ reactivity API will follow.
83
82
  - Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
84
83
  - 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].
85
84
  - 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/).
@@ -116,7 +115,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
116
115
 
117
116
  ### Better security
118
117
 
119
- - Avoids high/critical severity vulnerabilities through constant dependency updates, [`pnpm audit`](https://pnpm.io/cli/audit), and frequent releases[^33].
118
+ - Avoids severity vulnerabilities through constant dependency updates, [`pnpm audit`](https://pnpm.io/cli/audit), and frequent releases[^33].
120
119
  - We have documented how to [set up a Content Security Policy](#setting-up-content-security-policy) for the CMS to prevent any unexpected errors or otherwise insecure configuration[^108].
121
120
  - The `unsafe-eval` and `unsafe-inline` keywords are not needed in the `script-src` CSP directive[^34].
122
121
  - The `same-origin` referrer policy is automatically set with a `<meta>` tag.
@@ -233,7 +232,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
233
232
  - You can enter spaces in a simple text-based List field[^50].
234
233
  - You can preview variable types without having to register a preview template[^42].
235
234
  - Markdown
236
- - The rich text editor is built with [Lexical](https://lexical.dev/) 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].
235
+ - The rich text editor is built with [Lexical](https://lexical.dev/), which solves various issues with a [Slate](https://github.com/ianstormtaylor/slate)-based editor in Netlify/Decap CMS, including fatal application crashes[^71][^72][^73][^111], lost formatting when pasting[^124], backslash injections[^53], dropdown visibility[^70], and text input difficulties with IME[^54].
237
236
  - 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.
238
237
  - Line breaks are rendered as line breaks in the preview pane according to GitHub Flavored Markdown.
239
238
  - Object
@@ -307,7 +306,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
307
306
 
308
307
  ## Compatibility
309
308
 
310
- We are trying to make Sveltia CMS as compatible as possible with Netlify/Decap CMS, so that more users can seamlessly switch to our modern, powerful, performant alternative. However, some features will be omitted due to deprecations and other factors.
309
+ We are trying to make Sveltia CMS compatible with Netlify/Decap CMS where possible, so that more users can seamlessly switch to our modern, powerful, high performance alternative. However, some features will be omitted due to performance, deprecations and other factors.
311
310
 
312
311
  ### Current limitations
313
312
 
@@ -336,7 +335,7 @@ Missing any other features? Let us know by [filing an issue](https://github.com/
336
335
 
337
336
  ### Features not to be implemented
338
337
 
339
- - **The Bitbucket, Gitea/Forgejo and Git Gateway backends will not be supported** due to performance limitations. We may implement a high-performance Git Gateway alternative in the future.
338
+ - **The Bitbucket, Gitea/Forgejo and Git Gateway backends will not be supported** for performance reasons. We may implement a high-performance Git Gateway alternative in the future. We may also support the other services if/when their APIs improve to allow the CMS to fetch multiple files at once.
340
339
  - The Netlify Identity Widget will not be supported, as it’s not useful without Git Gateway. We may be able to support it in the future if/when a Git Gateway alternative is created.
341
340
  - 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.
342
341
  - The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
@@ -348,7 +347,7 @@ Missing any other features? Let us know by [filing an issue](https://github.com/
348
347
 
349
348
  ### Before the 1.0 release
350
349
 
351
- - [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) migration
350
+ - [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) _runes_ migration
352
351
  - Enhanced [compatibility with Netlify/Decap CMS](#compatibility)
353
352
  - Localization with the new [Fluent](https://projectfluent.org)-powered sveltia-i18n library
354
353
  - Accessibility audit
@@ -360,13 +359,13 @@ Missing any other features? Let us know by [filing an issue](https://github.com/
360
359
 
361
360
  ### After the 1.0 release
362
361
 
363
- - Tackling more Netlify/Decap CMS issues, especially [top voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc), including MDX support[^122], roles[^23], mobile optimization[^18] and config editor[^10] — Some features are already implemented in Sveltia CMS
364
- - Compatibility with Static CMS, a community fork of Netlify CMS
362
+ - Tackling more Netlify/Decap CMS issues, especially the [top voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc), including MDX support[^122], manual entry sorting[^125], roles[^23], mobile optimization[^18] and config editor[^10] — Some features are already implemented in Sveltia CMS
363
+ - Certain compatibility with Static CMS, a now-discontinued community fork of Netlify CMS, including the [KeyValue widget](https://staticjscms.netlify.app/docs/widget-keyvalue)[^123]
365
364
  - Advanced digital asset management (DAM) features, including image editing and tagging[^114]
366
365
  - AI integrations
367
366
  - End-user documentation
368
367
  - Contributor documentation
369
- - and more!
368
+ - and so much more!
370
369
 
371
370
  ## Getting started
372
371
 
@@ -454,7 +453,7 @@ You can use Sveltia CMS with a local Git repository like Netlify/Decap CMS, but
454
453
  - You can remove `local_backend` from your configuration, as it will be ignored by Sveltia CMS.
455
454
  1. Launch the local development server for your frontend framework, typically with `npm run dev` or `pnpm dev`.
456
455
  1. Visit `http://localhost:[port]/admin/index.html` with Chrome or Edge. The port number varies by framework.
457
- - Other Chromium-based browsers may also work. Brave user? [See below](#enable-local-development-in-brave).
456
+ - Other Chromium-based browsers may also work. Brave user? [See below](#enabling-local-development-in-brave).
458
457
  1. Click “Work with Local Repository” and select the project’s root directory once prompted.
459
458
  - If you get an error saying “not a repository root directory”, make sure you’ve turned the folder into a repository with either a CUI ([`git init`](https://github.com/git-guides/git-init)) or GUI, and the hidden `.git` folder exists.
460
459
  - If you’re using Windows Subsystem for Linux (WSL), you may get an error saying “Can’t open this folder because it contains system files.” This is due to a limitation in the browser, and you can try some workarounds mentioned in [this issue](https://github.com/coder/code-server/issues/4646) and [this thread](https://github.com/sveltia/sveltia-cms/discussions/101).
@@ -467,7 +466,7 @@ Keep in mind that the local repository support doesn’t perform any Git operati
467
466
 
468
467
  Also, at this point, you have to reload the CMS to see the latest content after retrieving remote updates. This manual work will be unnecessary once the proposed `FileSystemObserver` API, which is being [implemented in Chromium](https://issues.chromium.org/issues/40105284) behind a flag, becomes available.
469
468
 
470
- #### Enable local development in Brave
469
+ ### Enabling local development in Brave
471
470
 
472
471
  In the Brave browser, you must enable the File System Access API with an experiment flag to take advantage of local development.
473
472
 
@@ -698,6 +697,8 @@ script-src 'self' https://unpkg.com;
698
697
  connect-src 'self' blob: data: https://unpkg.com;
699
698
  ```
700
699
 
700
+ (UNPKG is used not only to download the CMS script bundle, but also to check for the latest version and retrieve additional dependencies such as [PDF.js](https://github.com/mozilla/pdf.js))
701
+
701
702
  Then, add the following origins depending on your Git backend and enabled integrations.
702
703
 
703
704
  - GitHub: (If you’re running a GitHub Enterprise Server, you’ll also need to add the origin to these directives.)
@@ -782,7 +783,7 @@ img-src 'self' blob: data: https://*;
782
783
 
783
784
  ## Support & feedback
784
785
 
785
- While we don’t have dedicated developer/user support resources, quick questions and feedback are welcome on the [Discussions](https://github.com/sveltia/sveltia-cms/discussions) page of this GitHub repository.
786
+ While we don’t have dedicated developer/user support resources, quick questions and feedback are welcome on the [Discussions](https://github.com/sveltia/sveltia-cms/discussions) page of this GitHub repository. We also have a [Discord channel](https://discord.gg/6zC5eTCw) for casual chat and instant help.
786
787
 
787
788
  Looking to build a website with Sveltia CMS? Maintainer [@kyoshino](https://github.com/kyoshino) is available for hire depending on your requirements. Feel free to reach out!
788
789
 
@@ -969,7 +970,7 @@ This software is provided “as is” without any express or implied warranty. W
969
970
 
970
971
  [^83]: Netlify/Decap CMS [#6508](https://github.com/decaporg/decap-cms/issues/6508)
971
972
 
972
- [^84]: Netlify/Decap CMS [#7142](https://github.com/decaporg/decap-cms/issues/7142)
973
+ [^84]: Netlify/Decap CMS [#7142](https://github.com/decaporg/decap-cms/issues/7142), [#7276](https://github.com/decaporg/decap-cms/issues/7276)
973
974
 
974
975
  [^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)
975
976
 
@@ -1046,3 +1047,9 @@ This software is provided “as is” without any express or implied warranty. W
1046
1047
  [^121]: Netlify/Decap CMS [#7262](https://github.com/decaporg/decap-cms/issues/7262)
1047
1048
 
1048
1049
  [^122]: Netlify/Decap CMS [#1776](https://github.com/decaporg/decap-cms/issues/1776), [#2064](https://github.com/decaporg/decap-cms/issues/2064), [#7158](https://github.com/decaporg/decap-cms/issues/7158), [#7259](https://github.com/decaporg/decap-cms/issues/7259)
1050
+
1051
+ [^123]: Netlify/Decap CMS [#5489](https://github.com/decaporg/decap-cms/issues/5489)
1052
+
1053
+ [^124]: Netlify/Decap CMS [#7233](https://github.com/decaporg/decap-cms/issues/7233)
1054
+
1055
+ [^125]: Netlify/Decap CMS [#475](https://github.com/decaporg/decap-cms/issues/475)