Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

馃憠聽Question: what are the main pain points you have using Strapi? #3415

Open
Aurelsicoko opened this issue Jun 10, 2019 · 74 comments

Comments

Projects
None yet
@Aurelsicoko
Copy link
Contributor

commented Jun 10, 2019

It has been a long time since we haven't asked for feedback from the community... Over the last 6 months, we worked hard to release the beta. The feedback that we received are amazing and we want to continue on that path. Your happiness is our top priority and we want to resolve all the pain points and issues you encountered using Strapi.

So, what are the main pain points you have using Strapi?

Please, try to be concise and describe your use case as much as possible. We already identified many pains but we are pretty sure that we haven't listed them all.


Instructions

  • Please only post one pain point at a time.
  • If your pain point has already been listed, make sure to upvote it instead of posting a similar message.

Template

  • Issue: Please describe your issue.
  • Context: Give more details about the use case.

Copy paste the following markdown template:

### Pain point

**Issue:** 
Please describe your issue.

**Context:** 
Give more details about the use case.

We look forward to reading all your comments. All contributions are welcomed, don't be shy 馃檲

@Aurelsicoko Aurelsicoko changed the title 馃憠Question: what are the main pain points you have using Strapi? 馃憠聽Question: what are the main pain points you have using Strapi? Jun 10, 2019

@chris062689

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
No way to add underscores or dashes to collection names. As an alternative, being able to name collections camelCase.

Context:
This makes it difficult to organize a large number of collections visually.

@chris062689

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
No way to reorder property names within the content designer tool.

Context:
This makes it difficult to visually find fields when they have been added to the model after initial model creation.

@Cmrickels

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
Lack of walk through examples for setting up a custom controller to fulfill a simple purpose.

Context:
Documentation for custom controller/service building. I would dare to say almost every serious project built on strapi quickly escapes the self generated nature and requires custom controller builds to obtain needed functionality. Not everyone that goes with strapi wishes to use GraphQL either.

When I go to sails, express, symfony, laravel, .NET, or rails documentation, one of the entry points to be made is how one builds a basic controller with basic action methods that gather information and feed it back to the client. There needs to be documentation for beginners to get a grasp on the contexts of the strapi env and how to build out a custom controller using whichever ORM is needed. Perhaps a bar with Mongoose and Bookshelf options on it to swap between examples. One can read mongoose's and bookshelf's documentation but using them in the context of strapis env is a different story and would really help me in hitting the ground running on a project.

@lukesammy

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
Lack of usable/ drag and drop gallery

Context:
The photo gallery is a little basic, and we would benefit from a more feature rich gallery, (i.e. drag and drop onto pieces of wysiwyg content, easier re-use of already uploaded content, also for image fields).

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Content Manager Plugin needs it's database entry constantly deleted // is too large

Context:
The CTM plugin has been a useful but extremely buggy for many months now, from white screen errors, to deleted models still showing up, and new models not showing up at all.

That and when you have as many models as me, that very nested database entry is a major headache to actually manage and debug when stuff breaks. Making it effectively pointless when something breaks as you have to delete it and completely redo all your customizations.

@lukesammy

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
Lack of full markdown and html support

Context:
This makes adding/editing tables for example difficult in wysiwyg fields.

@alexisab

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
There is no media preview in the table of entries

Context:
When the media is an important piece of information it's hard to find the correct entry

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
MySQL/Postgres lack of unique item support (Constraints)

Context:
Extremely old issue, when you mark a field as unique, the constraint is not actually applied to the database. And if you add the constraint manually and try to POST a duplicate entry, you will get a 500 server error instead of a 4xx error for a duplicate value.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Unable to over-ride the admin plugin in such a way that you can customize or add onto the admin users model

Context:

  • Moving the connection to a different database
  • Renaming the collection name
  • Relations to admin users
  • Modifying admin user routes/controllers/services
@FrancisVarga

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
No Group by options at querying by default in the query strings.

Context:
self explained

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
GraphQL aggregations for Bookshelf Databases

Context:
Strapi should be handling all databases with an equal footing as much as possible, bookshelf databases don't have aggregations.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Array and Relational One-Way Arrays

Context:
Array fields and the manyWay relational Array fields are something very basic and fundamental to many APIs. For relational one-ways a simple example is tags on a blog post while keeping the total entries in the database small and allowing for simple adding of new tags (without the use of enumeration)

@tpuza

This comment has been minimized.

Copy link

commented Jun 10, 2019

strapi new causes start of the strapi app

Issue:
strapi new command purpose is to 'Create a new project' but it does not conform SRP. It also starts newly created projects. So it does two things. Create a new project and starts the Strapi app process.

Context:
Despite this feature could be nice for the beginners, it complicates the app deployment specially in Docker environment were it is very hard to automate image build. We are using PM2 for instance, other users could start the app also different ways.

It would be good practice to keep strapi new command to do only one thing. Create a new project. Not starting the app after creation.

@hendrikgaffo

This comment has been minimized.

Copy link

commented Jun 10, 2019

Code Quality

Issue:
Ensuring good code quiality + dev experience when extending the framework.

Context:
I find it difficult to write qualitative code when customizing Strapi. I think it would be really beneficial to make usage of the developer experience TypeScript provides, especially for beginners. I find myself looking up Strapi core methods in the docs over and over again.

@periabyte

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
Multiple request needed to create a document with nested documents

Edit by DMehaffy for clarification, nested POST/PUT Requests for relations in a single call

Context:

// payload
{
  name: "john doe",
  address: {
    street: "1st street",
    city: "city"
  }
}

EDIT:
There's also no way to customize the form to have fields for nested document's properties

@Naismith

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
The current Content Manager drag and drop interface for customizing the CMS layout is awful.

Context:
Currently I find myself fighting with the drag and drop interface for the Content Manager Layout. Trying to get an element on a new line without something beside it is quite difficult. I find myself having to remove an element and add it back in.

Being able to specify widths of elements, or having an improved DnD experience would be great.

@ikesler-tenengroup

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
No Babel (any build in general) support for back end code (API and plugins)

Context:
There is really good build process for admin plugins which allows using of last ES features, especially import/export. However, there is only plain JS allowed in the back end code.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Lifecycle callbacks aren't being called correctly during their events

Context:
There should be separate lifecycle events for each option:

  • Create
  • Delete
  • Update
  • Get
  • Count

Likewise there should be pre and post version of each of these

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Missing Required fields should generate 4xx errors not 500 database ones

Context:
If you mark a field as required the API should respect this and provide the user a readable 4xx error stating the missing fields and reject it at the Strapi level, not just pass a 5xx error from the database

@baranelitez

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
strapi build script requires a lot of memory, making it impossible to run in VPS's with ~1G RAM.

Context:
Webpack building starts eating so much ram. Exceeds 1 GB of memory.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Enumeration field cannot have special chars

Context:
Hyphens, underscores, ect. Most of these are supported if these values are surrounded with quotes but Strapi itself has issues dealing with them (graphQL plugin)

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Filter on null values

Context:
A very basic but extremely useful filter for looking for entries that are missing a certain field or that field is null.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Split and simplify adding additional 3rd party providers

Context:
Make it easier to add new providers by splitting providers into their own packages as well as supporting alternative auth methods such as static keys ect.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Model/Field renaming doesn't rename the related table/column in the database

Context:
Instead it creates a new one and leaves the old one, instead of just simply renaming the old one to match.

@ikesler-tenengroup

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
New content type cannot be instantiated via Admin UI

Context:
Admin UI freezes for newly added content types: #2821. There is a working workaround, but it's an extra deployment step.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Child dependent relational values

Context:
As an example, say I have a model carOrders which has oneWay relations to make, model, and trim.

If I select the make: Ford, I should only see values related to that make for model, likewise trim should only show values related to model.

So I couldn't select Ford, Corvette, Super Duty because corvette is not a ford, it's a Chevy.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 10, 2019

Pain point

Issue:
Duplicating users for both Admins and normal users

Context:
I believe admins should have the option to also be considered normal users without having to duplicate their account in both models, maybe adding the option to adminIsAlsoUser to simplify password/email management ect.

@ikesler-tenengroup

This comment has been minimized.

Copy link

commented Jun 10, 2019

Pain point

Issue:
Missing foreign keys, default and unique constraints in relational databases

Context:
Strapi does not add foreign keys and schema-level constraints to relational databases.

@wemod123

This comment was marked as outdated.

Copy link

commented Jun 11, 2019

Pain point

Issue:
Lack of yarn support

Context:
npm is good anyway, but for me I had test around many other apps with yarn and npm and met almost every fault with npm / yarn, in total, yarn is much more stable, less error and extreamly fast for CI / CD.
It been confused when I saw in strapi documents some where with yarn etc, but actually yarn is not fully supported!!!

@derrickmehaffy

This comment was marked as off-topic.

Copy link
Contributor

commented Jun 11, 2019

Pain point

Issue:
Lack of yarn support

Context:
npm is good anyway, but for me I had test around many other apps with yarn and npm and met almost every fault with npm / yarn, in total, yarn is much more stable, less error and extreamly fast for CI / CD.
It been confused when I saw in strapi documents some where with yarn etc, but actually yarn is not fully supported!!!

@wemod123 I believe as of the beta the support should be there or is almost there.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 11, 2019

Pain point

Issue:
The created_at and updated_at are not shown in the adminUI

Context:
You are currently unable to show the automated datetime fields nor sort/filter by them via the adminUI

@nkmnz

This comment has been minimized.

Copy link

commented Jun 11, 2019

Pain point

Issue:
no public timeline and no public code for plugins "coming soon"

Context:
Strapi-Marketplace announces 15 plugins "coming soon", but the public roadmap doesn't reflect on most on them.

@andela-kakpobome

This comment has been minimized.

Copy link

commented Jun 11, 2019

Pain Point

Issue:
There's no collaborative way to share migrations.

Context:
Any serious project is going to need a team of people, who'd most likely be creating or modifying tables for their features. If Engr. A pushes a feature, that requires a new table or modifies a field, I have to manually create the table on my end or change the field manually, before I can test the feature locally, and do the same thing on develop/staging.

It'll be great if new tables/changes to tables are managed via migrations under the hood, and they can be run or undone; either via a GUI or CLI

@Naismith

This comment has been minimized.

Copy link

commented Jun 12, 2019

Pain point

Issue:
Ability to organize photos by folder

Context:
Currently all photos are uploaded into a root folder and shared between all areas using it, from the WYSIWYG, media uploads for a content type, and generic file uploads. What would be nice is some settings of either being able to organize in folders by type, images, documents, etc. Or being able to specify a sub folder for images to be stored.

For example an Article could have a hero image, that would be stored under Articles/Hero/image-example.png.

@tonikarppi

This comment has been minimized.

Copy link
Contributor

commented Jun 12, 2019

Pain point

Issue:
Strapi tests database connection when creating a new project.

Context:
It shouldn't be necessary to have a database connection up during the project initialization; the test should be done when starting the application.

@alexandrebodin

This comment was marked as off-topic.

Copy link
Collaborator

commented Jun 12, 2019

Pain point

Issue:
Lack of yarn support

Context:
npm is good anyway, but for me I had test around many other apps with yarn and npm and met almost every fault with npm / yarn, in total, yarn is much more stable, less error and extreamly fast for CI / CD.
It been confused when I saw in strapi documents some where with yarn etc, but actually yarn is not fully supported!!!

Hi yarn is supported starting from beta you can open issues about it if not working properly but it should

@selfagency

This comment has been minimized.

Copy link

commented Jun 14, 2019

Pain point

Issue:
Lack of singletons.

Context:
Not all content requires a collection. It'd be nice to be able to create one-off forms for things like app settings, nav menus, internationalization dictionaries, etc.

@merijnponzo

This comment has been minimized.

Copy link

commented Jun 14, 2019

Issue:
Using UUID's on postgres (and mysql?)

Context:
i'm still figuring out how to use UUID's with a strapi postgres installation. I found some related issues but these are not helping me further. For now I use a text field, and query with:

 puppies(where: { uuid_eq: "c0a0c3c5-82bc-46a0-b53b-89b5efbb3ffa" }) {

Ideal would be querying on a primary key

puppy(uuid: "c0a0c3c5-82bc-46a0-b53b-89b5efbb3ffa") {}
@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 14, 2019

Pain point

Issue:
AdminUI lacking an onscreen scroll bar

Context:
Not everyone has mouse scroll wheel options 馃槈 @soupette

@nurikabe

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
Current CORS implementation is insecure and cannot be configured.

Context:
See #2969

@alexandrebodin

This comment has been minimized.

Copy link
Collaborator

commented Jun 15, 2019

Pain point

Issue:
Fix date/datetime/time behavior

Context:
Give more details about the use case.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
Lack of proper documentation of internal API

Context:
Providing detailed documentation and/or examples for use of the internal strapi.x API especially around querying data between models for use in other services/lifecycle callbacks.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
"Security" header that breaks certain parts of the adminUI and can be easily overridden/spoofed

Context:
Typically happens when dealing with a frontend proxy like Nginx + SSL that requires a certain header in order to add users or even view them, without it you will usually get the "white screen of death"

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
Option to completely disable the "help" videos (and their menu) either at the project level or the user level instead of just a localstorage/cookie.

Context:
Great for new users, but after spending a week inside the adminUI it becomes increasingly annoying especially when working in a private browsing mode (or browsers that don't store data between sessions).

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
Lack of rate default rate limit support (especially role based rate limits) for generated API routes and GraphQL

Context:
The ability to rate limit users or roles is a very important feature for any API to ensure one person or groups of people are not able to effectively DDoS your API with constant requests.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
Count route responds in a plain text manor and normal REST/GraphQL routes cannot return a nested count within a single request

Context:
Count route should have the option of being displayed in a json format, and REST routes should have the option to display a total count (especially with applied filters) within a single request

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
Remove all references to _ID within the project and use the globally accepted ID value between mongoose and bookshelf

Context:
_ID is redundant and complicates the project by trying to deal with differences between mongoose and bookshelf databases. Mongo accepts and already has it's own ID field.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
Import/export data + migrations of data between environments

Context:
Especially relating to core_store data, dumping it to files and loading it on boot or on command as well as migrating actual data between environments.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 15, 2019

Pain point

Issue:
Lack of refresh token support + stateful session storage/logging in the database to lock JWT/RFT to a specific session/state

Context:
Extremely important with mobile based applications

@mdibaiee

This comment was marked as off-topic.

Copy link
Contributor

commented Jun 16, 2019

Pain point

Issue:
Lack of rate default rate limit support (especially role based rate limits) for generated API routes and GraphQL

Context:
The ability to rate limit users or roles is a very important feature for any API to ensure one person or groups of people are not able to effectively DDoS your API with constant requests.

I think this can, and should, be handled at the infrastructure-level of your application, not by the framework itself. You can have rate limits using an API gateway. Or maybe add more context as to why this can be a responsibility of the framework.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 16, 2019

I've marked replies to pain points as off topic to allow for easier viewing of the pain points, most of these will likely be converted into their own discussion topics for more open discussion without overloading this single thread.

@derrickmehaffy

This comment has been minimized.

Copy link
Contributor

commented Jun 17, 2019

Marking thread as locked to give the Strapi team time to review

You are still welcome to vote on issues or pain points you might have

Thanks!

@strapi strapi locked and limited conversation to collaborators Jun 17, 2019

@derrickmehaffy derrickmehaffy pinned this issue Jun 17, 2019

@lauriejim lauriejim unpinned this issue Jul 1, 2019

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can鈥檛 perform that action at this time.