I have been experimenting with creating an admin panel package that has a separate client from the main app. This way the admin will not interfere with the app (conflicting css, router, etc.) and also the admin files will not be loaded with the app.
I thought about using SSR or Asteroid, but I ended up using meteor-build-client. There is a meteor app in the package source that is used for development only. meteor-build-client then is used to bundle the files which are then added in package.js as assets. A server route is used to load the client on myapp.com/admin instead of loading your app.
I want it to be modular. The core only makes it possible to have the isolated admin panel. Packages can then be added to manage the data. If you don’t use MongoDB, for example, you can add a package to manage the data in the database you are using, and override PureAdmin.isAdmin (which uses MongoDB).
Some issues with this:
- Harder to develop
- Not possible to add packages to the client after the build. For example, if you want to use autoform in Pure Admin, it would have to be added to Pure Admin before meteor-build-client is run.
Do you see any issues with this? What are your thoughts?
The source is at https://github.com/zodern/meteor-pure-admin