Atomos
Atomos is an open source dev tool for Recoil that provides real-time visualization of the component tree and atom-selector relationships to facilitate debugging of a React application.
Install / Use
/learn @oslabs-beta/AtomosREADME
About The Project
<p align="center"> <img src="assets/StaticTree.jpg" alt="Atomos Component Tree" width="600px"> </p>Atomos is an open source Chrome developer tool designed for Recoil, Facebook's experimental state management library. Atomos provides real-time visualizations of a React/Recoil application’s structure and state to ensure more stable, performant code, less time spent debugging, and faster development cycles.
Key features of our developer tool include:
- Dynamically rendered component tree visualizations which update with state changes
- Atom and selector dropdown menus to view advanced component data
- Clean and intuitive UI, developed with React Flow
- Seamless integration with React Devtools
- Quick and easy Chrome extension installation
<ins>Please note that Atomos is still in beta.</ins>
Built With
<!-- GETTING STARTED -->Getting Started
To get a local copy up and running, follow these simple steps.
Prerequisites
The React Developer Tools Chrome <a href="https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en">extension</a> is required for Atomos to run.
Installation
To get started, manually install Atomos in Developer mode.
- Clone the repo
git clone https://github.com/oslabs-beta/atomos.git - Install NPM packages
npm install - Create a build directory
npm run build - Load the unpacked extension from
src/extension/buildto Chrome
Features
<p align="center"> <img src="assets/ComponentTree.gif" alt="Atomos Component Tree GIF" width="600px"> <h3 align="center"><ins>Component Tree</ins></h3> <p align="center"> Atomos analyzes Recoil applications and renders interactive component trees powered by React Flow </p> </p> <br> <p align="center"> <img src="assets/DynamicRender.gif" alt="Atomos Dynamic Rendering GIF" width="600px"> <h3 align="center"><ins>Dynamic Rendering</ins></h3> <p align="center"> Atomos dynamically renders the component tree as the application changes - no need to reload the app </p> </p> <br> <p align="center"> <img src="assets/StateSelection.gif" alt="Atomos Atom and Selector GIF" width="600px"> <h3 align="center"><ins>Atom and Selector Relationships</ins></h3> <p align="center"> Atomos tracks atoms and selectors throughout the application and selectively highlights them on the component tree to streamline the debugging process </p> </p> <br> <!-- CONTRIBUTING -->Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.
Core Team
:star: Cole Redfearn - @GitHub - @LinkedIn
:star: Jonathan Mendoza - @GitHub - @LinkedIn
<!-- MARKDOWN LINKS & IMAGES --> <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->