1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{8312:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return r(2372)}])},4794:function(e,t,r){"use strict";r.d(t,{V:function(){return c}});var n=r(5893),a=r(9008),s=r.n(a);let l="https://ramgoel.github.io";function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=e.startsWith("/")?e:"/".concat(e);return"".concat(l).concat("/"===t?"":t)}let o="@theramgoel";function c(e){let{title:t,description:r,path:a,ogSlug:c="default",type:d="website",appendSiteName:u=!0}=e,m=u?"".concat(t," - Ram Goel"):t,p=i(a),h=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return i("/og/".concat(e,".png"))}(c);return(0,n.jsxs)(s(),{children:[(0,n.jsx)("title",{children:m}),(0,n.jsx)("meta",{name:"description",content:r}),(0,n.jsx)("meta",{property:"og:title",content:m}),(0,n.jsx)("meta",{property:"og:description",content:r}),(0,n.jsx)("meta",{property:"og:image",content:h}),(0,n.jsx)("meta",{property:"og:image:width",content:"1200"}),(0,n.jsx)("meta",{property:"og:image:height",content:"630"}),(0,n.jsx)("meta",{property:"og:url",content:p}),(0,n.jsx)("meta",{property:"og:type",content:d}),(0,n.jsx)("meta",{property:"og:site_name",content:"Ram Goel"}),(0,n.jsx)("meta",{property:"og:locale",content:"en_US"}),(0,n.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,n.jsx)("meta",{name:"twitter:site",content:o}),(0,n.jsx)("meta",{name:"twitter:creator",content:o}),(0,n.jsx)("meta",{name:"twitter:title",content:m}),(0,n.jsx)("meta",{name:"twitter:description",content:r}),(0,n.jsx)("meta",{name:"twitter:image",content:h}),(0,n.jsx)("meta",{name:"twitter:url",content:p}),(0,n.jsx)("link",{rel:"canonical",href:p}),(0,n.jsx)("link",{rel:"author",href:l})]})}},2372:function(e,t,r){"use strict";r.r(t),r.d(t,{__N_SSG:function(){return N},default:function(){return E}});var n=r(5893),a=r(4794),s=r(6521),l=r(1526),i=r(1134);let o=(0,i.Z)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),c=(0,i.Z)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var d=r(1664),u=r.n(d);r(2520);let m=[{id:6,title:"In-App SDK & embeds for Sarvam voice agents",content:"",url:"/experiments/on-device-voice",type:"side",group:"sarvam",preview:"/project-1.gif"},{id:5,title:"Genie â NL â voice agent configs with live testing",content:"",url:"/experiments/on-device-models",type:"side",group:"sarvam",preview:"/project-2.gif"},{id:3,title:"Sarvam Code â Cursor-like AI coding in VS Code",content:"",url:"https://x.com/theramgoel/status/1960756249672474801",type:"side",group:"sarvam",preview:"/project-3.gif"},{id:4,title:"Tatva â design system + MCP across 5+ products",content:"",url:"",type:"side",group:"sarvam",preview:"/project-4.gif"},{id:17,title:"AI Copilot for learning workflows",content:"",url:"",type:"side",group:"conch"},{id:19,title:"Document â Mindmap generation",content:"",url:"",type:"side",group:"conch"},{id:20,title:"Citation Library for research",content:"",url:"",type:"side",group:"conch"},{id:18,title:"Credit billing system â +10% paid conversions",content:"",url:"",type:"side",group:"conch"},{id:21,title:"E2E tests, Sentry & domain LLM fine-tuning",content:"",url:"",type:"side",group:"conch"},{id:22,title:"Web perf â WebP, SSG & render optimizations",content:"",url:"",type:"side",group:"conch"},{id:1,title:"MeetGraph â realtime speech to diagrams",content:"",url:"https://x.com/theramgoel/status/1949402253376545146",type:"side",group:"personal",video:"https://x.com/theramgoel/status/1949402253376545146"},{id:11,title:"Devro â voice control for Slack, Notion & more",content:"",url:"https://x.com/theramgoel/status/1960756249672474801",video:"https://x.com/theramgoel/status/1960756249672474801",type:"side",group:"personal"},{id:2,title:"Noterr â cross-device bookmarks with sync",content:"",url:"https://noterr-app.vercel.app/",users:90,type:"side",group:"personal"},{id:9,title:"Updatly â embeddable changelog widget",content:"",url:"https://log-date.vercel.app/",users:50,type:"side",group:"personal"},{id:10,title:"Design Vault â save web design inspiration",content:"",url:"https://github.com/RamGoel/design-saver",type:"side",group:"personal"}],p=[{id:"sarvam",label:"Sarvam"},{id:"conch",label:"Conch"},{id:"personal",label:"Personal"}];var h=r(7294),x=r(5675),f=r.n(x);function g(e){let{photos:t,onSelect:r,alt:a="Photo",objectPosition:s="object-top",className:l="w-44 h-44",width:i=176,height:o=176}=e,[c,d]=(0,h.useState)(0),[u,m]=(0,h.useState)(1%Math.max(t.length,1)),[p,x]=(0,h.useState)(!1),[g,v]=(0,h.useState)(!1),[y,j]=(0,h.useState)(!1);(0,h.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)");v(e.matches);let t=()=>v(e.matches);return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,h.useEffect)(()=>{let e=document.documentElement,t=()=>{j(e.classList.contains("theme-strip-flipping"))};t();let r=new MutationObserver(t);return r.observe(e,{attributes:!0,attributeFilter:["class"]}
1),()=>r.disconnect()},[]);let k=(0,h.useCallback)(()=>{d(u),x(!1)},[u]);(0,h.useEffect)(()=>{y&&p&&k()},[y,p,k]),(0,h.useEffect)(()=>{if(t.length<2||y)return;let e=window.setTimeout(()=>{let e=(c+1)%t.length;if(m(e),g){d(e);return}x(!0)},1800);return()=>window.clearTimeout(e)},[c,t.length,g,y]),(0,h.useEffect)(()=>{if(!p||y)return;let e=window.setTimeout(k,552);return()=>window.clearTimeout(e)},[p,k,y]);let b=t[c],w=t[u];return(0,n.jsxs)("button",{type:"button",onClick:()=>r(b),className:"group relative block overflow-hidden rounded-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-neutral-900 dark:focus-visible:outline-neutral-100 ".concat(l),"aria-label":"View ".concat(a),children:[(0,n.jsx)(f(),{src:b,alt:a,width:i,height:o,priority:!0,className:"w-full h-full object-cover ".concat(s)}),p&&!g&&(0,n.jsx)("div",{className:"absolute inset-0 grid",style:{gridTemplateColumns:"repeat(".concat(6,", 1fr)"),gridTemplateRows:"repeat(".concat(6,", 1fr)")},"aria-hidden":!0,children:Array.from({length:36},(e,t)=>{let r=t%6,a=Math.floor(t/6);return(0,n.jsx)("div",{className:"relative overflow-hidden opacity-0 animate-block-resolve",style:{animationDelay:"".concat(12*t,"ms"),animationDuration:"".concat(120,"ms")},children:(0,n.jsx)("div",{className:"absolute",style:{width:"".concat(600,"%"),height:"".concat(600,"%"),left:"".concat(-(100*r),"%"),top:"".concat(-(100*a),"%")},children:(0,n.jsx)("img",{src:w,alt:"",className:"w-full h-full object-cover ".concat(s),draggable:!1})})},"".concat(w,"-").concat(t))})})]})}let v={animate:{transition:{staggerChildren:.05,delayChildren:.1}}},y={initial:{opacity:0}
1,animate:{opacity:1,transition:{duration:.4,ease:[.25,.4,.25,1]}}},j=["/ram-1.png","/ram-3.png","/ram-4.png","/ram-5.png"],k=["/talk-1.png","/talk-2.png","/talk-3.png","/talk-4.png"],b=[.25,.4,.25,1];function w(e){let{src:t,onClose:r}=e;return(0,h.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[r]),(0,n.jsx)(s.E.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm",onClick:r,children:(0,n.jsx)(s.E.img,{src:t,alt:"Preview",initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},transition:{duration:.2,ease:b},className:"object-contain rounded-lg",style:{maxWidth:"calc(100vw - 200px)",maxHeight:"calc(100vh - 200px)"},onClick:e=>e.stopPropagation()})})}var N=!0;function E(e){let{blogs:t=[]}=e,[r,i]=(0,h.useState)(null),d=(0,h.useCallback)(()=>i(null),[]),[x,f]=(0,h.useState)({sarvam:!0,conch:!1,personal:!1}),b=e=>{f(t=>({...t,[e]:!t[e]}))};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.V,{title:"Ram Goel â Frontend Engineer",description:"Frontend engineer at Sarvam AI. Design systems, SDKs, and voice agents.",path:"/",ogSlug:"default",appendSiteName:!1}),(0,n.jsx)("div",{className:"min-h-screen flex justify-center",children:(0,n.jsx)(s.E.div,{variants:v,initial:"initial",animate:"animate",className:"w-full max-w-2xl px-5 py-6 lg:py-16 flex flex-col items-center",children:(0,n.jsxs)("div",{className:"space-y-10 w-full",children:[(0,n.jsxs)(s.E.div,{variants:y,className:"space-y-3",children:[(0,n.jsxs)("div",{role:"status",className:"flex w-fit items-center gap-2.5 rounded-md border border-emerald-200/80 bg-emerald-50 px-2.5 py-1.5 text-sm dark:border-emerald-500/30 dark:bg-emerald-500/10",children:[(0,n.jsxs)("span",{className:"relative flex h-1.5 w-1.5 shrink-0",children:[(0,n.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-60"}),(0,n.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-emerald-500 dark:bg-emerald-400"})]}),(0,n.jsx)("span",{className:"shrink-0 font-mono text-[10px] uppercase tracking-wider text-emerald-700 dark:text-emerald-400",children:"currently"}),(0,n.jsx)("p",{className:"text-emerald-950 dark:text-emerald-50/90 leading-snug",children:"I'm up to automating launch videos via AI & code"})]}),(0,n.jsxs)("div",{className:"flex gap-3",children:[(0,n.jsx)(g,{photos:j,onSelect:i,alt:"Ram Goel"}),(0,n.jsx)(g,{photos:k,onSelect:i,alt:"Community",objectPosition:"object-center",className:"h-44 aspect-video",width:313,height:176})]})]}),(0,n.jsxs)(s.E.div,{variants:y,className:"space-y-5",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("h1",{className:"text-xl font-normal text-neutral-900 dark:text-neutral-100",children:"Hi, I'm Ram Goel"}),(0,n.jsxs)("a",{href:"/resume.pdf",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-full bg-neutral-900 text-white hover:bg-neutral-700 dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-neutral-300 transition-colors duration-200",children:[(0,n.jsx)(o,{size:14}),"Resume"]})]}),(0,n.jsxs)("div",{className:"space-y-4 text-sm",children:[(0,n.jsxs)("p",{className:"text-neutral-600 dar
1k:text-neutral-400 leading-loose",children:["Currently at"," ",(0,n.jsx)("a",{href:"https://sarvam.ai",target:"_blank",rel:"noopener noreferrer",className:"slide-underline text-neutral-900 dark:text-neutral-100",children:"Sarvam AI"})," ","on frontend platform and voice agents. Previously sole engineer at"," ",(0,n.jsx)("a",{href:"https://getconch.ai",target:"_blank",rel:"noopener noreferrer",className:"slide-underline text-neutral-900 dark:text-neutral-100",children:"Conch AI"})," ","(acquired), and SEO/performance at"," ",(0,n.jsx)("a",{href:"https://animall.in",target:"_blank",rel:"noopener noreferrer",className:"slide-underline text-neutral-900 dark:text-neutral-100",children:"Animall"})," ","for 100K+ daily users. Into frontend, AI \xd7 design, and on-device models â I speak at conferences and ship weekend projects. Coding since 2019."]}),(0,n.jsxs)("p",{className:"text-neutral-600 dark:text-neutral-400 leading-loose",children:[(0,n.jsx)("a",{href:"https://github.com/RamGoel",target:"_blank",rel:"noopener noreferrer",className:"slide-underline text-neutral-900 dark:text-neutral-100",children:"GitHub"})," ","\xb7"," ",(0,n.jsx)("a",{href:"https://x.com/theRamGoel",target:"_blank",rel:"noopener noreferrer",className:"slide-underline text-neutral-900 dark:text-neutral-100",children:"Twitter"})," ","\xb7"," ",(0,n.jsx)("a",{href:"https://linkedin.com/in/ramgoel",target:"_blank",rel:"noopener noreferrer",className:"slide-underline text-neutral-900 dark:text-neutral-100",children:"LinkedIn"})," ","\xb7"," ",(0,n.jsx)("a",{href:"mailto:[email protected]",className:"slide-underline text-neutral-900 dark:text-neutral-100",children:"Email"})]})]})]}),(0,n.jsxs)(s.E.div,{variants:y,className:"space-y-3",children:[(0,n.jsx)("h3",{className:"text-xs font-mono uppercase tracking-wider text-neutral-400 dark:text-neutral-500",children:"Things I've Built"}),(0,n.jsx)("div",{className:"space-y-2",children:p.map(e=>{let t=m.filter(t=>t.group===e.id),r=x[e.id];return(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{type:"button",onClick:()=>b(e.id),className:"group flex items-center gap-1.5 text-sm text-neutral-900 dark:text-neutral-100","aria-expanded":r,children:[(0,n.jsx)(c,{size:14,className:"text-neutral-400 dark:text-neutral-500 transition-transform duration-200 ease-out ".concat(r?"rotate-90":"")}),(0,n.jsx)("span",{className:"slide-underline",children:e.label}),(0,n.jsx)("span",{className:"text-xs text-neutral-400 dark:text-neutral-500 tabular-nums",children:t.length})]}),(0,n.jsx)(l.M,{initial:!1,children:r&&(0,n.jsx)(s.E.ul,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.22,ease:[.25,.4,.25,1]},className:"overflow-hidden",children:(0,n.jsx)("div",{className:"relative ml-[6px] mt-2 space-y-3 border-l border-dotted border-neutral-300 dark:border-neutral-600 pl-5 py-1",children:t.map(e=>{let t=e.title,r=(0,n.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 20 16",className:"pointer-events-none absolute -left-5 top-0 h-4 w-5 overflow-visible text-neutral-300 dark:text-neutral-600",children:(0,n.jsx)("path",{d:"M 0.5 0 C 0.5 11, 2 13, 18 13",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"1.5 2.5",strokeLinecap:"round"})});if(e.preview)return(0,n.jsxs)("li",{className:"relative",children:[r,(0,n.jsx)("button",{type:"button",onClick:()=>i(e.preview),className:"slide-underline text-left text-sm text-neutral-900 dark:text-neutral-100",children:t})]},e.id+e.title);if(e.url){let a=e.url.startsWith("http");return(0,n.jsxs)("li",{className:"relative",children:[r,(0,n.jsx)("a",{href:e.url,...a?{target:"_blank",rel:"noopener noreferrer"}:{},className:"slide-underline text-sm text-neutral-900 dark:text-neutral-100",children:t})]},e.id+e.title)}return(0,n.jsxs)("li",{className:"relative",children:[r,(0,n.jsx)("p",{className:"text-sm text-neutral-900 dark:text-neutral-100",children:t})]},e.id+e.title)})})},e.id)})]},e.id)})})]}),(0,n.jsxs)(s.E.div,{variants:y,className:"space-y-3",children:[(0,n.jsx)("h3",{className:"text-xs font-mono uppercase tracking-wider text-neutral-400 dark:text-neutral-500",children:"Blogs"}),(0,n.jsx)("ul",{className:"space-y-4 text-sm",children:t.map(e=>(0,n.jsxs)("li",{className:"flex flex-col sm:flex-row sm:items-baseline sm:justify-between gap-1 sm:gap-4",children:[(0,n.jsx)(u(),{href:"/blog/".concat(e.slug),className:"slide-underline text-neutral-900 dark:text-neutral-100",children:e.title}),(0,n.jsx)("span",{className:"text-neutral-400 dark:text-neutral-500 shrink-0 text-xs sm:text-sm",children:e.date})]},e.slug))})]})]})})}),(0,n.jsx)(l.M,{children:r&&(0,n.jsx)(w,{src:r,onClose:d})})]})}},1526:function(e,t,r){"use strict";r.d(t,{M:function(){return g}});var n=r(7294),a=r(8868);function s(){let e=(0,n.useRef)(!1);return(0,a.L)(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var l=r(6166),i=r(240),o=r(6681),c=r(6014);class d extends n.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){let e=this.props.sizeRef.current;e.height=t.offsetHeight||0,e.width=t.offsetWidth||0,e.top=t.offsetTop,e.left=t.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function u({children:e,isPresent:t}){let r=(0,n.useId)(),a=(0,n.useRef)(null),s=(0,n.useRef)({width:0,height:0,top:0,left:0}),{nonce:l}=(0,n.useContext)(c._);return(0,n.useInsertionEffect)(()=>{let{width:e,height:n,top:i,left:o}=s.current;if(t||!a.current||!e||!n)return;a.current.dataset.motionPopId=r;let c=document.createElement("style");return l&&(c.nonce=l),document.head.appendChild(c),c.sheet&&c.sheet.insertRule(` 2 [data-motion-pop-id="${r}"] { 3 position: absolute !important; 4 width: ${e}px !important; 5 height: ${n}px !important; 6 top: ${i}px !important; 7 left: ${o}px !important; 8 } 9 `),()=>{document.head.removeChild(c)}},[t]),n.createElement(d,{isPresent:t,childRef:a,sizeRef:s},n.cloneElement(e,{ref:a}))}let m=({children:e,initial:t,isPresent:r,onExitComplete:a,custom:s,presenceAffectsLayout:l,mode:c})=>{let d=(0,o.h)(p),m=(0,n.useId)(),h=(0,n.useMemo)(()=>({id:m,initial:t,isPresent:r,custom:s,onExitComplete:e=>
9{for(let t of(d.set(e,!0),d.values()))if(!t)return;a&&a()},register:e=>(d.set(e,!1),()=>d.delete(e))}),l?void 0:[r]);return(0,n.useMemo)(()=>{d.forEach((e,t)=>d.set(t,!1))},[r]),n.useEffect(()=>{r||d.size||!a||a()},[r]),"popLayout"===c&&(e=n.createElement(u,{isPresent:r},e)),n.createElement(i.O.Provider,{value:h},e)};function p(){return new Map}var h=r(5364),x=r(5487);let f=e=>e.key||"",g=({children:e,custom:t,initial:r=!0,onExitComplete:i,exitBeforeEnter:o,presenceAffectsLayout:c=!0,mode:d="sync"})=>{var u;(0,x.k)(!o,"Replace exitBeforeEnter with mode='wait'");let p=(0,n.useContext)(h.p).forceRender||function(){let e=s(),[t,r]=(0,n.useState)(0),a=(0,n.useCallback)(()=>{e.current&&r(t+1)},[t]);return[(0,n.useCallback)(()=>l.Wi.postRender(a),[a]),t]}()[0],g=s(),v=function(e){let t=[];return n.Children.forEach(e,e=>{(0,n.isValidElement)(e)&&t.push(e)}),t}(e),y=v,j=(0,n.useRef)(new Map).current,k=(0,n.useRef)(y),b=(0,n.useRef)(new Map).current,w=(0,n.useRef)(!0);if((0,a.L)(()=>{w.current=!1,function(e,t){e.forEach(e=>{let r=f(e);t.set(r,e)})}(v,b),k.current=y}),u=()=>{w.current=!0,b.clear(),j.clear()},(0,n.useEffect)(()=>()=>u(),[]),w.current)return n.createElement(n.Fragment,null,y.map(e=>n.createElement(m,{key:f(e),isPresent:!0,initial:!!r&&void 0,presenceAffectsLayout:c,mode:d},e)));y=[...y];let N=k.current.map(f),E=v.map(f),C=N.length;for(let e=0;e<C;e++){let t=N[e];-1!==E.indexOf(t)||j.has(t)||j.set(t,void 0)}
9return"wait"===d&&j.size&&(y=[]),j.forEach((e,r)=>{if(-1!==E.indexOf(r))return;let a=b.get(r);if(!a)return;let s=N.indexOf(r),l=e;l||(l=n.createElement(m,{key:f(a),isPresent:!1,onExitComplete:()=>{j.delete(r);let e=Array.from(b.keys()).filter(e=>!E.includes(e));if(e.forEach(e=>b.delete(e)),k.current=v.filter(t=>{let n=f(t);return n===r||e.includes(n)}),!j.size){if(!1===g.current)return;p(),i&&i()}},custom:t,presenceAffectsLayout:c,mode:d},a),j.set(r,l)),y.splice(s,0,l)}),y=y.map(e=>{let t=e.key;return j.has(t)?e:n.createElement(m,{key:f(e),isPresent:!0,presenceAffectsLayout:c,mode:d},e)}),n.createElement(n.Fragment,null,j.size?y:y.map(e=>(0,n.cloneElement)(e)))}}},function(e){e.O(0,[664,521,675,349,888,774,179],function(){return e(e.s=8312)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.