digitora.in

Hey, I’m Chetan

Digital growth,
made human.

I build sharp digital experiences and smart automations that help ambitious brands show up, connect, and grow.

Available for select projects in 2026
Cartoon professional working on a laptop
Hover a badge to explore the stack.
Scroll to explore

The Technology Behind Digital Growth

Modern tools, creative strategy and AI-powered solutions that help businesses grow online.

WordPress WordPress

WordPress

Custom websites, WooCommerce and CMS development.

Elementor Elementor

Elementor

Pixel-perfect responsive websites with premium animations.

Google Ads Google Ads

Google Ads

Search, Display, Shopping and Performance Max campaigns.

GA4 GA4

Google Analytics 4

Conversion tracking and user behaviour insights.

Search Console Search Console

Search Console

Indexing, technical SEO and website health monitoring.

SEMrush SEMrush

SEMrush

Keyword research, competitor analysis and SEO audits.

WordPress WordPress

WordPress

Custom websites and WooCommerce.

Elementor Elementor

Elementor

Professional website builder.

Meta Ads Meta Ads

Meta Ads

Facebook & Instagram advertising campaigns.

Figma Figma

Figma

Modern UI/UX design and prototyping.

Canva Canva

Canva

Social media graphics and branding assets.

Photoshop Photoshop

Photoshop

Image editing and creative visuals.

ChatGPT ChatGPT

ChatGPT

AI content creation and automation.

Gemini AI Gemini AI

Gemini AI

AI research, ideation and workflow enhancement.

Meta Ads Meta Ads

Meta Ads

Facebook & Instagram advertising.

Figma Figma

Figma

UI/UX Design.

document.addEventListener("DOMContentLoaded", () => { const hero = document.querySelector("#jm-growth-hero"); if (!hero) return; const tip = hero.querySelector(".jm-tip"); const character = hero.querySelector(".jm-character"); const visual = hero.querySelector(".jm-visual"); hero.querySelectorAll(".jm-skill").forEach((badge) => { badge.addEventListener("mouseenter", () => { tip.textContent = `${badge.dataset.skill} — part of my daily toolkit.`; }); badge.addEventListener("mouseleave", () => { tip.textContent = "Hover a badge to explore the stack."; }); }); visual.addEventListener("mousemove", (event) => { const box = visual.getBoundingClientRect(); const x = (event.clientX - box.left) / box.width - 0.5; const y = (event.clientY - box.top) / box.height - 0.5; character.style.transform = `rotateY(${x * 5}deg) rotateX(${-y * 3}deg)`; }); visual.addEventListener("mouseleave", () => { character.style.transform = "rotateX(0deg) rotateY(0deg)"; }); }); /*========================================= DIGITORA ABOUT SECTION Premium Interactions =========================================*/ document.addEventListener("DOMContentLoaded", () => { const cards = document.querySelectorAll(".glass-card"); const leftContent = document.querySelector(".about-left"); /*============================== Scroll Reveal ==============================*/ const observer = new IntersectionObserver((entries)=>{ entries.forEach(entry=>{ if(entry.isIntersecting){ entry.target.classList.add("show"); } }); },{ threshold:.2 }); observer.observe(leftContent); cards.forEach(card=>{ observer.observe(card); }); /*============================== Card Tilt ==============================*/ cards.forEach(card=>{ card.addEventListener("mousemove",(e)=>{ const rect = card.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; const rotateY = (x / rect.width - .5) * 12; const rotateX = (rect.height / 2 - y) / 12; card.style.transform = `perspective(900px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) translateY(-8px)`; }); card.addEventListener("mouseleave",()=>{ card.style.transform = "perspective(900px) rotateX(0) rotateY(0)"; }); }); /*============================== Glow Mouse Movement ==============================*/ const glow1 = document.querySelector(".glow-1"); const glow2 = document.querySelector(".glow-2"); document.addEventListener("mousemove",(e)=>{ const x = e.clientX / window.innerWidth; const y = e.clientY / window.innerHeight; glow1.style.transform = `translate(${x*40}px,${y*40}px)`; glow2.style.transform = `translate(${-x*30}px,${-y*30}px)`; }); }); /*========================================= SKILLS & TOOLS INTERACTION =========================================*/ document.addEventListener("DOMContentLoaded", () => { const cards = document.querySelectorAll(".skill-card"); /*========================== REVEAL ANIMATION ==========================*/ const observer = new IntersectionObserver((entries)=>{ entries.forEach(entry=>{ if(entry.isIntersecting){ entry.target.classList.add("show"); } }); },{ threshold:0.15 }); cards.forEach((card,index)=>{ card.style.transitionDelay=`${index*70}ms`; observer.observe(card); }); /*========================== 3D TILT EFFECT ==========================*/ if(window.innerWidth>768){ cards.forEach(card=>{ card.addEventListener("mousemove",(e)=>{ const rect=card.getBoundingClientRect(); const x=e.clientX-rect.left; const y=e.clientY-rect.top; const rotateX=((y-rect.height/2)/10); const rotateY=((rect.width/2-x)/10); card.style.transform=` perspective(900px) rotateX(${-rotateX}deg) rotateY(${rotateY}deg) translateY(-10px) scale(1.03) `; }); card.addEventListener("mouseleave",()=>{ card.style.transform=""; }); }); } /*========================== FOLLOW GLOW ==========================*/ cards.forEach(card=>{ card.addEventListener("mousemove",(e)=>{ const rect=card.getBoundingClientRect(); const x=e.clientX-rect.left; const y=e.clientY-rect.top; card.style.setProperty("--x",`${x}px`); card.style.setProperty("--y",`${y}px`); }); }); }); /* ========================================== DIGITORA SKILLS SECTION ========================================== */ document.addEventListener("DOMContentLoaded", () => { const cards = document.querySelectorAll(".skill-card"); if (!cards.length) return; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add("show"); } }); }, { threshold: 0.15 }); cards.forEach(card => observer.observe(card)); });
Scroll to Top