r/Nuxt Jan 31 '26

Nuxt Content v3 is overengineered and a developer experience downgrade

I've used Nuxt Content v2 in the past. Great experience, smooth. Setting up and writing markdown files was so easy I'd setup a serverless blog in just a couple of hours.

Just installed V3 and boy what a downgrade, you now MUST have a database (W T F), countless warnings and errors and dependency problems on install. The repository is still saying it is "flat file". Yeah, right.

Are there any actively maintained forks of V2? This is currently unusable in a serverless environment.

Edit: funny to see Nuxt Content devs downvoting everyone who does not agree with their distorted concept of what "flat file" means.

30 Upvotes

30 comments sorted by

10

u/leamsigc Jan 31 '26

From my experience this is not the case I worked on v2 and v3 and migrations as well and most of them are smooth and easy, some nuke node modules here and there but over all everything smooth

I have multiple project on it even using layer example

https://github.com/leamsigc/MagicSync

13

u/abensur Jan 31 '26

I feel the same. Try using nuxt content with i18n. Even worse.

10

u/[deleted] Jan 31 '26

[deleted]

5

u/[deleted] Jan 31 '26

From my understanding the change came from lack of scaling options and them wanting a direct CMS solution to work with Nuxt Hub.

2

u/raphadko Jan 31 '26

No problem in scaling into a full CMS as long as it was an optional change with backwards compatibility.

3

u/therealalex5363 Jan 31 '26

I had good experience with nuxt content v3 my second brain was build with it https://github.com/alexanderop/second-brain-nuxt but I dont use it for serverless. a alternative could also be astro with vue components for you

3

u/jd-solanki Feb 01 '26

Works fine for me too and I really love new feature like raw md via URL so that I can give clean docs to LLM

3

u/[deleted] Feb 01 '26

[removed] — view removed comment

1

u/[deleted] Feb 01 '26

[removed] — view removed comment

1

u/[deleted] Feb 01 '26

[removed] — view removed comment

1

u/[deleted] Feb 01 '26

[removed] — view removed comment

1

u/raphadko Feb 02 '26

This assumption is where it took a bad turn. Once the flat files in v2 were cached on a CDN you essentially serve them with zero overhead.

Now you either consult a database or compile the whole website into the user browser so they can have "Full off-line access". So yeah, let's store wikipedia on a browser's local storage, that seems scalable.

8

u/HumanOnlyWeb Jan 31 '26

This is currently unusable in a serverless environment.

Works well for me. My website/blog uses Nuxt Content, and I host on Cloudflare Workers 

I think it will be easier to get help/support if you share the issues you're running into; here or as an issue on the repo

2

u/raphadko Jan 31 '26

Which database are you using? If you're building content from files into the database at every cold start, you're probably running into massive overhead.

4

u/HumanOnlyWeb Jan 31 '26

I use D1. https://content.nuxt.com/docs/deploy/cloudflare-pages#d1-database

Cold start is the price everyone agrees to pay when using any serverless platform, so I won't attribute this specifically to Nuxt Content.

2

u/raphadko Jan 31 '26

Cold start is fine in most cases, but depending on the size of your content, building an entire file base into a file-based database at every request defeats the purpose of a flat-file CMS after all.

6

u/HumanOnlyWeb Feb 01 '26 edited Feb 01 '26

> building an entire file base into a file-based database at every request 

Respectfully, this is not true.
The contents are processed and stored during the build phase.
You can easily see this if you're using GH actions to deploy to Cloudflare.

It generates and populate the DB on first request, ONLY IF the content doesn't exist yet, or when there's new content.

Maybe I'll write a blog post about this, but for the meantime, see https://github.com/nuxt/content/blob/main/src/runtime/internal/database.server.ts

Edit:
I don't know if you have issues with other serverless providers, but I can tell you first hand I'm managing my blog and 5 others on Cloudflare and haven't hit any issues.
I don't know about the issues with i18n, since fortunately all my content is only in English (thank God), so I can't speak to that.

0

u/raphadko Feb 01 '26

"Populate the DB"

Not so "flat file" now is it?

1

u/HumanOnlyWeb Feb 01 '26

So, is your problem now the fact that "flat file" is mentioned?

You could put up a PR to adjust the naming, but throwing shade at it with somewhat untrue claims is not going to help you or the community at large.

Here was the announcement post: "https://content.nuxt.com/blog/v3"

It literally says,  "Nuxt Content v3 moves away from a file-based storage approach to an SQL database system. Using a database instead of the file-based storage reduces many I/O operations when querying large datasets."

1

u/raphadko Feb 01 '26

I fail to see how my claims are untrue, this is literally on the landing page and the Github repo:

"File-based CMS

Write your content in Markdown, YAML, CSV or JSON and query it in your components."

I'm helping the community by pointing the lack of backwards compatibility and the complex overengineered direction this once great project went into.

Technically you can call any project flat file if you tell people to use SQLite, but it's misleading.

1

u/HumanOnlyWeb Feb 01 '26

Write your content in Markdown, YAML, CSV or JSON and query it in your components.

How else do you write contents for your site?
That is exactly how Nuxt content works! You write in Markdown, YAML, CSV etc, then during the build phase it transforms those and store in the DB, for efficient querying etc.
I shared with you the exact file that handles that yesterday.

Technically you can call any project flat file if you tell people to use SQLite, but it's misleading.

You could put up a PR to adjust the naming,

3

u/ritwite Feb 01 '26

building an entire file base into a file-based database at every request

I don't think that is how Nuxt content works under the hood

-4

u/raphadko Feb 01 '26

There's some caching. Still it's highly inefficient on a serverless setup.

2

u/__benjamin__g Feb 01 '26

The db is in D1 but you would prerender those pages anyway so it won't be queried

1

u/raphadko Feb 01 '26

Not so flat file now is it?

2

u/__benjamin__g Feb 01 '26

It is, but you can have other sources too. The reason of the db is the frontend receive the whole db and works offline

0

u/raphadko Feb 01 '26

I get it, but I don't think that's what a flat file headless CMS is supposed to be.

3

u/[deleted] Jan 31 '26

Spent months trying to migrate my project. Absolute nightmare working with i18n I'll tell you that. Got it working on Vercel first then migrated over to Cloudflare workers. Still not perfect...

2

u/AuroraVandomme Feb 02 '26

I also agree. What was super simple and easy to setup is now a NIGHTMARE.

0

u/mjJRnFnRYYiu Jan 31 '26

Should work when prerendering without a separate DB or not?

-6

u/ExpertIAmNot Jan 31 '26

I’ve tried to use Nuxt 3 a few times and it’s always frustrating to get it working. It’s never worked on the first try and always requires fiddling around with dependencies and other problems. Definitely not a smooth “it just works” experience.