The main issue with demos is that they can go out of date. When a plugin is updated, if I forget to update the demo, it might not be as effective, especially if the plugin changes significantly.
Ideally, demos should be automatically updated whenever something changes. However, if they are released as stand-alone packages, you would almost always have to update it manually. And if you dozens of demos sitting around, that's a lot of demos.
As such, I have thought of two ways to do it.
One way I could offer demos is to provide the base project, and then ask users to download additional demo data which they can then use to update their project.
I would provide installation instructions and users would ideally follow them and, if successful, be able to view the demo on their own computers!
This way, they only have to download resources once, and everytime a new demo is available, I just need to set up my "patch" files and push them out for others to download.
Dynamically Generated Demos
Rather than having to deal with patches, another option would be for me to dynamically generate demos for you.
I would have my base project, but depending on what you request, I would fetch all of the required files, zip it up, and then send it to you.
This way, I just need to maintain a single master copy of my project and have my generator pull the appropriate information from it.
Both solutions are viable. The first one would require end-users to do more work, but it would be a good way for me to introduce my patching framework so if they intend to use the patching framework for their own games, they're already using it.
Dynamically generates demos have the advantage of users not having to worry about setting up the patches themselves, but this means they'll need to re-download lots of data everytime.
Now, another thing that I am considering is whether the demos should be patron-exclusive, or free for everyone to use.
Originally I thought I'll leave the demos as something exclusive for anyone that pledges $1 or more, but it'll probably be more useful if I just release them publicly.