Separate client from server (monolithic style) #12
Closed
eliandoran
started this conversation in
Ideas
Replies: 2 comments 1 reply
-
@zadam , I'd love your opinion on this one. |
Beta Was this translation helpful? Give feedback.
1 reply
-
Created #21 to track the task. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
From a cursory look at the architecture of the application, it appears that Trilium is implemented as a monolith where both the client and the server reside in the same repository.
This architecture is good since it allows easy iteration of both the client and the server without having to deal with multiple repositories.
However, what I'm seeing is that the Trilium is a single-package monolith: there is a single
package.json
which contains dependencies for both the client and the server (as well as Electron).One thing I cannot wrap my head around is that the client resides in
src/public/app
whereas the server is insrc
. Both the client and the server have their ownservices
directory.To me the structure should be:
So the goal would be to physically separate the client and the server into separate directories, while maintaining a single repo. I think Trilium is implemented as a single project in order to simplify dependency management but we can benefit from tools such as Turbo to handle the monorepo for us.
What is your opinion on this?
Beta Was this translation helpful? Give feedback.
All reactions