@sveltia/cms 0.97.0 → 0.98.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
@@ -1,4 +1,4 @@
1
- # Sveltia CMS: Netlify/Decap CMS alternative
1
+ # Sveltia CMS: Netlify/Decap CMS successor
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. In some simple cases, migration is as easy as a single line of code change, although we are still working on improving compatibility.
4
4
 
@@ -96,6 +96,7 @@ Welcome to the only Netlify CMS successor you can trust!
96
96
  - [v2.0](#v20)
97
97
  - [v3.0](#v30)
98
98
  - [TBD](#tbd)
99
+ - [Non-goals](#non-goals)
99
100
  - [Trivia](#trivia)
100
101
  - [Related links](#related-links)
101
102
  - [As seen on](#as-seen-on)
@@ -107,7 +108,7 @@ Sveltia CMS was born in November 2022, when the progress of Netlify CMS was stal
107
108
 
108
109
  To achieve radical improvements in UX, performance, i18n and other areas, it was ultimately decided to build an alternative from the ground up, while ensuring an easy migration path from the other. After proving the idea with a rapid [Svelte](https://svelte.dev/) prototype, development was accelerated to address their primary use cases. The new product has since been named Sveltia CMS and released as open source software to encourage wider adoption.
109
110
 
110
- We loved the simple architecture of Netlify CMS that turned a Git repository into a database with a single page app served from a CDN plus a plain YAML config file. In support of the [Jamstack](https://jamstack.org/) concept, we wanted to revive it, modernize it, and take it to the next level.
111
+ We loved the simple setup of Netlify CMS that turned a Git repository into a database with a single page app served from a CDN plus a plain YAML config file. In support of the [Jamstack](https://jamstack.org/) concept, we wanted to revive it, modernize it, and take it to the next level.
111
112
 
112
113
  ### Our advantage
113
114
 
@@ -138,21 +139,21 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
138
139
  - Ensuring substantial [compatibility with Netlify/Decap CMS](#current-limitations)
139
140
  - Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
140
141
  - Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
141
- - So far, **245+ issues, or 515+ if including duplicates, have been effectively solved in Sveltia CMS** (Yes, you read it right)
142
+ - So far, **250+ issues, or 530+ if including duplicates, have been effectively solved** in Sveltia CMS (Yes, you read it right)
142
143
  - Target:
143
- - 250 issues, or 500 if including duplicates, by GA — Almost there!
144
+ - 250 issues, or 500 if including duplicates, by GA — We did it! 🎉
144
145
  - 400 issues, or 800 if including duplicates, in the future 💪
145
146
  - or every single issue that’s relevant, fixable, and worth dealing with 🔥
146
147
  - Issues include everything from feature requests to bug reports and [issues closed as stale](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) or without an effective solution, as well as [discussions](https://github.com/decaporg/decap-cms/discussions) and stalled [pull requests](https://github.com/decaporg/decap-cms/pulls)
147
148
  - Many of the bugs, including the annoying crashes, have already been solved
148
149
  - The remaining bugs are mostly related to [unimplemented features](#current-limitations)
149
- - Many of their [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc) are on our table or already implemented in Sveltia CMS
150
+ - Many of their [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc) are [on our table](#roadmap) or already implemented in Sveltia CMS
150
151
  - Solving [our own issues](https://github.com/sveltia/sveltia-cms/issues)
151
152
  - Implementing our own enhancement ideas for every part of the product
152
153
  - Responding to requests from the maintainer’s clients
153
154
  - Making the code clean and maintainable
154
155
 
155
- ![245 Netlify/Decap CMS issues solved in Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/headline-1.webp?20250808)<br>
156
+ ![250 Netlify/Decap CMS issues solved in Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/headline-1.webp?20250814)<br>
156
157
 
157
158
  ## Differentiators
158
159
 
@@ -579,6 +580,9 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
579
580
  - `CMS.registerEditorComponent()` accepts a component definition with the `icon` property. Developers can specify a Material Symbols icon name just like [custom collection icons](#using-a-custom-icon-for-a-collection).
580
581
  - The `fromBlock` function can be omitted if the `pattern` regex contains [named capturing groups](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Named_capturing_group) for the values.
581
582
  - Inline components are supported.[^267]
583
+ - Field validation works as expected.[^279]
584
+ - No error is raised in the browser console saying `Sent invalid data to remark`.[^280]
585
+ - No error is raised in the browser console saying `onValidate is not a function`.[^281]
582
586
 
583
587
  ### Better localization
584
588
 
@@ -597,6 +601,7 @@ However, 100% feature parity is never planned, and some features are still missi
597
601
  - **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.
598
602
  - **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).
599
603
  - **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/).
604
+ - [Gatsby plugin](https://github.com/decaporg/gatsby-plugin-decap-cms): Given the [decline of Gatsby](https://2024.stateofjs.com/en-US/libraries/meta-frameworks/), we won’t invest 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.
600
605
  - 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.
601
606
  - The deprecated Netlify Large Media service: Consider other storage providers.
602
607
  - Deprecated camel case configuration options: Use snake case instead, according to the current Decap CMS document.
@@ -608,7 +613,7 @@ However, 100% feature parity is never planned, and some features are still missi
608
613
  - Note: Some other camel case options, including Color widget options, are not deprecated.
609
614
  - 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.
610
615
  - Some date/time format tokens: [Decap CMS 3.1.1](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.1.1) replaced Moment.js with Day.js, and Sveltia CMS will follow suit soon. Since [Day.js tokens](https://day.js.org/docs/en/display/format) are not 100% compatible with [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/), this could be a breaking change in certain cases.
611
- - 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, which is powered by [Prism](https://prismjs.com/) and will soon be [replaced by Shiki](https://github.com/facebook/lexical/issues/6575).
616
+ - 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 will soon be [replaced by Shiki](https://github.com/facebook/lexical/issues/6575).
612
617
  - Remark plugins for the Markdown widget: Not compatible with our Lexical-based rich text editor.
613
618
  - 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.
614
619
  - Performance-related options: Sveltia CMS has [drastically improved performance](#better-performance) with GraphQL enabled by default, so these are no longer relevant:
@@ -628,11 +633,11 @@ These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are
628
633
  - [Cloudinary](https://decapcms.org/docs/cloudinary/) and [Uploadcare](https://decapcms.org/docs/uploadcare/) media libraries ([#4](https://github.com/sveltia/sveltia-cms/discussions/4))
629
634
  - LineString and Polygon types for the [Map](https://decapcms.org/docs/widgets/#map) widget
630
635
  - [Custom widgets](https://decapcms.org/docs/custom-widgets/)
631
- - [Custom editor components](https://decapcms.org/docs/custom-widgets/#registereditorcomponent): Support for preview, widgets with complex values (Code with `output_code_only: false`, Hidden, KeyValue, List, Object, Select/Relation with `multiple: true`), the `default` field option and [multiline components](https://github.com/sveltia/sveltia-cms/issues/410)
636
+ - [Custom editor components](https://decapcms.org/docs/custom-widgets/#registereditorcomponent): preview and multiline components ([#410](https://github.com/sveltia/sveltia-cms/issues/410))
632
637
  - [Custom preview templates](https://decapcms.org/docs/customization/#registerpreviewtemplate) ([#51](https://github.com/sveltia/sveltia-cms/issues/51))
633
638
  - [Event hooks](https://decapcms.org/docs/registering-events/) ([#167](https://github.com/sveltia/sveltia-cms/issues/167))
634
639
 
635
- Due to the complexity, we have decided to defer the following features to the 2.0 release due early 2026. Netlify/Decap CMS has a number of open issues with these collaboration and beta features — we want to implement them the right way.
640
+ Due to the complexity, we have decided to defer the following features to the 2.0 release due early 2026. Netlify/Decap CMS has dozens of open issues with these collaboration and beta features — we want to implement them the right way.
636
641
 
637
642
  - [Editorial workflow](https://decapcms.org/docs/editorial-workflows/)
638
643
  - [Open authoring](https://decapcms.org/docs/open-authoring/)
@@ -852,8 +857,9 @@ Here are the workflow steps and tips:
852
857
  1. Click “Work with Local Repository” and select the project’s root directory once prompted.
853
858
  - 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.
854
859
  - 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).
855
- 1. Edit your content using the CMS. All changes are made to local files.
860
+ 1. Edit your content normally using the CMS. All changes are made to local files.
856
861
  1. Use `git diff` or a GUI like [GitHub Desktop](https://desktop.github.com/) to see if the produced changes look good.
862
+ - GitHub Desktop can be used for any repository, not just GitHub-hosted ones.
857
863
  1. Open the dev site at `http://localhost:[port]/` to check the rendered pages.
858
864
  - Depending on your framework, you may need to manually rebuild your site to reflect the changes you have made.
859
865
  1. Commit and push the changes if satisfied, or discard them if you’re just testing.
@@ -1052,7 +1058,7 @@ Sveltia CMS comes with a handy translation API integration so that you can trans
1052
1058
  1. Enable the [Cloud Translation API](https://console.cloud.google.com/apis/library/translate.googleapis.com). It’s free up to 500,000 characters per month.
1053
1059
  1. Create a [new API key](https://console.cloud.google.com/apis/api/translate.googleapis.com/credentials) and copy it.
1054
1060
  - OpenAI
1055
- 1. Sign in or sign up for [Open AI](https://platform.openai.com/docs/overview) and create a new project.
1061
+ 1. Sign in or sign up for [OpenAI Platform](https://platform.openai.com/docs/overview) and create a new project.
1056
1062
  1. Add a credit balance (minimum $5) to your account.
1057
1063
  1. Create a [new API key](https://platform.openai.com/api-keys) and copy it.
1058
1064
  1. Open an entry in Sveltia CMS.
@@ -1060,6 +1066,8 @@ Sveltia CMS comes with a handy translation API integration so that you can trans
1060
1066
  1. Select a translation service from the dropdown menu and paste your API key when prompted.
1061
1067
  1. The field(s) will be automatically translated.
1062
1068
 
1069
+ You can also provide your API keys in the Settings dialog.
1070
+
1063
1071
  Note that the Translation button on the pane header only translates empty fields, while in-field Translation buttons override any filled text.
1064
1072
 
1065
1073
  Earlier versions of Sveltia CMS included DeepL integration, but it has been disabled [due to an API limitation](https://github.com/sveltia/sveltia-cms/issues/437). More translation services will be added in the future.
@@ -1581,6 +1589,11 @@ Then, add the following origins depending on your Git backend and enabled integr
1581
1589
  ```
1582
1590
  https://translation.googleapis.com
1583
1591
  ```
1592
+ - OpenAI:
1593
+ - `connect-src`
1594
+ ```
1595
+ https://api.openai.com
1596
+ ```
1584
1597
  - YouTube:
1585
1598
  - `frame-src`
1586
1599
  ```
@@ -1706,9 +1719,14 @@ Due early 2026
1706
1719
  - Official starter templates for the most popular frameworks, including SvelteKit and Next.js
1707
1720
  - and so much more!
1708
1721
 
1722
+ ### Non-goals
1723
+
1724
+ - Framework-specific integrations, including a WYSIWYG editor. Due to the crowded CMS market and our limited resources, we will focus on framework-agnostic core features that are essential for replacing Netlify/Decap CMS and modernizing the concept.
1725
+ - Monetization. We may offer an affordable cloud version in the future since self-hosting the CMS and retrieving service API keys can be a hassle. However, we will not charge for the CMS itself. We want to keep it free and open source forever.
1726
+
1709
1727
  ## Trivia
1710
1728
 
1711
- - The [original version of Netlify CMS](https://github.com/netlify/netlify-cms-legacy) was built with Ember before being rewritten in React. And now we are completely rewriting it in Svelte. So this is effectively the second time the application has gone through a framework migration.
1729
+ - 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. And now we are completely rewriting it in Svelte. So this is effectively the third time the application has gone through a framework migration.
1712
1730
  - Our [local repository workflow](#working-with-a-local-git-repository) shares implementation with the Test backend, as both utilize the [File System API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API), allowing us to reduce maintenance costs. The seamless local workflow is critical not only for improved DX, but also for our rapid application development.
1713
1731
 
1714
1732
  ## Related links
@@ -2279,3 +2297,9 @@ This software is provided “as is” without any express or implied warranty. W
2279
2297
  [^277]: Netlify/Decap CMS [#86](https://github.com/decaporg/decap-cms/issues/86)
2280
2298
 
2281
2299
  [^278]: Netlify/Decap CMS [#7575](https://github.com/decaporg/decap-cms/issues/7575), [#7576](https://github.com/decaporg/decap-cms/issues/7576)
2300
+
2301
+ [^279]: Netlify/Decap CMS [#1390](https://github.com/decaporg/decap-cms/issues/1390), [#4912](https://github.com/decaporg/decap-cms/issues/4912), [#6986](https://github.com/decaporg/decap-cms/issues/6986)
2302
+
2303
+ [^280]: Netlify/Decap CMS [#3490](https://github.com/decaporg/decap-cms/issues/3490), [#3682](https://github.com/decaporg/decap-cms/issues/3682), [#4669](https://github.com/decaporg/decap-cms/issues/4669), [#4895](https://github.com/decaporg/decap-cms/issues/4895), [#4976](https://github.com/decaporg/decap-cms/issues/4976), [#5766](https://github.com/decaporg/decap-cms/issues/5766), [#6501](https://github.com/decaporg/decap-cms/issues/6501), [#6785](https://github.com/decaporg/decap-cms/issues/6785), [#7315](https://github.com/decaporg/decap-cms/issues/7315)
2304
+
2305
+ [^281]: Netlify/Decap CMS [#4892](https://github.com/decaporg/decap-cms/issues/4892) — We cannot reproduce the crash, but we do see the error message in the console.