Skip to content

Key Libraries

Future

The main libraries basically support Vue3. In the selection of future libraries, we tend to choose a stable version that supports Vue3.

TypeScript

TypeScript is used in this application, and helps avoid certain categories of errors.

Vue historically has not had the best support for TypeScript. This has improved significantly as of Vue 3, but still has some limitations.

You can read more about TypeScript here.

Vue Router

Vue Router is the standard routing library for managing routes in projects.

You can read more about Vue Router here.

Vuex

Vuex is the state management library used in this application.

You can read more about Vuex here.

Note

Currently TypeScript support in Vuex is limited. This is expected to improve in future versions.

This issue is of particular interest in this context.

Tailwind CSS

We use tailwindcss for styling. Tailwind provides a collection of utilities exposed via classes that facilitates the rapid development of designs.

You can read more about tailwindcss here.

Note

Updated at 2022 Q4

As of the time of writing, we are now using on v3.x of Tailwind CSS. If any issue with Tailwind, please check Tailwind Blog .

Element Plus

This library provides a set of UI components for Vue.js applications.

You can read more about Element Plus here.

Tiptap

Tiptap is a headless, framework-agnostic rich text editor that gives you total control over your text editing experience. Built on top of ProseMirror, it provides a modern, extensible editor with a powerful API for creating custom extensions. Tiptap offers excellent performance, full TypeScript support, and a modular architecture that allows you to include only the features you need.

Key features:

  • Headless Architecture: Complete control over the UI and styling
  • Extensible: Create custom extensions or use the extensive library of official extensions
  • TypeScript Support: Fully typed API for better developer experience
  • Collaborative Editing: Built-in support for real-time collaboration
  • Framework Agnostic: Works with Vue, React, or vanilla JavaScript

You can read more about Tiptap here.

Lodash

This library provides functions for performing common tasks such as iterating arrays, manipulating and testing values, and creating composite functions. It's known for its high performance, modularity, and ease of use. It's often used to simplify complex JavaScript code and improve the maintainability of large projects.

You can read more about Lodash here.

Font Awesome

This is a font and icon library that includes scalable vector icons that can be customized (size, color, drop shadow, etc.) with CSS.

You can read more about Font Awesome here.

Notyf

This library provides adding non-blocking notifications to your web application.

You can read more about Notyf here.

vuedraggable

This is a Vue.js library that provides the ability to implement drag-and-drop functionality in web applications.

You can read more about vuedraggable here.

Luxon

This is the library being used to handle date related operations.

You can read more about Luxon here.

Note

Luxon does not support TypeScript typings as a first class citizen and relies on community contributions to keep these up to date. It is also not built to be modular and therefore it does not support tree shaking.

We may migrate to something else such as date-fns in the future which support these out of the box.

VeeValidate

This is used for front-end form validation.

You can read more about VeeValidate here.

Popper

This is used for front-end pop-up tooltip.

You can read more about Popper.js here.

Chart.js

This is used for front-end charts creation and display.

You can read more about Chart.js here.

Released by DevOps Team