@sveltia/cms 0.69.0 → 0.70.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
@@ -4,15 +4,17 @@ Sveltia CMS is a Git-based lightweight headless CMS under active development as
4
4
 
5
5
  The free, open source alternative to Netlify/Decap CMS is now in public beta, turbocharged with great UX, performance, i18n support and so many more enhancements.
6
6
 
7
- ![Screenshot: Git-based Headless CMS Made Right](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-1.webp?20250131)<br>
7
+ ![Screenshot: Git-based Headless CMS Made Right](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-1.webp?20250405)<br>
8
8
 
9
- ![Screenshot: Fast and Lightweight; Modern UX/UI with Dark Mode](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-2.webp?20250131)<br>
9
+ ![Screenshot: Fast and Lightweight; Modern UX/UI with Dark Mode](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-2.webp?20250405)<br>
10
10
 
11
- ![Screenshot: Stock Photo Integration with Pexels, Pixabay and Unsplash](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-3.webp?20250206)<br>
11
+ ![Screenshot: Stock Photo Integration with Pexels, Pixabay and Unsplash](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-3.webp?20250405)<br>
12
12
 
13
- ![Screenshot: Full Fledged Asset Library; First Class I18n Support with DeepL](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-4.webp?20250131)<br>
13
+ ![Screenshot: Full-Fledged Asset Library; First-Class I18n Support with DeepL](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-4.webp?20250405)<br>
14
14
 
15
- ![Screenshot: GitHub, GitLab; Streamlined Local Repository Workflow; Single Line Migration from Netlify/Decap CMS (depending on your current setup); Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-5.webp?20250131)<br>
15
+ ![Screenshot: Mobile Support; WebP, SVGO; Built-In Image Optimizer](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-5.webp?20250406)<br>
16
+
17
+ ![GitHub, GitLab; Streamlined Local & Remote Workflow; 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>
16
18
 
17
19
  ## Table of contents
18
20
 
@@ -43,6 +45,8 @@ The free, open source alternative to Netlify/Decap CMS is now in public beta, tu
43
45
  - [Features not to be implemented](#features-not-to-be-implemented)
44
46
  - [Current limitations](#current-limitations)
45
47
  - [Compatibility with Static CMS](#compatibility-with-static-cms)
48
+ - [Framework support](#framework-support)
49
+ - [Browser support](#browser-support)
46
50
  - [Other notes](#other-notes)
47
51
  - [Getting started](#getting-started)
48
52
  - [Installation \& setup](#installation--setup)
@@ -121,7 +125,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
121
125
  - Ensuring substantial [compatibility with Netlify/Decap CMS](#compatibility)
122
126
  - Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
123
127
  - Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
124
- - So far, 190+ issues, or 380+ if including duplicates, have been effectively solved in Sveltia CMS
128
+ - So far, 190+ issues, or 390+ if including duplicates, have been effectively solved in Sveltia CMS
125
129
  - Target:
126
130
  - 200 issues, or 400 if including duplicates, by GA (almost there)
127
131
  - 350 issues, or 600 if including duplicates, in the future
@@ -146,7 +150,7 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the numerous im
146
150
  - Frequent releases deliver new features and enhancements to users faster. Most of our minor [releases](https://github.com/sveltia/sveltia-cms/releases) address one or more Netlify/Decap CMS issues, giving you even more reasons to switch from the legacy predecessor.
147
151
  - Offers a modern, intuitive user interface that utilizes the full viewport,[^178] inspired in part by the Netlify CMS v3 prototype.[^1]
148
152
  - Provides immersive dark mode.[^2] The UI theme follows the user’s system preference by default and can be changed in the application settings.
149
- - Comes with touch device support, such as larger buttons for easier tapping. 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 and other optimizations such as swipe navigation are planned after the 1.0 release.
153
+ - Comes with decent mobile support.[^18] Expect some glitches we are still working to fully optimize the app for small screens and touch devices.
150
154
  - Made with [Svelte](https://svelte.dev/), not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid common fatal React application crashes.[^113][^129] Best of all, Svelte offers great performance.
151
155
  - We build [our own UI component library](https://github.com/sveltia/sveltia-ui), including custom dialogs,[^196] to ensure optimal usability without compromising accessibility.
152
156
  - The in-app Help menu provides all links to useful resources, including release notes, feedback and support.
@@ -156,7 +160,6 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the numerous im
156
160
  ### Better performance
157
161
 
158
162
  - Built completely from scratch with [Svelte](https://svelte.dev/) instead of forking React-based Netlify/Decap CMS. The app starts fast and stays fast with [no virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
159
- - The CMS is compiled and distributed as vanilla JavaScript. You can use it 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.
160
163
  - Small footprint: The bundle size is less than 500 KB when minified and [brotlied](https://en.wikipedia.org/wiki/Brotli), which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.5 MB) and Static CMS (2.6 MB).[^57][^64] This number is remarkable because even though some Netlify/Decap CMS features are [omitted](#features-not-to-be-implemented) or [unimplemented](#current-limitations) in Sveltia CMS, we have added a lot of new features. That’s the power of [Svelte 5](https://svelte.dev/blog/svelte-5-is-alive) + [Vite](https://vite.dev/).
161
164
  - 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] (the useless `search` configuration option is therefore ignored). It also avoids the slowness and potential API rate limit violations caused by hundreds of requests with Relation widgets.[^14]
162
165
  - 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/).
@@ -228,7 +231,7 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the numerous im
228
231
  - Users won’t get a 404 Not Found error when you sign in to the GitLab backend.[^115]
229
232
  - Features the all-new local backend that boosts DX. See the [productivity section](#better-productivity) above.
230
233
  - Developers can select the local and remote backends while working on a local server.
231
- - 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 is not yet supported in Safari.
234
+ - 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] Persistent storage is not yet supported in Safari.
232
235
 
233
236
  ### Better i18n support
234
237
 
@@ -477,10 +480,12 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
477
480
  - Upload multiple assets at once, including files in nested folders, by browsing or dragging and dropping them into the library.[^5]
478
481
  - Sort or filter assets by name or file type.
479
482
  - View asset details, including size, dimensions, commit author/date and a list of entries that use the selected asset.
480
- - Enhancements to media library integrations:
481
- - The default media library comes with a [built-in image optimizer](#optimizing-images-for-upload). With a few lines of configuration, images uploaded by users are automatically converted to WebP format for reduced size,[^199] and it’s also possible to specify a maximum width and/or height.[^200] SVG images can also be optimized.
483
+ - Enhancements to media libraries:
482
484
  - Supports multiple media libraries with the [new `media_libraries` option](#configuring-multiple-media-libraries).[^195]
483
- - The `max_file_size` option for the File/Image widget can be defined within the global `media_library` option, using `default` as the library name. It applies to all File/Image entry fields, as well as direct uploads to the Asset Library. The option can also be part of the [new `media_libraries` option](#configuring-multiple-media-libraries).
485
+ - Integrates stock photo providers, including Pexels, Pixabay and Unsplash.
486
+ - Default media library
487
+ - It comes with a [built-in image optimizer](#optimizing-images-for-upload). With a few lines of configuration, images selected by users for upload are automatically converted to WebP format for reduced size,[^199] and it’s also possible to specify a maximum width and/or height.[^200] SVG images can also be optimized.
488
+ - The `max_file_size` option for the File/Image widget can be defined within the global `media_library` option, using `default` as the library name. It applies to all File/Image entry fields, as well as direct uploads to the Asset Library. The option can also be part of the [new `media_libraries` option](#configuring-multiple-media-libraries).
484
489
  - The global `media_folder` can be an empty string (or `.` or `/`) if you want to store assets in the root folder.
485
490
  - PDF documents are displayed with a thumbnail image in both the Asset Library and the Select File dialog, making it easier to find the file you’re looking for.[^38]
486
491
  - Assets stored in an entry-relative media folder are displayed in the Asset Library.[^142]
@@ -555,6 +560,8 @@ Due to the complexity, the following features will be added after the 1.0 releas
555
560
  - [Open Authoring](https://decapcms.org/docs/open-authoring/)
556
561
  - [Nested Collections](https://decapcms.org/docs/collection-nested/)
557
562
 
563
+ Found a compatibility issue or other missing feature? [Let us know](https://github.com/sveltia/sveltia-cms/issues/new?labels=bug). Bear in mind that undocumented behaviour can easily be overlooked.
564
+
558
565
  ### Compatibility with Static CMS
559
566
 
560
567
  Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/StaticJsCMS/static-cms), a now-defunct fork of Netlify CMS. This README will be updated as our development progresses.
@@ -576,13 +583,24 @@ Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/
576
583
  - Customization
577
584
  - `CMS.registerIcon()` will not be supported, as Sveltia CMS includes the Material Symbols font for [custom collection icons](#using-a-custom-icon-for-a-collection) that doesn’t require manual registration.
578
585
 
586
+ ### Framework support
587
+
588
+ While Sveltia CMS is built with Svelte, the application is **framework-agnostic** because it’s distributed as compiled vanilla JavaScript and is a pure headless CMS that only manages content in Git repositories.
589
+
590
+ 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.
591
+
592
+ ### Browser support
593
+
594
+ Sveitia CMS works with all modern browsers, but there are a few limitations because it utilizes some new web technologies:
595
+
596
+ - The [local repository workflow](#working-with-a-local-git-repository) requires a Chromium-based browser, including Chrome, Edge and Brave.
597
+ - Safari: The Test backend doesn’t save changes locally; [image optimization](#optimizing-images-for-upload) is slower than in other browsers.
598
+ - Firefox ESR and its derivatives, including Tor Browser and Mullvad Browser, are not officially supported, although they may still work.
599
+
579
600
  ### Other notes
580
601
 
581
- - Make sure you’re using the latest stable version of a modern web browser. Firefox ESR and its derivatives, including Tor Browser and Mullvad Browser, are not officially supported, although they may still work. The [local repository workflow](#working-with-a-local-git-repository) requires Chrome, Edge or another Chromium-based browser.
582
- - The persistent storage for the Test backend is not yet supported in Safari.
583
602
  - Sveltia CMS requires a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts), meaning it only works with HTTPS, `localhost` or `127.0.0.1` URLs. If you’re running a remote server yourself and the content is served over HTTP, get a TLS certificate from [Let’s Encrypt](https://letsencrypt.org/).
584
603
  - The GitLab backend requires GitLab 16.3 or later.
585
- - Found a compatibility issue or other missing feature? [Let us know](https://github.com/sveltia/sveltia-cms/issues/new?labels=bug). Bear in mind that undocumented behaviour can easily be overlooked.
586
604
 
587
605
  ## Getting started
588
606
 
@@ -961,9 +979,11 @@ media_libraries:
961
979
  defaultOperations: '/resize/800x600/'
962
980
  ```
963
981
 
982
+ Note: Cloudinary and Uploadcare are not yet supported in Sveltia CMS.
983
+
964
984
  ### Optimizing images for upload
965
985
 
966
- Ever wanted to prevent end-users from adding huge images to your repository? The built-in optimizer in Sveltia CMS makes developers’ lives easier with a simple configuration like this:
986
+ Ever wanted to prevent end-users from adding huge images to your repository? The built-in image optimizer in Sveltia CMS makes developers’ lives easier with a simple configuration like this:
967
987
 
968
988
  ```yaml
969
989
  media_libraries:
@@ -979,15 +999,15 @@ media_libraries:
979
999
  optimize: true
980
1000
  ```
981
1001
 
982
- Then, whenever a user selects images to upload, those images are automatically optimized, all within the browser. Raster images such as PNG and JPEG are automatically converted to WebP format and resized if necessary. SVG images are minified using the [SVGO](https://github.com/svg/svgo) library.
1002
+ Then, whenever a user selects images to upload, those images are automatically optimized, all within the browser. Raster images such as JPEG and PNG are converted to WebP format and resized if necessary. SVG images are minified using the [SVGO](https://github.com/svg/svgo) library.
983
1003
 
984
- In case you’re not aware, [WebP](https://developers.google.com/speed/webp) offers better compression than JPEG and PNG and is now [widely supported](https://caniuse.com/webp) across major browsers. So there is no reason not to use WebP on the web.
1004
+ In case you’re not aware, [WebP](https://developers.google.com/speed/webp) offers better compression than conventional formats and is now [widely supported](https://caniuse.com/webp) across major browsers. So there is no reason not to use WebP on the web.
985
1005
 
986
1006
  - As [noted above](#configuring-multiple-media-libraries), the `media_libraries` option can be global at the root level of `config.yml`, which applies to both entry fields and the Asset Library, or field-specific for the File/Image widgets.
987
1007
  - `raster_image` applies to any supported raster image format: `avif`, `bmp`, `gif`, `jpeg`, `png` and `webp`. If you like, you can use a specific format as key instead of `raster_image`.
988
1008
  - The `width` and `height` options are the maximum width and height, respectively. If an image is larger than the specified dimension, it will be scaled down. Smaller images will not be resized.
989
- - File processing is a bit slow on Safari because [native WebP encoding](https://caniuse.com/mdn-api_htmlcanvaselement_toblob_type_parameter_webp) is not yet supported and a [third-party library](https://github.com/jamsinclair/jSquash) is used instead.
990
- - AVIF conversion is not supported at this time because no browser has native encoding support and the library is very slow.
1009
+ - File processing is a bit slow on Safari because [native WebP encoding](https://caniuse.com/mdn-api_htmlcanvaselement_toblob_type_parameter_webp) is [not supported](https://bugs.webkit.org/show_bug.cgi?id=183257) and the [jSquash](https://github.com/jamsinclair/jSquash) library is used instead.
1010
+ - AVIF conversion is not supported because no browser has native AVIF encoding support ([Chromium won’t fix it](https://issues.chromium.org/issues/40848792)) and the third-party library (and AVIF encoding in general) is very slow.
991
1011
  - This feature is not intended for creating image variants in different formats and sizes. It should be done with a framework during the build process.
992
1012
  - We may add more transformation options in the future.
993
1013
 
@@ -1232,7 +1252,7 @@ See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/ma
1232
1252
  ### After the 1.0 release
1233
1253
 
1234
1254
  - Implementing the [remaining Netlify/Decap CMS features](#current-limitations)
1235
- - Tackling even more Netlify/Decap CMS issues, including MDX support,[^122] manual entry sorting,[^125] mobile optimization,[^18] config editor[^10] and other [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc)
1255
+ - Tackling even more 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)
1236
1256
  - 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]
1237
1257
  - More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools, etc.
1238
1258
  - AI integrations for image generation and content writing
@@ -1298,7 +1318,7 @@ This software is provided “as is” without any express or implied warranty. W
1298
1318
 
1299
1319
  [^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333), [#4216](https://github.com/decaporg/decap-cms/issues/4216)
1300
1320
 
1301
- [^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441)
1321
+ [^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441), [#1277](https://github.com/decaporg/decap-cms/issues/1277), [#1339](https://github.com/decaporg/decap-cms/issues/1339), [#2500](https://github.com/decaporg/decap-cms/issues/2500), [#2833](https://github.com/decaporg/decap-cms/issues/2833), [#2984](https://github.com/decaporg/decap-cms/issues/2984), [#3852](https://github.com/decaporg/decap-cms/issues/3852), [#7241](https://github.com/decaporg/decap-cms/issues/7241)
1302
1322
 
1303
1323
  [^19]: Netlify/Decap CMS [#5910](https://github.com/decaporg/decap-cms/issues/5910)
1304
1324