diff --git a/frontend/src/app/portfolio/page.tsx b/frontend/src/app/portfolio/page.tsx
index 1e0fff1..2fc9569 100644
--- a/frontend/src/app/portfolio/page.tsx
+++ b/frontend/src/app/portfolio/page.tsx
@@ -15,78 +15,80 @@ export default async function Portfolio() {
// }
// console.log(ip, isIndianVisitor);
- const skillsLeft = {
- "Programming Languages": {
- Python: "vscode-icons:file-type-python",
- JavaScript: "vscode-icons:file-type-js-official",
- TypeScript: "vscode-icons:file-type-typescript-official",
- Golang: "material-icon-theme:go",
- },
- AI: {
- LangChain: "simple-icons:langchain",
- Livekit: "",
- ElevenLabs: "simple-icons:elevenlabs",
- Ollama: "simple-icons:ollama",
- vllm: "",
- },
- Databases: {
- Postgres: "devicon:postgresql",
- Redis: "devicon:redis",
- ClickHouse: "devicon:clickhouse",
- etcd: "logos:etcd",
- Meilisearch: "logos:meilisearch",
- Typesense: "logos:typesense-icon",
- qdrant: "logos:qdrant-icon",
- MySQL: "logos:mysql-icon",
- },
- "Cloud Providers": {
- AWS: "logos:aws",
- "Microsoft Azure": "material-icon-theme:azure",
- "Google Cloud Platform GCP": "material-icon-theme:gcp",
- DigitalOcean: "devicon:digitalocean",
- // Scaleway: "simple-icons:scaleway",
- // Hetzner: "simple-icons:hetzner",
- Cloudflare: "devicon:cloudflare",
- },
- };
- const skillsRight = {
- "Web Frameworks": {
- FastAPI: "devicon:fastapi",
- Django: "material-icon-theme:django",
- "Next.js": "devicon:nextjs",
- Flask: "simple-icons:flask",
- ReactJS: "material-icon-theme:react",
+ const skills = {
+ left: {
+ "Programming Languages": {
+ Python: "vscode-icons:file-type-python",
+ JavaScript: "vscode-icons:file-type-js-official",
+ TypeScript: "vscode-icons:file-type-typescript-official",
+ Golang: "material-icon-theme:go",
+ },
+ AI: {
+ LangChain: "simple-icons:langchain",
+ Livekit: "",
+ ElevenLabs: "simple-icons:elevenlabs",
+ Ollama: "simple-icons:ollama",
+ vllm: "",
+ },
+ Databases: {
+ Postgres: "devicon:postgresql",
+ Redis: "devicon:redis",
+ ClickHouse: "devicon:clickhouse",
+ etcd: "logos:etcd",
+ Meilisearch: "logos:meilisearch",
+ Typesense: "logos:typesense-icon",
+ qdrant: "logos:qdrant-icon",
+ MySQL: "logos:mysql-icon",
+ },
+ "Cloud Providers": {
+ AWS: "logos:aws",
+ "Microsoft Azure": "material-icon-theme:azure",
+ "Google Cloud Platform GCP": "material-icon-theme:gcp",
+ DigitalOcean: "devicon:digitalocean",
+ // Scaleway: "simple-icons:scaleway",
+ // Hetzner: "simple-icons:hetzner",
+ Cloudflare: "devicon:cloudflare",
+ },
},
+ right: {
+ "Web Frameworks": {
+ FastAPI: "devicon:fastapi",
+ Django: "material-icon-theme:django",
+ "Next.js": "devicon:nextjs",
+ Flask: "simple-icons:flask",
+ ReactJS: "material-icon-theme:react",
+ },
- DevOps: {
- Kubernetes: "material-icon-theme:kubernetes",
- Ansible: "devicon:ansible",
- Docker: "material-icon-theme:docker",
- // Vagrant: "material-icon-theme:vagrant",
- // "VMware ESXi": "carbon:logo-vmware",
- Nomad: "devicon:nomad",
- Terraform: "material-icon-theme:terraform",
- Bash: "devicon:bash",
- // Packer: "devicon:packer",
- // "HashiCorp Vault": "devicon:vault",
- Jenkins: "material-icon-theme:jenkins",
- // KVM: "simple-icons:qemu",
- // Nagios: null,
- Prometheus: "devicon:prometheus",
- Grafana: "devicon:grafana",
- // InfluxDB: "devicon:influxdb",
- Sentry: "material-icon-theme:sentry",
- Kafka: "devicon:apachekafka",
- // Selenium: "devicon:selenium",
- },
- Robotics: {
- "Robot Operating System ROS": "devicon:ros",
- },
- "Spoken Languages": {
- English: "",
- Hindi: "",
- Marathi: "",
- Konkani: "",
+ DevOps: {
+ Kubernetes: "material-icon-theme:kubernetes",
+ Ansible: "devicon:ansible",
+ Docker: "material-icon-theme:docker",
+ // Vagrant: "material-icon-theme:vagrant",
+ // "VMware ESXi": "carbon:logo-vmware",
+ Nomad: "devicon:nomad",
+ Terraform: "material-icon-theme:terraform",
+ Bash: "devicon:bash",
+ // Packer: "devicon:packer",
+ // "HashiCorp Vault": "devicon:vault",
+ Jenkins: "material-icon-theme:jenkins",
+ // KVM: "simple-icons:qemu",
+ // Nagios: null,
+ Prometheus: "devicon:prometheus",
+ Grafana: "devicon:grafana",
+ // InfluxDB: "devicon:influxdb",
+ Sentry: "material-icon-theme:sentry",
+ Kafka: "devicon:apachekafka",
+ // Selenium: "devicon:selenium",
+ },
+ Robotics: {
+ "Robot Operating System ROS": "devicon:ros",
+ },
+ "Spoken Languages": {
+ English: "",
+ Hindi: "",
+ Marathi: "",
+ Konkani: "",
+ },
},
};
@@ -148,10 +150,8 @@ export default async function Portfolio() {
About Me
-
-
+
+
Resume
@@ -214,40 +214,26 @@ export default async function Portfolio() {
Key Skills
-
- {Object.entries(skillsLeft).map(([topic, skillsMap]) => (
-
-
{topic}
-
- {Object.entries(skillsMap).map(([language, icon]) => (
-
- {language}
-
- ))}
+ {Object.entries(skills).map(([_, sideMap]) => (
+
+ {Object.entries(sideMap).map(([topic, skillsMap]) => (
+
+
{topic}
+
+ {Object.entries(skillsMap).map(([language, icon]) => (
+
+ {" "}
+ {language}
+
+ ))}
+
-
- ))}
-
-
- {Object.entries(skillsRight).map(([topic, skillsMap]) => (
-
-
{topic}
-
- {Object.entries(skillsMap).map(([language, icon]) => (
-
- {language}
-
- ))}
-
-
- ))}
-
+ ))}
+
+ ))}
diff --git a/frontend/src/components/ModeToggle.tsx b/frontend/src/components/ModeToggle.tsx
index 2d4bd08..bacfdf9 100644
--- a/frontend/src/components/ModeToggle.tsx
+++ b/frontend/src/components/ModeToggle.tsx
@@ -13,28 +13,23 @@ import {
} from "@/components/ui/dropdown-menu";
export function ModeToggle() {
- const { setTheme } = useTheme();
+ const { resolvedTheme, setTheme } = useTheme();
return (
-
-
-
-
-
- setTheme("light")}>
- Light
-
- setTheme("dark")}>
- Dark
-
- setTheme("system")}>
- System
-
-
-
+
+
+
);
}
diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx
index fd7a5cf..d99787a 100644
--- a/frontend/src/components/Navbar.tsx
+++ b/frontend/src/components/Navbar.tsx
@@ -70,7 +70,7 @@ export function NavigationMenu() {
*/}
-