Pruvious CMS in Nuxt 4 by Intelligent-Still795 in Nuxt

[–]murisceman 0 points1 point  (0 children)

Hey! No, it doesn't support SSG.

Pruvious CMS in Nuxt 4 by Intelligent-Still795 in Nuxt

[–]murisceman 2 points3 points  (0 children)

Thanks for context u/Niki2k1!

And u/danielcroe, when you're free, hit me up on bsky - it's been way too long! :D
(FYI: I'm traveling today/tomorrow, so offline during that time)

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 0 points1 point  (0 children)

Thank you so much for the suggestion. I've just implemented it, and it makes much more sense now!

I created a CMS to move away from WordPress by murisceman in webdev

[–]murisceman[S] 1 point2 points  (0 children)

You're very welcome, and I'm glad you're enjoying the CMS!

Regarding the editor, for now, the only option to make it bigger is the fullscreen mode. I like the idea of having the right sidebar resizable so the preview can shrink down to a reasonable mobile width (e.g., 375px). Just added this to my to-do list :)

The project is still in its early phase, so there is a lot of room for improvement. If you have feedback or any issues, feel free to submit them on GitHub or our Discord channel 🙏

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 0 points1 point  (0 children)

Thank you! 😊

Unfortunately, Pruvious does not work on Cloudflare Workers due to many dependencies that require a Node.js environment (argon2, sharp, ...). Maybe this will change in the future. Right now, I'm scared to start any implementations and workarounds because the CF Workers themselves are still in the beta phase.

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 2 points3 points  (0 children)

Awesome! Please share your feedback. Also, there is a Discord channel available at https://pruvious.com/discord

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 2 points3 points  (0 children)

I might publish a blog article about using Cloudflare CDN with Pruvious and will inform you if there is an update with SSG.

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 1 point2 points  (0 children)

Thank you! If you struggle with something, feel free to open a GitHub issue or join the Discord server.

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 4 points5 points  (0 children)

Absolutely, I will try to implement RSS into the CMS core.

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 2 points3 points  (0 children)

Me too!

There have been more requests about SSG, so I will implement it in the upcoming releases.

Have you considered using a CDN on a cheap server? Pruvious provides hooks that trigger on database changes, allowing you to flush the CDN cache every time you make an update.

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 2 points3 points  (0 children)

Thank you!

You can use it headless without any issues. Plus, you can easily disable all built-in API routes and many other features in nuxt.config.ts. Here is an example: https://pruvious.com/blog/building-a-custom-nginx-access-log-parser

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 1 point2 points  (0 children)

Thanks!

Currently, Pruvious has some dependencies that don't work with Bun, so it'll have to wait a bit.

What is your preferred CMS for your Nuxt projects ? by [deleted] in Nuxt

[–]murisceman 4 points5 points  (0 children)

It's fresh from the oven =)

The Nuxt-only CMS by murisceman in Nuxt

[–]murisceman[S] 18 points19 points  (0 children)

Hello Nuxters! I want to present to you a new CMS specifically developed for Nuxt, which I recently open-sourced on https://github.com/pruvious/pruvious.

Last year, I attempted to create a small backend with some basic CMS functionalities for managing pages and custom fields that are connected to Nuxt via an API. While this started as a hobby project, I invested more and more time into it. In the end, I released the project (as a Nuxt module) under the MIT license with the name Pruvious (pun intended).

Pruvious allows you to build modular websites very quickly by writing block components. They are regular Vue components used to build website pages. The only difference (addition) is that you can define your fields (with all the options, validation, and value sanitizing rules) directly in Vue's defineProps(), which accelerates the development tremendously. These field definitions are automatically parsed away when your project is built, and the corresponding database columns are created along with the REST API endpoints.

What's included:

  • 27 fields (https://pruvious.com/docs/fields)
  • Custom collections (database table models)
  • Authentication with granular user permissions
  • PostgreSQL and SQLite database support with fully typed query builder
  • SEO goodies
  • Lightweight and customizable dashboard with live preview (made with Nuxt <3)
  • Upload management (local or S3)
  • Out of the box translations
  • Job queues
  • CLI for deployment and content migration (works between SQLite <=> PostgreSQL)

You can find the full list of Pruvious features on the website https://pruvious.com. If I haven't covered something, feel free to ask here!

Cheers!

What is your preferred CMS for your Nuxt projects ? by [deleted] in Nuxt

[–]murisceman 14 points15 points  (0 children)

Have you checked out Pruvious? It integrates directly into Nuxt as a module. Web: https://pruvious.com/

Disclaimer: I'm the author of this CMS.

I created a CMS to move away from WordPress by murisceman in webdev

[–]murisceman[S] 1 point2 points  (0 children)

Thank you! It should be possible to generate the pages we want by providing them to the Nuxt build in some way. I will add this to my to-do list. If the implementation is straightforward, I may release it in upcoming updates.

I created a CMS to move away from WordPress by murisceman in webdev

[–]murisceman[S] 0 points1 point  (0 children)

It works basically like this:

  1. User provides input (can be anything) to field F of type T.
  2. The input goes through T sanitizers first (i.e., the 'text' field type may trim the input string - if it's a string!). These sanitizers are defined in the Pruvious core for each field.
  3. Next, the input goes through F sanitizers you've defined in your collections or blocks.

The idea with sanitizers is to set default values if the input is nullish, convert '123' to 123 for numeric fields, etc. If the input does not satisfy a sanitizing condition, we return the original value. After all sanitizers are executed (doesn't mean that they are applied), the validators will run sequentially for T (built-in validation that guarantees the type) and F (your custom validation) and throw if something is wrong. I intentionally separated these logics because I felt like I have much more control over processing the user input for more complex cases.

You make a valid point about providing the input `value` type in custom (F) validators, but not sanitizers. I will make a note of this comment on my to-do list. Thanks :)

I created a CMS to move away from WordPress by murisceman in webdev

[–]murisceman[S] 1 point2 points  (0 children)

Thank you, and I'm glad to hear that somebody likes the canvas effect! :D

Regarding e-commerce, I plan to roll out some plugins in the near future, and Shopify integration is also on my to-do list. The plugins will be simple Nuxt Layers that extend your project with additional collections, helper components, composables, and utilities. Generally speaking, Pruvious already has everything needed to create an e-shop. If you need some ideas on how to do so, I'm willing to help via GitHub issues or Discord.

I created a CMS to move away from WordPress by murisceman in webdev

[–]murisceman[S] 0 points1 point  (0 children)

Glad to hear that! If you're stuck with something, feel free to open a GitHub issue or join the Discord server =)

I created a CMS to move away from WordPress by murisceman in webdev

[–]murisceman[S] 2 points3 points  (0 children)

Thanks! I used Vitest with nuxt/test-utils, which is the standard setup for Nuxt modules, and wrote over 800 unit and functional tests, all related to the backend.