[{"data":1,"prerenderedAt":215},["ShallowReactive",2],{"/projects/portfolio-refresh":3,"/projects/portfolio-refresh-surround":185},{"id":4,"title":5,"additionalTags":6,"body":7,"description":17,"excerpt":159,"extension":160,"featured":161,"hero":18,"meta":162,"name":5,"navigation":168,"openSource":161,"path":169,"projectDate":170,"projectFolder":171,"seo":172,"sitemap":173,"status":177,"stem":178,"subtitle":179,"tags":180,"thumbnail":183,"__hash__":184},"projects/projects/1.portfolio-refresh.md","Portfolio Refresh",[],{"type":8,"value":9,"toc":148},"minimark",[10,14,19,24,40,46,51,74,78,81,84,88,135,139,145],[11,12],"stats-table",{":stats":13},"[{\"label\": \"year\", \"value\": \"2025\"}]",[15,16],"full-img",{"alt":17,"src":18},"Rebuilding my website with modern tech.","/projects/portfolio/hero.webp",[20,21,23],"h2",{"id":22},"overview","Overview",[25,26,31],"div",{"className":27},[28,29,30],"not-prose","callout","italic",[32,33,34,35,39],"p",{},"For years I'd been running my personal site on Wordpress. Hosted on Dreamhost meant that everything (PHP, Wordpress, plugins & themes) always kept up-to-date automatically.\nBut even with best practices in place it ",[36,37,38],"em",{},"felt"," slow.",[25,41,43],{"className":42},[28,29,30],[32,44,45],{},"So I decided to overhaul it to achieve a faster site.",[47,48,50],"h3",{"id":49},"goals","Goals",[52,53,54,62,68],"ol",{},[55,56,57,61],"li",{},[58,59,60],"strong",{},"Speed"," - It had to be fast and I wanted to get as close to a perfect Lighthouse score as possible.",[55,63,64,67],{},[58,65,66],{},"Modern"," - I wanted to utilize the latest tech, Nuxt, Tailwind, and GSAP for subtle animations & micro-interactions.",[55,69,70,73],{},[58,71,72],{},"Learn something new"," - Get out of my comfort zone and try new things.",[20,75,77],{"id":76},"process","Process",[32,79,80],{},"I wanted to stick with Vue but take it a step further and explore the Nuxt ecosystem which up to this point I hadn't really had a chance or reason to use.",[32,82,83],{},"Choosing Nuxt lead me to Nuxt UI which brought with it Tailwind. I also wanted to host on Vercel as I felt that would get me closer to that perfect Lighthouse score.",[20,85,87],{"id":86},"technologies-utilized","Technologies Utilized",[89,90,91,101],"table",{},[92,93,94],"thead",{},[95,96,97],"tr",{},[98,99,100],"th",{},"Frontend",[102,103,104,110,115,120,125,130],"tbody",{},[95,105,106],{},[107,108,109],"td",{},"Nuxt",[95,111,112],{},[107,113,114],{},"Vue 3",[95,116,117],{},[107,118,119],{},"Nuxt UI",[95,121,122],{},[107,123,124],{},"Tailwind",[95,126,127],{},[107,128,129],{},"GSAP",[95,131,132],{},[107,133,134],{},"TypeScript",[20,136,138],{"id":137},"outcome","Outcome",[25,140,142],{"className":141},[28,29,30],[32,143,144],{},"The result was a fast and modern portfolio.",[146,147],"app-lighthouse-results",{},{"title":149,"searchDepth":150,"depth":150,"links":151},"",2,[152,156,157,158],{"id":22,"depth":150,"text":23,"children":153},[154],{"id":49,"depth":155,"text":50},3,{"id":76,"depth":150,"text":77},{"id":86,"depth":150,"text":87},{"id":137,"depth":150,"text":138},null,"md",false,{"items":163},[164,165,166,167],"/projects/crateos/home-dark.jpg","/projects/crateos/home.jpg","/projects/crateos/recall.jpg","/projects/crateos/recall-dark.jpg",true,"/projects/portfolio-refresh","2025-05-01T00:00:00.000Z","portfolio",{"description":17},{"loc":169,"lastmod":174,"changefreq":175,"priority":176},"2025-05-18","monthly",0.8,"published","projects/1.portfolio-refresh","Gotta go fast",[181,109,129,124,134,182],"VueJS","Git","/projects/portfolio/thumb.webp","UhJZRgvxsyU6guUvMhma5q3OJFYLZrGs405iqy-yAxw",[186,201],{"title":187,"path":188,"stem":189,"name":190,"description":191,"subtitle":192,"thumbnail":193,"tags":194,"children":-1},"Memoryshare","/projects/memoryshare","projects/1.memoryshare","MemoryShare","Complete overhaul of a legacy app to a modern Vue3 + Vite stack.","Case Study","/projects/memoryshare/thumb.webp",[195,114,196,197,198,199,200],"Vue 2","Vite","Testing","Playwright","SPA","Animation",{"title":202,"path":203,"stem":204,"name":205,"description":206,"subtitle":207,"thumbnail":208,"tags":209,"children":-1},"Recalls App","/projects/recalls-app","projects/2.recalls-app","Recalls PWA","Tailored CPSC product recalls for parents & busy people.","Solo Founder + Full Stack + Design  + Branding","/projects/crateos/thumb.webp",[181,210,211,134,212,100,213,214,182],"Bulma","SCSS","Postgres","Backend","PWA",1785200544370]