What is the current path folks are taking for getting an admin dashboard up and running? Coming from Django world, I miss having a “recommended” path to a CRUD admin panel, and so far I haven’t figured out the best option for getting something similar in React+Prisma world.
- Offers an easy solution for all CRUD operations on all Prisma schema models
- Supports Prisma relations (ideally explicit many-to-many relations)
- Can be hosted remotely (not just a local devserver)
- Supports authentication
One option is to use the Redwood scaffold generators, but from the documentation and discussions in this community, it sounds like scaffolds aren’t currently meant for long term / production use. Is that still the case, or are there plans to make scaffolds “production worthy”? I just discovered that the Redwood service generators support the
--crud option so I wouldn’t have to manually create all of the necessary queries/mutations, but again I’m not sure if this is only meant for bootstrapping a project before moving on to something more serious.
There’s also Prisma Studio, but it’s an experimental feature so I haven’t looked very closely at this.
Another option is something like react-admin. I’ve put a decent amount of effort into getting this approach working. It seems possible, but there’s a lot of work required to get the backend generating the necessary CRUD queries and mutations, and getting it to play nicely with many-to-many relations. I have it working well for the read operations, but I haven’t figured out how to get many-to-many create/update to work yet (other than just directly creating/updating rows in the join-table). React-admin was originally built for REST APIs, so getting GraphQL support working requires customizing it with some pretty peripheral 3rd-party packages, which makes it feel like I’m working against the intent of the project.
I also recently found pal.js which has its own Prisma Admin. This looks promising since it’s built intentionally for GraphQL and Prisma. It also looks like it supports an SDL-first approach, so maybe it would play nicely with generated Redwood services. The documentation is spotty though, and I haven’t figured out how to get it to integrate with an existing backend like Redwood creates. I feel like if I spend more time with this one it could be a good option, but I’m not sure about adding another CLI tool like Pal.js on top of Redwood.
So that’s all I’ve got so far. What are other folks using to approximate something like the Django Admin?