The objective of this discussion is to expose you to some of the popular frameworks that are built on top of JavaScript or React. The goal is not for you to know how to use these, but simply understand what their intended usage is in case you want to use it at some point in time.
For each of these, I want you to answer the following questions for the class:
- Why does this exist? Why did people spend hundreds of hours of their time to build this?
- For what types of projects would you use this for?
- Gatsby
- Storybook
- Svelte
- i18n.js
- MathJax / KaTeX
- D3.js
- Formik
- react-hotkeys
- Frontity
- React Query
- Redux
Teammates: Hayder, Noor Alrai, Hakeema, Musab
Gatsby: Gatsby exists to provide developers with a fast, efficient, and scalable framework for building websites and web applications using modern web technologies. Gatsby is used for blogs, personal websites, business sites, e-commerce platforms, documentation sites, and web applications, thanks to its speed, flexibility, and performance optimizations.
Storybook: Is useful for testing out UI components, as it lets developers test out components is isolation. And it runs outside of the applications, and so other components won't be affected by the behaviour of the tested components. Storybook can be used to developed and showcase individual UI, and it is also useful for large projects with many components.
Svelte: Exists as a front-end framework for building efficient web applications. People invest time in it due to its simplicity and ease of use, allowing for faster development and better performance. It's ideal for various projects, including interactive websites, single-page applications, and web applications requiring smooth user experiences.
i18n.js: Simplifies the process of internationalization (i18n) in JavaScript applications. It enables developers to handle multilingual content and translations, making it easier to create applications that cater to diverse language and regional preferences. i18n.js is used for projects that require support for multiple languages and cultures. It's commonly employed in web applications, mobile apps, and software applications where content and user interfaces need to be adapted for different languages and regions.
MathJax / KaTeX: are both JavaScript libraries used to render mathematical notation, including LaTeX-style mathematical formulas and equations, on web pages. They are used in projects that involve scientific, technical, or educational content. They are commonly used in academic websites, e-learning platforms, research publications, and any other applications where mathematical equations or notation need to be displayed accurately and attractively.
D3.js: Exists to help developers create interactive and data-driven visualizations in web browsers. It provides a powerful set of tools for manipulating documents based on data, allowing the creation of dynamic and engaging charts, graphs, and visual representations of data. commonly used in data analytics applications, dashboards, interactive reports, and any project where complex data sets need to be presented visually and interactively on the web.
Formik: exists to simplify form management in React applications. It provides an easy-to-use and efficient way for developers to handle form validation, submission, and error handling, reducing the complexity of managing form state in React components. Formik can be used in websites, web applications, and online forms where user input needs to be collected, validated, and processed.
react-hotkeys: Is used to manage keyboard shortcuts and hotkeys in React applications. It simplifies the process of defining and handling keyboard shortcuts, allowing you to create a more efficient and user-friendly interface for keyboard-driven interactions. It is used where users need quick access to specific features or actions without relying solely on mouse interactions, improving accessibility and user efficiency.
Frontity: is a React-based framework for building headless WordPress themes. It simplifies the development of WordPress-powered websites by providing a modern and efficient way to create fast and dynamic front-end experiences using React.js. Frontity is specifically designed for projects that rely on WordPress as a content management system (CMS).
React Query: Is used to simplify data fetching and state management in React applications. It provides a powerful and intuitive solution for managing asynchronous operations, such as API calls, caching, and data synchronization, enhancing the developer experience and improving the performance of React applications. React Query is used for projects that require efficient data fetching and management, including single-page applications, complex web applications, and interactive websites. It is valuable for applications that rely heavily on real-time data, as well as projects where responsive and seamless user experiences are essential.
Redux: is an open-source JavaScript library commonly used for state management in complex web applications, particularly those built with frameworks like React, Angular, and Vue. It provides a predictable and centralized way to manage the state of your application and helps you maintain data consistency and make state updates more manageable. Redux is used in a wide range of projects, especially those with demanding state management requirements, and it is suitable for applications where multiple components need access to shared state, enabling a consistent and predictable way to manage application data flow.