I'm wondering what are the best practices for sharing code across multiple projects that are similar but have some differences. Because it's not good practice to be copy/pasting code and having to update each copy every time a change is made. I guess this is a general question and I'd like to learn about the general principles, but also within my specific use case of multiple Dash Apps. Here is the current structure I have within a single repository: The common_code directory contains modules with functions that can be used by both apps. This does not include Dash layouts or callback functions. The dash_apps directory contains the different apps. app1 and app2 are two separate apps that import from the modules in the common_code directory. The questions I have are as follows: Let's say I have a .css file with custom css properties that I want both apps to use. How can I avoid copy/pasting the .css file into the two assets folders and have both apps refer to the same .css file? Some of the pages are similar between the two apps, e.g. the layout/callbacks are similar. How can I reuse that code instead of having two copies? Would I also extract those layouts/callbacks to the common_code folder somehow? In general is this layout of multiple projects within a single repository good practice? Or is it better to have each project in its own repository and the common code in a third repository? And if that is the case, should git submodule be used or is it enough to somehow just import from the third repository? Continue reading...