In the past but also in recent discussion it became clear that the experience for
new developers that check out Neos is not as good as we would like it to be.
Since it is quite hard for us as a team of experienced developers to create special
tooling for newcomers i suggest to rethink this a bit and try to create
tools that we would use ourself in the day to day work. I also think that it would
make sense to focus on cli tools instead since anyone has to use composer anyways.
We may actually be closer to a smooth developer experience than we think if we apply the following principles:
- Embrace the cli, since composer is required anyways we can stick to that.
- Create cli-tools we use ourself (not a web setup we rarely ever test)
- Ensure the cli-tools add suggestions for the next steps.
In total this would allow us to define good new developer experience as follows:
Mission: "A new custom Neos distribution should be created and configured just via cli by reading the output of the cli-commands carefully and following the next suggested steps."
The missing building blocks to achieve this are as follows:
1. A CLI based setup command
By creating a setup command ./flow neos:setup we can add a dialog based way to
configure the database and imagine and to apply the migrations.
2. A kickstarter for Document and Content
Currently a kickstart command exists that creates a new site package. We should
improve that and add commands to create Documents and Nodes.
- The result should be self explaining in a way that the rendered html says where
yaml files and fusion files are and where css ans js can be placed. - The generated code should be good enogh that we use those tools ourself.
3. A cli tool to configure content dimensions
If you adjust the dimensions you are currently running against quite a hurdle.
We should add commands to add and remove content dimensions.
4. Adjust the base distribution setup to end with a description of the next steps
With the first steps in place the base-distribution setup could be adjusted to
not require Neos.Demo but instead show a description about the required steps to
get to a working site at the end.