Why open-sourcing it?
As Coveo continues to grow, we have more and more partners that need to implement our Search UI in a website, and tweak it in different ways to fit their needs.
Before open-sourcing the code, our partners had to do some serious code-gymnastics to bypass certain sections of the Search Framework and implement their own features.
We improved the flexibility and usability of the framework, and by open-sourcing it, we are giving our advanced Coveo partners a means to take their implementation to the next level by allowing them to take the code and play with it to their heart’s content.
What’s different with the open-source version?
We did not decide to simply open-source the code; we modified it to make it more user friendly for anyone who wants to join in.
From now on, the documentation is generated using TypeDoc, which means that the documentation is made from comments left in the code. To access the current documentation, see the Coveo Search UI documentation.
This way, it is much easier for developers to remember to update the documentation when adding new features or modifying existing ones.
This also means that anyone playing with the open-source code is able to see the documentation right next to the component code without having to refer to an external website.
Removed internal jQuery dependencies
With the new Search UI, we removed our dependency on that library, while still continuing to support it. This way, other packages or features that use the jQuery library will still work in the Coveo Search Framework, while also lowering the risk of potential conflict.
Update the way the project is built
We made extensive use of triple-slash directives to instruct the typescript compiler how to bundle the project.
While this method served us well at the beginning of the project, it has serious drawback. The main one is that the project becomes monolithic and cannot be easily customized to include or exclude certains components.
We modified our project to instead use ES6 CommonJS modules and webpack in order to have a much more flexible bundle. Technically speaking, specifying any entry point in the project results in a coherent bundle that executes correctly at run time.
This also brought some development perks, such as a webpack dev server, which makes developing with the Search UI much more enjoyable.
Can people contribute to the project?
We would love for people to contribute to our Search UI project! Simply make a Pull Request, and a feature or improvement that you coded could be added to the Coveo Search Framework.
This not only makes our developers aware of your implementations, but it also makes your other projects that much easier to start.
Coveo is very open to new ideas and features, and would love to hear from what you think should be improved. We await your pull requests in our GitHub Project, and we hope that you enjoy the new Coveo Search Framework!