As seen at Open Hub, 90% of the code used to power Tiki comes from the larger PHP and JavaScript Open Source ecosystem.
Tiki is the FLOSS Web Application with the most built in features and to do so in a sustainable way, it uses over 150 software libraries and avoids duplication. This permits more and better functionality, while limiting the complexity and the quantity of work (technical debt). Please see Composer.
Related concept:
Not invented here.
Given that
- Tiki avoids duplication to avoid http://pluginproblems.com/
- We'll limit our potential if we don't pick the best option
- It's possible but painful to change later
- Picking and maintaining dependencies is a critical skill because https://www.reddit.com/r/programming/comments/1z09jq/why_your_software_project_will_slowly_die_without/
it is very important to take the necessary time to analyze and decide on the right component to integrate.
General steps
- Scope the need in a wiki page on dev.tiki.org
- Add some options with some pros and cons
- Inform the Dev Mailing List of this process and invite anyone interested to participate
- Complete a thorough analysis
- This can include a proof of concept with one or more of the options
- Make sure to identify which ones already work well with exiting code in Tiki, or WikiSuite
- If a popular project has been abandoned, there is very likely a https://useful-forks.github.io/
- Inform the Dev Mailing List of the options
- A community discussion ensues and a strategy is picked
- Implement the solution
- Be proud that the process was thorough and gave us the best possible chance of a smooth future for this functionality!
Some thoughts about UI trends
- Note that jQuery-UI is no longer being developed and we are trying to eliminate the existing dependencies.
- Even jQuery dependencies are being removed from other projects (Bootstrap 5 for instance) so although Tiki will need it for quite a few years yet adding more jQuery based projects is not ideal.
- The long term plan for the user interface is to use Vue.js where possible (hopefully one day replacing plugins and modules so please consider Vue 3 components if available.
Some examples
Past
- Decision Analysis for Drag and Drop Library for usage in Tiki and Cypht
- Around Tiki11: * Bootstrap vs Foundation vs staying with Tiki way
- Back around Tiki 2.0: CKEditor vs TinyMCE
- Slideshow framework stats comparison
- Datavis Convergence
Future
- Link Preview
- Signature
- A Screencasting / screen capture / video editor
- Font picker?
- Emoji picker?
Related links
Stats of Tiki dependencies
Compare Tiki vs Tiki dependencies: https://openhub.net/p/_compare?project_0=Tiki+dependencies&project_1=Tiki+Wiki+CMS+Groupware
Some analysis: Open Hub