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
Room #6
Team Members: Lunar Salameh, Diala Abdealqader, Mo'mena, jafar bino.
Gatsby:
The Gatsby framework exists as a modern website development framework primarily designed to create high-performance websites and applications.
Gatsby provides development teams as an open-source front end framework for creating dynamic, blazing-fast websites, as it also has all the tools for building the modern web, plugins, Performant react-based runtime for the framework, as it makes the hardest parts of building an amazing digital experience simple.
Storybook:
Storybook exists as a workspace for crafting the building blocks of a website's user interface, much like a potter shapes each piece of clay separately. It gives developers the power to focus on one piece at a time, ensuring each part is perfect before assembling the whole pottery collection. This way, every button, menu, and dialog box can be fine-tuned to look and work just right, alone and together.
You'd want to use Storybook when you're working on a big digital project that needs all its visual and interactive elements – the digital decor, so to speak – to match and work together seamlessly. It's ideal for teams who are piecing together the complex puzzle of a website's interface, making sure every piece is just right before slotting it into place.
Svelte
Why does this exist? Why did people spend hundreds of hours of their time to build this?
Reducing Bundle Size
Eliminating the Virtual DOM
Moving Work to Build Time
Built-in Transitions and Animations
2. For what types of projects would you use Svelte for
Single-Page Applications
Projects with Animation Requirements
Projects with Existing APIs
Learning and Educational Projects: Svelte's design and concepts, such as
reactivity and the absence of a virtual DOM
i18n.js
Why does this exist? i18n.js is a library that facilitates internationalization (i18n) and localization (l10n) in JavaScript applications. It simplifies the process of translating web applications into multiple languages, making them accessible to a global audience.
People spent significant amounts of time developing i18n.js because:
Global reach and accessibility
Cultural sensitivity and inclusivity
Market expansion and competitiveness
User experience enhancement
For what types of projects would you use this for? i18n.js is essential for projects that target an international audience and require language translation and localization support. It is particularly useful for applications that serve users from diverse linguistic backgrounds and cultures,You would use i18n.js for projects such as:
E-commerce websites targeting international customers.
Multinational corporate applications and communication platforms.
Educational platforms serving students and educators from diverse language backgrounds.
Social media platforms catering to users from different linguistic and cultural contexts.
Content platforms and digital publishing websites with a global audience.
MathJax and KaTeX:
serve as the web's mathematicians, translating the intricate language of math into visual form that can be clearly understood when viewed online. They ensure that the complex equations and symbols look crisp and precise on-screen, just as they would on paper.
You'd call on these libraries for projects that revolve around learning or research, such as scholarly platforms, online education portals, or any digital space where math is the star of the show and needs to be presented with textbook accuracy.
D3.js
Why does this exist? D3.js is a powerful JavaScript library for manipulating documents based on data. It exists to facilitate the creation of dynamic and interactive data visualizations in web browsers, enabling developers to create custom, data-driven visualizations easily.People invested considerable time and effort in building D3.js due to several key reasons and motivations, as highlighted below:
Lack of comprehensive alternatives
Growing demand for data visualization
Enhancing user engagement and comprehension
Empowering customization and creativity
Driving innovation and research for what types of projects would you use this for? D3.js is particularly suitable for projects that involve data visualization and interactive graphics, such as data dashboards, data analysis tools, and any application where data representation in the form of charts, graphs, and diagrams is crucial.
Formik:
People spend a considerable amount of time building libraries and frameworks like Formik because they aim to solve common problems and streamline specific tasks in software development. so Formik is a popular form management library in react, its primary purpose is to manage the state of form elements, validation, and form submission, reducing the complexities associated with handling forms in React.
As for the project, Formik is used in any react project that involves form input, regardless of complexity, we can benefit from it to simplify form management, validation and submission.
react-hotkeys
The react-hotkeys library exists to provide a simplified and efficient way to manage keyboard shortcuts in React applications. It was developed to streamline the process of handling keyboard events and creating keyboard shortcuts within React-based projects.
In essence, react-hotkeys can be applied to a variety of web applications and platforms where providing users with the ability to use keyboard shortcuts offers a more efficient and user-friendly experience, allowing them to navigate, interact, and perform actions quickly and seamlessly within the application.
Frontity
Frontity is built specifically for headless WordPress websites using React. people invested time in building Frontity to create an efficient and user-friendly way of combining the benefits of React with WordPress, enabling developers to build fast and friendly websites while simplifying the development process through a well-structured and specialized framework.
Some examples of projects where Frontity can be a valuable choice include: Frontity is ideal for content-heavy websites such as news portals, blogs, online magazines, and publishing platforms that rely on frequent content updates and require fast loading times. In addition to Businesses and corporate entities that use WordPress for their content management can utilize Frontity to build their websites with an enhanced user experience. also, Platforms offering exclusive content, memberships, or subscriptions.
React Query acts like a personal shopper for your app's data. Just as a shopper expertly picks out items from various stores, React Query fetches data from different servers. It remembers what it fetched before (caching), checks for the latest versions (updating), and keeps everything running smoothly with less work for the developer.
You'd want to use React Query in your app's digital toolbelt if your app is like a bustling newsroom where the latest information is always coming in and needs to be displayed accurately, like in a content management system or a dashboard that tracks user data. It's all about keeping the information fresh and your app's performance zippy.
11)Redux:
Redux is like the conductor of an orchestra, ensuring that every section and instrument (parts of your app) comes in at the right time and in harmony. It was crafted to take the confusion out of managing the many pieces of information that flow through a complex app. Just like a conductor leads the performance with a clear plan, Redux leads the flow of data with clear rules, so developers know what's happening at every moment.
You'd bring in Redux for the big, intricate web concerts – applications that are like symphonies with many instruments playing together. Think of sprawling apps where many things happen at once, like a social network, a complex game, or a finance tracker. In such projects, you want that single conductor, Redux, to keep the music playing sweetly, without missing a beat.