@sveltia/cms 0.78.0 → 0.78.2

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
@@ -14,7 +14,7 @@ The free, open source alternative/successor to Netlify/Decap CMS is now in publi
14
14
 
15
15
  ![Built-in image optimizer for WebP and SVG; mobile & tablet support](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-5.webp?20250409)<br>
16
16
 
17
- ![Streamlined local and remote workflow; GitHub, GitLab support; single-line migration from Netlify/Decap CMS (depending on your current setup); Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-6.webp?20250406)<br>
17
+ ![Streamlined local and remote workflow; GitHub, GitLab & Gitea support; single-line migration from Netlify/Decap CMS (depending on your current setup); Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-6.webp?20250526)<br>
18
18
 
19
19
  ## Table of contents
20
20
 
@@ -107,7 +107,7 @@ Due to its unfortunate abandonment in early 2022, Netlify CMS spawned 3 successo
107
107
 
108
108
  - [Static CMS](https://github.com/StaticJsCMS/static-cms): a community fork, initial commit made in September 2022 — discontinued in September 2024 after making meaningful improvements
109
109
  - **Sveltia CMS**: not a fork but a **complete rewrite** or “total reboot”, started in November 2022, first appeared on GitHub in March 2023
110
- - [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version, [announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as the official successor with a Netlify agency partner taking ownership — mostly stagnant
110
+ - [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version, [announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as the official successor with a Netlify agency partner taking ownership — mostly stagnant, with only occasional releases
111
111
 
112
112
  Sveltia CMS is the only project that doesn’t inherit the complexity, technical debt and numerous bugs of Netlify CMS, which was launched back in 2015. We are confident that our decision to rebuild the application from scratch was the right and inevitable one, as proven by the [hundreds of improvements](#differentiators) we have already made.
113
113
 
@@ -123,14 +123,14 @@ While Sveltia CMS is specifically designed to replace legacy Netlify CMS instanc
123
123
 
124
124
  ## Development status
125
125
 
126
- Sveltia CMS is currently in **beta** and version 1.0 (GA) is expected to ship in Q4 2025. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) for updates. See also our [roadmap](#roadmap).
126
+ Sveltia CMS is currently in **beta** and version 1.0 (GA) is expected to ship in Q4 2025. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) and follow us on [Bluesky](https://bsky.app/profile/sveltiacms.app) for updates. See also our [roadmap](#roadmap).
127
127
 
128
128
  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 a complicated system that involves various kinds of activities that require considerable effort:
129
129
 
130
130
  - Ensuring substantial [compatibility with Netlify/Decap CMS](#compatibility)
131
131
  - Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
132
132
  - Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
133
- - So far, 210+ issues, or 420+ if including duplicates, have been effectively solved in Sveltia CMS
133
+ - So far, 210+ issues, or 425+ if including duplicates, have been effectively solved in Sveltia CMS
134
134
  - Target:
135
135
  - 200 issues, or 400 if including duplicates, by GA — We did it! 🎉
136
136
  - 350 issues, or 700 if including duplicates, in the future
@@ -237,10 +237,10 @@ Netlify/Decap CMS users will definitely be pleased and surprised by the numerous
237
237
  - 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]
238
238
  - The GitLab backend support comes with background [service status](https://status.gitlab.com/) checking, just like GitHub.
239
239
  - Service status checks are performed frequently and an incident notification is displayed prominently.
240
- - Users 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 when Developer Mode is enabled.
240
+ - Users can quickly open the source file of an entry or asset in your repository using View on GitHub (or GitLab or Gitea) under the 3-dot menu when Developer Mode is enabled.
241
241
  - We provide [our own OAuth client](https://github.com/sveltia/sveltia-cms-auth) for GitHub and GitLab.
242
242
  - Users won’t get a 404 Not Found error when you sign in to the GitLab backend.[^115]
243
- - Our Gitea backend is high-performing because it retrieves multiple entries simultaneously. It also won’t cause 400 Bad Request errors due to the presence of `DRAFT_MEDIA_FILES` in a file path.[^222]
243
+ - Our Gitea backend is high-performing because it retrieves multiple entries simultaneously. It also won’t cause 400 Bad Request errors due to the presence of `DRAFT_MEDIA_FILES` in file paths.[^222]
244
244
  - Features the all-new local backend that boosts DX. See the [productivity section](#better-productivity) above.
245
245
  - Developers can select the local and remote backends while working on a local server.
246
246
  - The Test backend saves entries and assets in the browser’s [origin private file system](https://web.dev/articles/origin-private-file-system) (OPFS) so that changes are not discarded when the browser tab is closed or reloaded.[^194] The persistent storage support works with all modern browsers [except Safari](https://bugs.webkit.org/show_bug.cgi?id=254726).
@@ -545,7 +545,7 @@ However, 100% feature parity is not planned, and some features are still missing
545
545
 
546
546
  ### Features not to be implemented
547
547
 
548
- - **Azure, Bitbucket and Forgejo backends**: For performance reasons. We may support these platforms if their APIs improve to allow the CMS to fetch multiple entries at once. Our [Gitea backend](https://github.com/sveltia/sveltia-cms/issues/198) is incompatible with Forgejo because it uses a new efficient API method. [Forgejo support](https://github.com/sveltia/sveltia-cms/issues/381) will not be added until they implement an equivalent.
548
+ - **Azure, Bitbucket and Forgejo backends**: For performance reasons. We may support these platforms if their APIs improve to allow the CMS to fetch multiple entries at once. Our Gitea backend is not compatible with Forgejo due to API differences. [Forgejo support](https://github.com/sveltia/sveltia-cms/issues/381) will not be added until they implement an equivalent API enhancement.
549
549
  - **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.
550
550
  - **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, most likely using [Cloudflare Workers](https://workers.cloudflare.com/) and [Auth.js](https://authjs.dev/).
551
551
  - 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.
@@ -572,7 +572,7 @@ However, 100% feature parity is not planned, and some features are still missing
572
572
 
573
573
  ### Current limitations
574
574
 
575
- These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are working hard to add them before the 1.0 release due Q4 2025.
575
+ These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are working hard to add them before the 1.0 release due Q4 2025. Check the [release notes](https://github.com/sveltia/sveltia-cms/releases) and [Bluesky](https://bsky.app/profile/sveltiacms.app) for updates.
576
576
 
577
577
  - Comprehensive site config validation
578
578
  - [Localization](https://github.com/sveltia/sveltia-cms/blob/main/src/lib/locales/README.md) other than English and Japanese
@@ -615,7 +615,7 @@ Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/
615
615
 
616
616
  ### Framework support
617
617
 
618
- While Sveltia CMS is built with Svelte, the application is **framework-agnostic**. It’s a small, compiled, vanilla JavaScript bundle that manages content in a Git repository directly via the REST/GraphQL API. It doesn’t interact with the framework that builds your site.
618
+ While Sveltia CMS is built with Svelte, the application is **framework-agnostic**. It’s a small, compiled, vanilla JavaScript bundle that manages content in a Git repository directly via an API. It doesn’t interact with the framework that builds your site.
619
619
 
620
620
  So you can use the CMS with any framework or static site generator (SSG) that can load static files during the build process, including but not limited to Astro, Eleventy, Hugo, Jekyll, Next.js, SvelteKit and VitePress.
621
621
 
@@ -624,7 +624,7 @@ We have added support for features and file structures used in certain framework
624
624
  ### Backend support
625
625
 
626
626
  - The GitLab backend requires GitLab 16.3 or later.
627
- - The Gitea backend requires Gitea 1.24 or later. It’s not compatible with Forgejo as it uses a new efficient API method that Forgejo does not support yet.
627
+ - The Gitea backend requires Gitea 1.24 or later. It’s not compatible with Forgejo due to API differences. Support for Forgejo is tracked in [#381](https://github.com/sveltia/sveltia-cms/issues/381). The default origin of the `base_url` and `api_root` [backend options](https://decapcms.org/docs/backends-overview/#backend-configuration) is set to `https://gitea.com` (public free service) instead of `https://try.gitea.io` (test instance).
628
628
 
629
629
  ### Browser support
630
630
 
@@ -642,7 +642,7 @@ Sveitia CMS works with all modern browsers, but there are a few limitations beca
642
642
 
643
643
  ### Installation & setup
644
644
 
645
- Currently, Sveltia CMS is primarily intended for existing Netlify/Decap CMS users. If you don’t have it yet, follow [their documentation](https://decapcms.org/docs/basic-steps/) to add it to your site and create a configuration file first. Skip the [Choosing a Backend](https://decapcms.org/docs/choosing-a-backend/) page and choose the [GitHub](https://decapcms.org/docs/github-backend/) or [GitLab](https://decapcms.org/docs/gitlab-backend/) backend instead. Then migrate to Sveltia CMS as described below.
645
+ Currently, Sveltia CMS is primarily intended for existing Netlify/Decap CMS users. If you don’t have it yet, follow [their documentation](https://decapcms.org/docs/basic-steps/) to add it to your site and create a configuration file first. Skip the [Choosing a Backend](https://decapcms.org/docs/choosing-a-backend/) page and choose the [GitHub](https://decapcms.org/docs/github-backend/), [GitLab](https://decapcms.org/docs/gitlab-backend/) or [Gitea](https://decapcms.org/docs/gitea-backend/) backend instead. Then migrate to Sveltia CMS as described below.
646
646
 
647
647
  Or try one of the starter kits for popular frameworks created by community members:
648
648
 
@@ -661,7 +661,7 @@ Unfortunately, we are unable to provide free installation and setup support at t
661
661
 
662
662
  ### Migration
663
663
 
664
- 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 unsupported features like custom widgets or nested collections, migrating to Sveltia CMS is super easy — it works as a drop-in replacement.
664
+ Have a look at the [compatibility info](#compatibility) above first. If you’re already using Netlify/Decap CMS with the GitHub, GitLab or Gitea backend and don’t have any unsupported features like custom widgets or nested collections, migrating to Sveltia CMS is super easy — it works as a drop-in replacement.
665
665
 
666
666
  Open `/admin/index.html` locally with an editor like VS Code and replace the CMS `<script>` tag with the new one:
667
667
 
@@ -744,7 +744,7 @@ Limitation: YAML anchors, aliases and merge keys only work if they are in the sa
744
744
 
745
745
  ### Working around an authentication error
746
746
 
747
- If you get an “Authentication Aborted” error when trying to sign in to GitHub or GitLab using the authorization code flow, you may need to check your site’s [`Cross-Origin-Opener-Policy`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy). The COOP header is not widely used, but it’s known to break the OAuth flow with a popup window. If that’s your case, changing `same-origin` to `same-origin-allow-popups` solves the problem. ([Discussion](https://github.com/sveltia/sveltia-cms/issues/131))
747
+ If you get an “Authentication Aborted” error when trying to sign in to GitHub, GitLab or Gitea using the authorization code flow, you may need to check your site’s [`Cross-Origin-Opener-Policy`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy). The COOP header is not widely used, but it’s known to break the OAuth flow with a popup window. If that’s your case, changing `same-origin` to `same-origin-allow-popups` solves the problem. ([Discussion](https://github.com/sveltia/sveltia-cms/issues/131))
748
748
 
749
749
  ### Working with a local Git repository
750
750
 
@@ -752,8 +752,8 @@ Sveltia CMS has simplified the local repository workflow by removing the need fo
752
752
 
753
753
  Here are the workflow steps and tips:
754
754
 
755
- 1. Make sure you have configured the [GitHub](https://decapcms.org/docs/github-backend/) or [GitLab](https://decapcms.org/docs/gitlab-backend/) backend.
756
- - The Git Gateway backend mentioned in the Netlify/Decap CMS [local Git repository document](https://decapcms.org/docs/working-with-a-local-git-repository/) is not supported in Sveltia CMS, so `name: git-gateway` won’t work. You’ll need either `name: github` or `name: gitlab` along with the `repo` definition. If you haven’t determined your repository name yet, just use a tentative name.
755
+ 1. Make sure you have configured the [GitHub](https://decapcms.org/docs/github-backend/), [GitLab](https://decapcms.org/docs/gitlab-backend/) or [Gitea](https://decapcms.org/docs/gitea-backend/) backend.
756
+ - The Git Gateway backend mentioned in the Netlify/Decap CMS [local Git repository document](https://decapcms.org/docs/working-with-a-local-git-repository/) is not supported in Sveltia CMS, so `name: git-gateway` won’t work. Use `github`, `gitlab` or `gitea` for the `name` along with the `repo` definition. If you haven’t determined your repository name yet, just use a tentative name.
757
757
  1. Launch the local development server for your frontend framework, typically with `npm run dev` or `pnpm dev`.
758
758
  1. Open `http://localhost:[port]/admin/index.html` with Chrome or Edge.
759
759
  - The port number varies by framework. Check the terminal output from the previous step.
@@ -1154,7 +1154,7 @@ Sveltia CMS supports some [data output](#better-data-output) options, including
1154
1154
  ```yaml
1155
1155
  output:
1156
1156
  omit_empty_optional_fields: false
1157
- encode_file_path: false # true to URL-encode file paths for FIle/Image fields
1157
+ encode_file_path: false # true to URL-encode file paths for File/Image fields
1158
1158
  json:
1159
1159
  indent_style: space # or tab
1160
1160
  indent_size: 2
@@ -1238,6 +1238,15 @@ Then, add the following origins depending on your Git backend and enabled integr
1238
1238
  ```
1239
1239
  https://gitlab.com https://status-api.hostedstatus.com
1240
1240
  ```
1241
+ - Gitea: (If you’re running a self-hosted instance, use the origin instead.)
1242
+ - `img-src`
1243
+ ```
1244
+ https://gitea.com
1245
+ ```
1246
+ - `connect-src`
1247
+ ```
1248
+ https://gitea.com
1249
+ ```
1241
1250
  - Pexels:
1242
1251
  - `img-src`
1243
1252
  ```
@@ -1348,9 +1357,9 @@ Due Q4 2025
1348
1357
  ### Future
1349
1358
 
1350
1359
  - Tackling many of the remaining Netlify/Decap CMS issues, including MDX support,[^122] manual entry sorting,[^125] config editor[^10] and other [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc)
1351
- - Exploring features that require server-side implementation, including user management (Netlify Identity alternative), roles,[^23] commits without a GitHub or GitLab account (Git Gateway alternative), post locking (like [WordPress](https://codex.wordpress.org/Post_Locking))[^166] and scheduled posts[^167]
1360
+ - Exploring features that require server-side implementation, including user management (Netlify Identity alternative), roles,[^23] commits without a Git service account (Git Gateway alternative), post locking (like [WordPress](https://codex.wordpress.org/Post_Locking))[^166] and scheduled posts[^167]
1352
1361
  - More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools, etc.
1353
- - AI integrations for image generation, content writing, etc.
1362
+ - AI integrations for image generation, content writing, translation, etc.
1354
1363
  - Search enhancements
1355
1364
  - Advanced digital asset management (DAM) features, including image editing and tagging[^114]
1356
1365
  - Marketplace for custom widgets, etc.