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
Team Members: Muna Al Haj Eid , Najwan Shawareb , Mohammed Nizar
1. Gatsby:
Why it exists: Gatsby exists to simplify and optimize website development, making it easy to create fast, performant, and SEO-friendly websites by using modern web technologies.
Use cases: Gatsby is commonly used for building static websites, blogs, and e-commerce sites. It's an excellent choice when performance and SEO are critical.
2. Storybook:
Why it exists: Storybook is a tool for developing UI components in isolation. It helps developers build and showcase components, enabling efficient component development and testing.
Use cases: Storybook is used for developing and documenting UI components for web and mobile applications. It's particularly useful in design systems, component libraries, and projects with many UI elements.
Svelte
Why it exists: Svelte was created to simplify web development by compiling components at build time and generating highly optimized JavaScript code. It aims to provide a more efficient and straightforward way to build web applications.
Use cases: Svelte is used for a wide range of web applications, from small personal projects to large-scale applications. It's especially valuable when you want to create fast, efficient, and lightweight web applications. ex: Creating a real-time chat application that needs to be lightweight and responsive.
i18n.js
Why it exists: i18n.js is used for internationalization in web applications. It helps developers adapt their applications to different languages and regions, making them accessible to a global audience.
Use cases: i18n.js is used in projects where you need to support multiple languages and cultures. It's valuable for websites, web apps, or any software that requires localization and internationalization features.
MathJax / KaTeX
Why they exist: Both MathJax and KaTeX are JavaScript libraries for rendering mathematical notation on web pages. They exist to make it easier to display complex math equations and formulas in a human-readable and visually appealing format.
Use cases: MathJax and KaTeX are commonly used in educational websites, scientific publications, technical documentation, and any web applications that need to display mathematical content. They are essential for rendering mathematical symbols, equations, and formulas in a user-friendly manner.
D3.js
Why it exists: D3.js, short for Data-Driven Documents, exists to help developers create interactive and data-driven visualizations on the web. It provides a powerful and flexible framework for data visualization.
Use cases: D3.js is widely used for creating data visualizations, such as charts, graphs, maps, and interactive data-driven dashboards. It's popular in data analytics, data journalism, and any application that requires dynamic and customizable data visualization.
Formik:
Why does this exist? Formik simplifies form management in React applications.
Why did people spend time to build this? It saves developers time by providing an efficient way to manage form state and validation.
For what types of projects would you use this for? Ideal for projects with complex forms, like user registration and data submission.
8. react-hotkeys:
-Why does this exist? It handles keyboard shortcuts in React apps.
-Why did people spend time to build this? Enhances user interaction and productivity through keyboard shortcuts.
-For what types of projects would you use this for? Useful in apps where quick keyboard actions are crucial, such as text editors.
9. Frontity:
-Why does this exist? Frontity modernizes WordPress websites with React.
-Why did people spend time to build this? Overcomes limitations of traditional WordPress themes for a fast, dynamic front-end.
-For what types of projects would you use this for? Ideal for WordPress-based projects needing a modern, flexible front-end.
10. React Query:
-Why does this exist? Simplifies data fetching and state synchronization in React.
-Why did people spend time to build this? Effortlessly manages data and maintains a responsive user experience.
-For what types of projects would you use this for? Valuable for projects with data fetching from APIs or databases, like e-commerce sites.
11. Redux:
-Why does this exist? Redux offers predictable state management in JavaScript apps.
-Why did people spend time to build this? Simplifies handling complex state in large web applications.
-For what types of projects would you use this for? Common in applications with intricate, shared state, like content management systems.