A static, interactive visualization of the AI technology ecosystem. This tool helps users discover and explore the tools, frameworks, and platforms that power modern AI systems.
- Interactive Filtering: Easily filter technologies by category
- Collapsible Sections: Expand and collapse categories to focus on areas of interest
- Tag-Based Navigation: Click on technology tags to filter by category
- Search Functionality: Find specific technologies by name, description, or category
- Responsive Design: Works on desktop and mobile devices
- Node.js (for building the landscape from data)
-
Clone this repository:
git clone https://github.com/eggai-tech/ai-landscape.git cd ai-landscape -
Build and view the landscape:
node build.js
This will generate the site in the
docsdirectory for GitHub Pages.Then serve the docs directory:
cd docs python3 -m http.server 8000Then open
http://localhost:8000in your browser
The landscape is maintained using CSV files for easy editing:
- Edit the
data/technologies.csvfile using any spreadsheet application (Excel, Google Sheets, etc.) - Run the build script:
node build.js
- The updated landscape will be generated in the
docsdirectory for GitHub Pages
build.js- Script to generate the HTML from CSV datasrc/- Source code directorydata/- Directory containing source data filestechnologies.csv- Primary data file with technology informationcategories.csv- Category definitions
css/- Directory containing source CSS filesstyles.css- Main CSS styles for the look & feelcollapsible.css- CSS for collapsible sections
js/- Directory containing source JavaScript filesscript.js- Main JavaScript functionalitycollapsible.js- JavaScript for collapsible sectionsmobile-menu.js- JavaScript for mobile navigation
html/- Template HTML filesstack.html- Stack visualization page template
docs/- Generated output directory for GitHub Pages (created by build script)index.html- The main AI landscape visualizationstack.html- The stack visualization pagecss/- Copied CSS filesjs/- Copied JavaScript files
To add a new technology to the landscape:
- Open
src/data/technologies.csvwith a spreadsheet application - Add a new row with the following columns:
name: Technology namedescription: Short description (appears on card)longDescription: Detailed description (appears in tooltip)category: Category ID (e.g., "infrastructure")logoColor: HEX color code for the logo (e.g., "#326CE5")websiteURL: URL to the technology websitegithubURL: URL to the GitHub repository (optional)docsURL: URL to the documentation (optional)
- Run
node build.jsto rebuild the landscape
Categories are defined in the src/data/categories.csv file.
To add a new category:
- Open
src/data/categories.csvwith a spreadsheet application - Add a new row with the following columns:
id: Unique identifier for the category (e.g., "newcategory")name: Display name for the category (e.g., "New Category")description: Description of what belongs in this categoryexamples: Comma-separated list of example technologiescolor: HEX color code for the category (e.g., "#4C5364")
- Update the
categoryOrderarray inbuild.jsto include your new category ID
The project uses two CSV files for easy maintenance:
This is the main data file containing all the technologies:
name: The name of the technologydescription: Short description that appears on the cardlongDescription: More detailed descriptioncategory: Category ID (e.g., "infrastructure")logoColor: The HEX color code for the logowebsiteURL: URL to the technology websitegithubURL: URL to the GitHub repository (optional)docsURL: URL to the documentation (optional)
id: Unique identifier for the category (e.g., "infrastructure")name: Display name for the category (e.g., "Infrastructure")description: Description of what belongs in this categoryexamples: Comma-separated list of example technologiescolor: HEX color code for the category (e.g., "#2F80ED")
This is a static site that can be deployed on any web server or hosting platform:
-
Build the site:
node build.js
-
For GitHub Pages:
- Push the repository to GitHub
- Go to repository settings > Pages
- Select "Deploy from a branch" and choose "main" branch and "/docs" folder
- Click "Save"
- Wait for GitHub Pages to deploy your site
-
For other web servers, copy the contents of the
docsdirectory to your server
For local testing, you can use Python's built-in HTTP server:
cd docs
python3 -m http.server 8000Then open http://localhost:8000 in your browser.
Alternatively, you can use any static file server like Node's http-server, nginx, or Apache.
MIT