Friction

Strapi

strapi.io · Headless CMS

Open-source headless CMS with a customizable API.

55 items · 66 source threads · 2 source types · updated 2026-09

Compare

Pain points 29

ItemAreaSeveritySupportLast seen
Admin page sometimes loads forever after a browser refresh in production

In production on Azure the admin panel sometimes shows an endless loading spinner after a page refresh, with no console errors.

Affects: Teams deploying Strapi 5 to Azure

Reliability & bugsBlocks work3 sources2024-10

“If you press F5 to get the entire site reloaded, sometimes you end up with an infinite loading”

“TypeError: Failed to fetch dynamically imported module”

Admin panel fails to load on a public host after upgrading to 4.12.4

After upgrading, the admin panel shows an API error and the browser tries to call localhost, which breaks deployments on the public internet.

Affects: Teams running Strapi in Docker behind a public host

Self-hosting & upgradesBlocks work3 sources2024-09

“the admin page generally loads (http 200) in /backend/admin, but the resources are loaded from the root path”

“Looking in the browser console, the browser also tries to make several requests to http://localhost:1337”

Data transfer stalls and fails when the websocket connection drops

During a transfer the websocket connection may die from latency or a network outage and the transfer stalls and fails. Support could not reproduce it.

Data export & migrationBlocks work3 sources2023-10

“When exporting and importing, my imports fail during the "link" portion due to fk constraint violations”

“the websocket connection may die (latency, network outage, ect) and the transfer will stall and fail”

Strapi judged buggy and unstable in production, user will not use it again

A developer who used Strapi in production found it much less stable than it looks, with many bugs and a messy design, and says they will not use it again.

Affects: Developer who ran Strapi in production

Reliability & bugsCauses churn2 sources2022-02

“They need to stop adding features and start making it work stable”

“Strapi [4] is much less stable than it looks. It's pretty buggy, isn't designed very well, and is just all around messy”

Build fails with minimatch type definition error on Strapi 5.17

Running the build on Strapi 5.17 fails in the TypeScript compile step with a missing type definition for minimatch.

Affects: TypeScript users building in CI or Docker

Self-hosting & upgradesBlocks work2 sources2025-07

“Yarn build is failing as: error TS2688: Cannot find type definition file for 'minimatch”

“Unable to run strapi build with pnpm”

Strapi localization and API support judged terrible

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work2 sources2024-06
TypeScript project fails to start with Unknown dialect error on 4.2 beta

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work2 sources2024-05
Populate on the Users endpoint ignores relational fields

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work2 sources2022-03
Strapi throws Knex connection pool timeouts under traffic from a HN front page

Locked: summary and evidence are part of Sprint Pass and Pro

PerformanceBlocks work2 sources2022-02
Strapi documentation too thin beyond basics, forcing source-code reading

Locked: summary and evidence are part of Sprint Pass and Pro

DocumentationBlocks work2 sources2020-09
Managing a self-hosted Strapi instance takes a full-time effort

Locked: summary and evidence are part of Sprint Pass and Pro

Self-hosting & upgradesCauses churn1 source2024-06
Saving an entry with a newly added dynamic zone component errors

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work1 source2025-07
Pagination and items-per-page broken in the media picker modal

Locked: summary and evidence are part of Sprint Pass and Pro

UI & usabilityBlocks work1 source2025-04
Drag and drop in Configure the view breaks field layout

Locked: summary and evidence are part of Sprint Pass and Pro

UI & usabilityBlocks work1 source2025-03
Content manager context hook unusable in edit view sidebar plugin

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2024-11
Getting related data from Strapi means writing custom middleware

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2024-10
REST API returns null for relations unless draft status is requested

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2024-09
Entry becomes uneditable after deleting a component still in use

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work1 source2024-02
Database identifiers become too long for tables, indexes and foreign keys

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work1 source2022-04
Strapi developers are hard to find and expensive compared with WordPress

Locked: summary and evidence are part of Sprint Pass and Pro

OtherBlocks work1 source2021-05
GraphQL queries with many relations are far slower than REST

Locked: summary and evidence are part of Sprint Pass and Pro

PerformanceBlocks work1 source2020-11
Count endpoint returns inflated totals with deep filters

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work1 source2020-08
AWS S3 upload provider returns access denied with public-read ACL

Locked: summary and evidence are part of Sprint Pass and Pro

IntegrationsBlocks work1 source2020-04
Lifecycle callbacks are broken and behave inconsistently

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2018-06
New project wizard freezes at the database step on Windows

Locked: summary and evidence are part of Sprint Pass and Pro

Setup & onboardingBlocks work1 source2018-05
Strapi onboarding is complicated, only the docs make it manageable

Locked: summary and evidence are part of Sprint Pass and Pro

Setup & onboardingAnnoyance1 source2024-05
Move of Strapi to a paid model disappointed an existing user

Locked: summary and evidence are part of Sprint Pass and Pro

Pricing & plansAnnoyance1 source2020-12
Admin main bundle is about 6.6 MB, login takes seconds to load

Locked: summary and evidence are part of Sprint Pass and Pro

PerformanceAnnoyance1 source2020-08
Strapi built on the Waterline ORM, criticized as poor

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2016-10

Feature requests 20

ItemAreaSeveritySupportLast seen
Allow more than two levels of nested components

Since a depth restriction was added, developers cannot nest components more than two levels, which blocks designs like hero blocks with cards and buttons.

Affects: Developers building websites with Strapi

CustomizationBlocks work2 sources2021-10

“we cannot use more than 2 levels deep of nesting components in the newer versions of Strapi”

“I'm trying to add a Dynamic Zone inside a repeatable component but this option doesn't show inside a custom component”

Support the mysql2 driver for MySQL 8 authentication

The bundled mysql driver does not support the default MySQL 8 authentication method, so connections to some hosted databases are refused.

Affects: Users on hosted MySQL 8 databases

IntegrationsBlocks work1 source2022-07

“Mysql database driver used by Strapi does not support the new authentication method that MySQL8 uses by default”

Strapi lacked content localization, forcing a hack in production

A team running Strapi with a static site generator missed a way to localize content. They had to hack around the limitation because no roadmap for it was visible.

Affects: Team using Strapi with a static site generator in production

CustomizationBlocks work1 source2020-06

“One thing we've been missing with Strapi however is the possibility to localize content”

Limit and filter repeatable component items in GraphQL and REST

A user can't limit or filter items inside repeatable components in GraphQL, unlike one-to-many relations, and asks for deep filtering on component fields.

API & developer experienceBlocks work1 source2020-01

“it would be nice to have the ability to limit/start or use a where query on repeatable component objects in GraphQL”

Option to exclude relations from REST responses

All relations are included by default, creating complex queries and larger responses. The user suggests opt-in relation inclusion through a query parameter.

PerformanceBlocks work1 source2018-10

“There is currently no way to exclude relations. They're all included by default”

Multi-site / multi-tenant support from one Strapi backend

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationBlocks work1 source2018-06
Let roles other than administrator access the admin panel

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2018-05
Policy to stop users editing content they did not create

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2018-02
No way to mark a relation attribute as required

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationBlocks work1 source2018-02
Strapi lacks conditional logic in content models

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationAnnoyance1 source2022-08
Folders in the Media Library to organize assets

Locked: summary and evidence are part of Sprint Pass and Pro

UI & usabilityAnnoyance1 source2020-11
Option to hide created_by and updated_by fields from API responses

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2020-07
Support compound and text indexes in model settings

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationAnnoyance1 source2020-04
Reorder content type entries in list view with drag and drop

Locked: summary and evidence are part of Sprint Pass and Pro

UI & usabilityAnnoyance1 source2019-09
Strapi missing out-of-the-box SEO basics like slug routing and sitemap

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationAnnoyance1 source2019-03
Support LDAP and CAS authentication

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityAnnoyance1 source2018-11
Add an Array field type

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationAnnoyance1 source2018-03
Add a Slug field type that derives from other fields

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationAnnoyance1 source2018-03
Import data from CSV into a content type

Locked: summary and evidence are part of Sprint Pass and Pro

Data export & migrationAnnoyance1 source2018-03
TypeScript support for admin panel and API

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2018-02

Workarounds 2

ItemAreaSeveritySupportLast seen
Auth secure session behind reverse proxy needs trusted proxy config

A maintainer workaround explains that secure sessions behind a reverse proxy require enabling the Koa proxy setting and forwarding the right headers, which is not set up by default.

Affects: Teams running Strapi behind a reverse proxy

Self-hosting & upgradesBlocks work1 source2025-09

“At minimum your reverse proxy should be passing along the `x-forwarded-for` and `x-forwarded-proto` headers”

Relation field cannot be required in the UI; schema file edit works

The content-type builder does not offer a required option for relations. Adding required to the schema file by hand makes validation work.

CustomizationAnnoyance1 source2023-01

“It's not possible to make a 'relation' required”

Switching reasons 4

ItemAreaSeveritySupportLast seen
Agency dropped Strapi and similar CMSes for a custom backend

A freelance developer found using CMSes such as Strapi painful and replaced them with custom backends to avoid depending on maintainers' direction.

Affects: Freelance web developer working with clients

OtherCauses churn1 source2026-09

“It was always painful, I've never enjoyed it”

Team regrets moving from Prismic to self-hosted Strapi

After moving from WordPress to Prismic and then to Strapi hoping for better extensibility and latency, the team found Strapi miserable and wishes they had stayed on Prismic.

Affects: Team running a headless CMS behind a Laravel site

OtherCauses churn1 source2024-06

“Prismic worked great and I regret switching to Strapi”

Strapi v4 showstoppers drove a long-time user to Directus

A user who liked Strapi v3 says v4 introduced too many big showstoppers and now recommends Directus as more mature.

Affects: Long-time Strapi v3 user

Reliability & bugsCauses churn1 source2022-05

“Strapi is out since v4 (too many really big showstopers”

Strapi admin needs too much clicking, evaluator picked Payload

While evaluating CMSes for an app with 30+ content types, a developer judged the Strapi admin UX to require too much clicking and chose Payload instead.

Affects: Team building an app and website with 30+ content types

UI & usabilityBlocks work1 source2024-10

“too much clicking in the UX, and having to write middleware to get related data”