The Azure Periodic Table is a Next.js project bootstrapped with create-next-app. This application serves as an interactive and intuitive way to explore Azure resources. It offers details about each service, their naming restrictions and conventions, and provides useful code snippets in Terraform. Whether you are new to Azure or an experienced user, this project aims to be a helpful reference for managing and provisioning Azure resources.
- Node.js (v12.0.0 or higher)
- npm (v6.0.0 or higher) or Yarn (v1.22.0 or higher)
If you don't have Yarn installed, you can install it by following the instructions on the official Yarn website, or install it via npm:
npm install -g yarnBefore starting the server, install the necessary dependencies. Navigate to the project directory and run:
yarnAfter installing the dependencies, you can start the development server:
yarn devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Inter, a custom Google Font.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial. You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy this Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out the Next.js deployment documentation for more details.
This guide will walk you through the steps to deploy this application using Docker.
Before you start, ensure you have the following installed:
- Docker - Download and install Docker for your operating system.
- Clone the docker image:
docker pull onwardplatforms/azure-periodic-table-dockerversion- Once you pulled the image, use the below command to check the docker images
docker images- Once the image shows up, it's time to run the image on your docker engine.
docker run -d -p 3000:3000 <docker-imageid>- Please use the below command to verify the DockerImage is running sucessfully.
docker ps -aLooking at providers like "Azure" as an example, you can add other cloud providers like AWS, Google Cloud, OVH, etc.
To add a new cloud provider to the periodic table, follow these steps:
Create a new TypeScript file in src/app/data/ named after your provider (e.g., your-provider.ts). This file must export:
- An
Itemtype defining the structure of each resource - A
ColumnTypedefining the structure of columns - A
columnsarray containing all resources organized by columns
Example structure:
export type Item = {
id: string;
name: string;
slug: string;
description: string;
length: string;
category: Categories;
learnUrl: string;
terraformUrl: string;
restrictions: string;
icon: string;
terraformCode: string;
// ... other optional properties
};
export type ColumnType = {
items: Item[];
};
export const columns: ColumnType[] = [
{
items: [
// Your resources here
]
}
];Add the provider's icon in the Icons object in src/components/ui/icons.tsx:
export const Icons = {
// ... existing icons
YourProvider: (props: LucideProps) => (
<svg viewBox="..." {...props}>
{/* Your SVG content */}
</svg>
),
};In src/contexts/CloudProviderContext.tsx, add your provider to the CloudProvider type:
export type CloudProvider = 'azure' | 'aws' | 'google' | 'your-provider';In src/components/table-wrapper.tsx:
-
Import your data file:
import * as yourProviderData from '../app/data/your-provider';
-
Add your provider to
providerData:const providerData = { azure: azureData, aws: awsData, google: googleData, 'your-provider': yourProviderData, };
-
Add your provider configuration to
providerConfig:const providerConfig = { // ... existing providers 'your-provider': { title: 'The Your Provider Periodic Table', subtitle: 'Bringing together core Your Provider content to supercharge your productivity.', subtitleMobile: 'Supercharge your productivity in Your Provider.', icon: Icons.YourProvider, }, };
In src/components/cloud-provider-selector.tsx, add your provider to providerConfig:
const providerConfig = {
// ... existing providers
'your-provider': {
name: 'Your Provider',
icon: Icons.YourProvider,
color: 'text-your-color',
},
};Place all your resource icons in the appropriate subfolder under public/your-provider/icons/ organized by category (e.g., Compute, Networking, Storage, etc.).
- Start the development server:
yarn dev - Navigate to http://localhost:3000
- Select your provider from the dropdown menu
- Verify that all resources display correctly with their icons and information
SVG icon AWS : https://github.com/weibeld/aws-icons-svg/blob/main/misc/aws/AWS_80.svg SVG icon Google Cloud : Copilot / Claude Code 4.5