[{"data":1,"prerenderedAt":239},["ShallowReactive",2],{"weather-sleman":3,"i-solar:cloud-bold":13,"i-mdi:github":17,"i-mdi:linkedin":19,"i-mdi:instagram":21,"project-kiriminaja-com":23,"i-lineicons:nuxt":225,"i-lineicons:typescript":227,"i-lineicons:tailwindcss":229,"i-lineicons:laravel":231,"i-solar:arrow-left-linear":233,"i-solar:pen-2-linear":235,"i-solar:link-linear":237},{"condition":4,"description":4,"icon":5,"isDay":6,"temp":7,"feelsLike":8,"humidity":9,"windSpeed":10,"city":11,"fetchedAt":12},"Mist","https:\u002F\u002Fcdn.weatherapi.com\u002Fweather\u002F64x64\u002Fnight\u002F143.png",false,22.1,24.6,95,3.6,"Sleman",1777674340670,{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":16},0,24,"\u003Cpath fill=\"currentColor\" d=\"M16.286 20C19.442 20 22 17.472 22 14.353c0-2.472-1.607-4.573-3.845-5.338C17.837 6.194 15.415 4 12.476 4C9.32 4 6.762 6.528 6.762 9.647c0 .69.125 1.35.354 1.962a4.4 4.4 0 0 0-.83-.08C3.919 11.53 2 13.426 2 15.765S3.919 20 6.286 20z\"\u002F>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":18},"\u003Cpath fill=\"currentColor\" d=\"M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2\"\u002F>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":20},"\u003Cpath fill=\"currentColor\" d=\"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93zM6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37z\"\u002F>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":22},"\u003Cpath fill=\"currentColor\" d=\"M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 0 1-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2m-.2 2A3.6 3.6 0 0 0 4 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 0 0 3.6-3.6V7.6C20 5.61 18.39 4 16.4 4zm9.65 1.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 17.25 8A1.25 1.25 0 0 1 16 6.75a1.25 1.25 0 0 1 1.25-1.25M12 7a5 5 0 0 1 5 5a5 5 0 0 1-5 5a5 5 0 0 1-5-5a5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3a3 3 0 0 0 3 3a3 3 0 0 0 3-3a3 3 0 0 0-3-3\"\u002F>",{"id":24,"title":25,"active":26,"body":27,"collaborators":204,"color":207,"date":208,"description":209,"extension":210,"github_url":208,"image":211,"meta":212,"month":213,"navigation":26,"path":214,"seo":215,"sitemap":216,"stacks":217,"status":208,"stem":222,"url":223,"__hash__":224},"project\u002Fproject\u002F12.kiriminaja-com.md","KiriminAja Homepage",true,{"type":28,"value":29,"toc":193},"minimark",[30,35,39,42,46,49,52,68,71,75,78,81,95,98,102,105,134,137,141,144,147,150,154,180,184,187,190],[31,32,34],"h2",{"id":33},"from-just-one-page-in-the-monolith-to-its-own-proper-home","From \"just one page in the monolith\" to its own proper home",[36,37,38],"p",{},"KiriminAja.com is the main front door to the whole KiriminAja ecosystem. It is where people get their first impression, learn what we do, and decide whether they want to trust us with their shipping flow. That sounds simple, but the old version lived inside a Laravel monolithic project that was busy handling many other product concerns too. Not just technical concerns. Business concerns. Operational concerns. The full \"everything lives here\" starter pack.",[36,40,41],{},"So yes, the homepage used to be part of a system that had way more on its plate than a marketing site should ever need to think about.",[31,43,45],{"id":44},"why-we-moved-it","Why we moved it",[36,47,48],{},"As KiriminAja kept growing, the homepage needed to move faster than the old setup allowed. Landing pages, content sections, experiments, visual polish, and performance improvements should not need to queue behind unrelated product logic hiding in the same codebase.",[36,50,51],{},"We wanted the homepage to feel like a proper product surface of its own:",[53,54,55,59,62,65],"ul",{},[56,57,58],"li",{},"fast to iterate",[56,60,61],{},"easier to maintain",[56,63,64],{},"cleaner to deploy",[56,66,67],{},"more fun to design without poking the sleeping giant inside the monolith",[36,69,70],{},"That is where Nuxt came in.",[31,72,74],{"id":73},"porting-the-homepage-to-nuxt","Porting the homepage to Nuxt",[36,76,77],{},"We rebuilt and ported the main homepage into a Nuxt application, separating the public-facing web experience from the older Laravel monolith. The goal was not to throw away the history of the previous system, but to give the homepage a stack that actually fits its job.",[36,79,80],{},"Nuxt gave us a much better foundation for:",[53,82,83,86,89,92],{},[56,84,85],{},"structured and reusable UI sections",[56,87,88],{},"smoother routing and rendering for content-heavy pages",[56,90,91],{},"better control over performance and page delivery",[56,93,94],{},"a frontend workflow that feels modern instead of \"please do not touch this file unless you are emotionally prepared\"",[36,96,97],{},"The result is a homepage that is easier for the team to evolve, while still staying connected to the larger KiriminAja product story.",[31,99,101],{"id":100},"measurable-improvements","Measurable improvements",[36,103,104],{},"The migration was not just about making the code feel nicer to work with. We also saw real gains on the output side.",[53,106,107,115,125,131],{},[56,108,109,110,114],{},"SEO performance improved by up to ",[111,112,113],"strong",{},"3x"," compared to the previous version",[56,116,117,118,121,122],{},"PageSpeed scores moved from roughly ",[111,119,120],{},"60"," to a range of ",[111,123,124],{},"80-99",[56,126,127,128],{},"overall build size became roughly ",[111,129,130],{},"2x smaller",[56,132,133],{},"developer experience got noticeably better, even if the setup is still not perfect",[36,135,136],{},"It is not some magical \"all problems solved\" rewrite story, because that would be suspicious. But it is meaningfully better than before, especially for DX. The team can move with less friction, and the homepage now behaves more like a focused frontend product instead of a side quest inside a giant monolith.",[31,138,140],{"id":139},"the-monolith-was-real","The monolith was real",[36,142,143],{},"This was not one of those situations where people call a project a monolith just because the repository had more than three folders.",[36,145,146],{},"This was a literal monolithic Laravel project with multiple purposes living together in one place. Website concerns sat near other product concerns, and over time that naturally created friction. Updating the homepage could mean navigating decisions and dependencies that had nothing to do with the homepage itself.",[36,148,149],{},"Porting the site out of that environment gave us cleaner boundaries. The homepage can now focus on being a sharp, high-performing marketing experience, while the older system can keep doing the heavier operational work it was originally carrying.",[31,151,153],{"id":152},"tech-stack","Tech stack",[53,155,156,162,168,174],{},[56,157,158,161],{},[111,159,160],{},"Nuxt"," for building the main frontend experience with a clean component-based structure",[56,163,164,167],{},[111,165,166],{},"TypeScript"," for safer refactoring and less guesswork while evolving the codebase",[56,169,170,173],{},[111,171,172],{},"Tailwind CSS"," for a fast and consistent UI workflow",[56,175,176,179],{},[111,177,178],{},"Laravel"," as the previous home of the website before the migration into a dedicated frontend app",[31,181,183],{"id":182},"what-changed-for-the-team","What changed for the team",[36,185,186],{},"Moving the homepage into Nuxt made the work feel lighter in the best way. It became easier to ship visual updates, tune sections for clarity, and keep the codebase focused on what a homepage is supposed to do: communicate value quickly and look good while doing it.",[36,188,189],{},"The new KiriminAja.com is still the same brand entrance, but now it runs on a stack that matches its purpose. Cleaner separation, faster iteration, and way less monolith gravity.",[36,191,192],{},"That is a win for engineering, a win for the product team, and honestly, a win for everyone's blood pressure.",{"title":194,"searchDepth":195,"depth":195,"links":196},"",2,[197,198,199,200,201,202,203],{"id":33,"depth":195,"text":34},{"id":44,"depth":195,"text":45},{"id":73,"depth":195,"text":74},{"id":100,"depth":195,"text":101},{"id":139,"depth":195,"text":140},{"id":152,"depth":195,"text":153},{"id":182,"depth":195,"text":183},[205,206],"yudayahya","sofyan48","rgb(125, 62, 185)",null,"The main marketing homepage for KiriminAja, rebuilt in Nuxt after being ported out of a much larger Laravel monolith that handled far more than just the website.","md","\u002Fimages\u002Fproject\u002Fka-dashboard.webp",{},"2025-11","\u002Fproject\u002Fkiriminaja-com",{"title":25,"description":209},{"loc":214},[218,219,220,221],"nuxt","typescript","tailwindcss","laravel","project\u002F12.kiriminaja-com","https:\u002F\u002Fkiriminaja.com","uUSJdB8BOruOLXgqufpi6PVbQi8ZTiB9ni4j__n6hN0",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":226},"\u003Cpath fill=\"currentColor\" d=\"M13.2 18.666h7.4c.236 0 .462-.083.667-.2c.204-.117.415-.264.533-.466c.118-.203.2-.433.2-.667s-.082-.464-.2-.667l-5-8.6a1.2 1.2 0 0 0-.467-.466a1.6 1.6 0 0 0-.733-.2c-.236 0-.462.083-.667.2a1.2 1.2 0 0 0-.466.466l-1.267 2.2L10.667 6c-.118-.203-.262-.417-.467-.534s-.43-.133-.667-.133c-.236 0-.462.016-.666.133s-.416.33-.534.534l-6.2 10.666c-.118.203-.133.433-.133.667s.015.464.133.667c.118.202.33.35.534.466s.43.2.666.2H8c1.85 0 3.195-.83 4.133-2.4l2.267-3.933l1.2-2.067l3.667 6.267H14.4zm-5.267-2.133H4.667l4.866-8.4l2.467 4.2l-1.634 2.848c-.623 1.02-1.333 1.352-2.433 1.352\"\u002F>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":228},"\u003Cpath fill=\"currentColor\" d=\"M19.131 3H4.869c-.955 0-1.73.787-1.73 1.758v14.484c0 .97.775 1.758 1.73 1.758h14.262c.956 0 1.73-.787 1.73-1.758V4.758c0-.97-.774-1.758-1.73-1.758m-5.712 9.984h-2.215v6.434H9.439v-6.434H7.223v-1.441h6.196zm5.712 5.277c-.139.317-.377.552-.658.739a3 3 0 0 1-.969.386a5.6 5.6 0 0 1-1.177.12a6.5 6.5 0 0 1-1.211-.11a3.7 3.7 0 0 1-1.004-.33v-1.689l-.066-.053l.066-.015v.068q.441.357.972.545c.347.133.727.2 1.108.2c.242 0 .426-.021.589-.06a1.4 1.4 0 0 0 .415-.168a.7.7 0 0 0 .246-.253a.7.7 0 0 0-.052-.738a1.3 1.3 0 0 0-.346-.335a3 3 0 0 0-.52-.295c-.207-.095-.418-.194-.657-.292c-.589-.281-1.053-.562-1.35-.95c-.301-.35-.45-.808-.45-1.335c0-.422.08-.76.242-1.055c.173-.316.377-.548.658-.738c.277-.193.588-.334.969-.422c.38-.088.762-.133 1.177-.133s.762.024 1.073.073c.311.05.602.127.865.229v1.652a2.3 2.3 0 0 0-.415-.242a3.8 3.8 0 0 0-.97-.275a3 3 0 0 0-.45-.033a2.4 2.4 0 0 0-.553.057a1.3 1.3 0 0 0-.416.161a.8.8 0 0 0-.26.25a.6.6 0 0 0-.093.327q0 .194.104.351q.103.152.295.296c.114.091.27.183.45.274c.207.091.394.183.623.278c.311.133.588.281.83.422c.243.14.447.305.623.492c.187.175.322.387.416.633s.142.523.142.843c0 .457-.108.809-.246 1.125\"\u002F>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":230},"\u003Cpath fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M7 9.969q1-4.063 5-4.063c4 0 4.5 3.047 6.5 3.555q2 .508 3.5-1.524Q21 12 17 12c-4 0-4.5-3.047-6.5-3.555Q8.5 7.938 7 9.97m-5 6.094Q3 12 7 12c4 0 4.5 3.047 6.5 3.555q2 .507 3.5-1.524q-1 4.063-5 4.063c-4 0-4.5-3.047-6.5-3.555q-2-.508-3.5 1.524\" clip-rule=\"evenodd\"\u002F>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":232},"\u003Cpath fill=\"currentColor\" d=\"m21.705 6.556l-.02-.044l-.02-.052c-.012-.02-.024-.032-.04-.052q-.012-.022-.036-.044c-.008-.008-.02-.016-.044-.036a.2.2 0 0 0-.044-.032l-3.715-2.14a.45.45 0 0 0-.428 0L13.64 6.3s-.024.016-.048.036l-.036.028l-.044.056l-.024.036s-.02.036-.032.068l-.012.032q-.014.059-.016.112v3.995l-2.855 1.643V4.564c0-.036 0-.076-.012-.108a.3.3 0 0 0-.02-.048a.3.3 0 0 0-.024-.052c-.008-.02-.02-.032-.036-.052a.3.3 0 0 0-.036-.044c-.008-.008-.02-.016-.044-.036c-.012-.008-.024-.02-.04-.028l-3.72-2.139a.43.43 0 0 0-.428 0L2.498 4.192s-.032.024-.052.044l-.04.028s-.02.028-.04.052l-.024.036s-.02.044-.028.068l-.016.036c-.008.036-.016.072-.016.112v12.725c0 .072.02.148.06.212c.036.068.092.12.156.16l7.434 4.279l.064.028l.036.012q.053.014.112.016q.054-.002.108-.016l.036-.012q.037-.01.068-.032l7.434-4.275a.44.44 0 0 0 .212-.372v-3.995l3.5-2.015a.43.43 0 0 0 .16-.156a.46.46 0 0 0 .055-.216V6.668c0-.036 0-.072-.012-.112m-4.13 1.755l-2.856-1.643l2.855-1.64l2.856 1.64zM6.428 2.925L9.28 4.568L6.43 6.212L3.573 4.568zm3.283 2.383v7.494l-1.735 1l-1.12.644v-7.49zm0 15.516l-6.57-3.783V5.308l2.855 1.648v8.234l.008.056q.001.025.008.056c.004.016.012.028.02.052q.012.03.024.048a.4.4 0 0 0 .036.056l.032.036s.02.02.048.04l3.54 2.007zm.432-4.027l-2.851-1.611l6.566-3.78l2.852 1.644zm6.998.244l-6.57 3.787v-3.287l6.57-3.75zm0-4.735l-2.855-1.643V7.412l2.855 1.643zm3.716-1.643l-2.856 1.643v-3.25l2.856-1.644z\"\u002F>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":234},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M20 12H4m0 0l6-6m-6 6l6 6\"\u002F>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":236},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\u003Cpath stroke-linecap=\"round\" d=\"M4 22h16\"\u002F>\u003Cpath d=\"m13.888 3.663l.742-.742a3.146 3.146 0 1 1 4.449 4.45l-.742.74m-4.449-4.448s.093 1.576 1.483 2.966s2.966 1.483 2.966 1.483m-4.449-4.45L7.071 10.48c-.462.462-.693.692-.891.947a5.2 5.2 0 0 0-.599.969c-.139.291-.242.601-.449 1.22l-.875 2.626m14.08-8.13l-6.817 6.817c-.462.462-.692.692-.947.891q-.451.352-.969.599c-.291.139-.601.242-1.22.448l-2.626.876m0 0l-.641.213a.848.848 0 0 1-1.073-1.073l.213-.641m1.501 1.5l-1.5-1.5\"\u002F>\u003C\u002Fg>",{"left":14,"top":14,"width":15,"height":15,"rotate":14,"vFlip":6,"hFlip":6,"body":238},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"1.5\">\u003Cpath d=\"M10.046 14c-1.506-1.512-1.37-4.1.303-5.779l4.848-4.866c1.673-1.68 4.25-1.816 5.757-.305s1.37 4.1-.303 5.78l-2.424 2.433\"\u002F>\u003Cpath d=\"M13.954 10c1.506 1.512 1.37 4.1-.303 5.779l-2.424 2.433l-2.424 2.433c-1.673 1.68-4.25 1.816-5.757.305s-1.37-4.1.303-5.78l2.424-2.433\"\u002F>\u003C\u002Fg>",1777677543277]