---
title: "Blog — Nuxt, Laravel, AI and web development | Liviu.dev"
description: "Practical notes on Nuxt, Vue, Laravel, AI integration and shipping web products, from a senior freelance full-stack developer."
canonical_url: "https://liviu.dev/blog"
locale: en
meta:
  "og:description": "Practical notes on Nuxt, Vue, Laravel, AI integration and shipping web products, from a senior freelance full-stack developer."
  "og:image": "https://liviu.dev/_og/d/c_Default%2Ctitle_~QmxvZyDigJQgTnV4dCwgTGFyYXZlbCwgQUkgYW5kIHdlYiBkZXZlbG9wbWVudA%2Cdescription_~UHJhY3RpY2FsIG5vdGVzIG9uIE51eHQsIFZ1ZSwgTGFyYXZlbCwgQUkgaW50ZWdyYXRpb24gYW5kIHNoaXBwaW5nIHdlYiBwcm9kdWN0cywgZnJvbSBhIHNlbmlvciBmcmVlbGFuY2UgZnVsbC1zdGFjayBkZXZlbG9wZXIu%2Cp_Ii9ibG9nIg.png"
  "og:image:height": "600"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Blog — Nuxt, Laravel, AI and web development"
  "twitter:image": "https://liviu.dev/_og/d/c_Default%2Ctitle_~QmxvZyDigJQgTnV4dCwgTGFyYXZlbCwgQUkgYW5kIHdlYiBkZXZlbG9wbWVudA%2Cdescription_~UHJhY3RpY2FsIG5vdGVzIG9uIE51eHQsIFZ1ZSwgTGFyYXZlbCwgQUkgaW50ZWdyYXRpb24gYW5kIHNoaXBwaW5nIHdlYiBwcm9kdWN0cywgZnJvbSBhIHNlbmlvciBmcmVlbGFuY2UgZnVsbC1zdGFjayBkZXZlbG9wZXIu%2Cp_Ii9ibG9nIg.png"
---

> Index of every page on this site: [llms.txt](https://liviu.dev/llms.txt)

# Latest blog posts

[<h3>**Nuxt 2 to Nuxt 4 Migration in 2026: Cost, Timeline, Plan**</h3>A Nuxt 2 to Nuxt 4 migration guide: what Vue 2 and Nuxt 2 end of life means, what breaks, cost and timeline estimates, and a step-by-step plan.](https://liviu.dev/blog/10/nuxt-2-vue-2-to-nuxt-4-migration)

[**nuxt**](https://liviu.dev/blog?tag=nuxt) [**vue**](https://liviu.dev/blog?tag=vue) [**migration**](https://liviu.dev/blog?tag=migration)

[<h3>**MCP Servers for SaaS: Get Your App into ChatGPT and Claude**</h3>MCP server development for SaaS founders: what MCP is, transports, OAuth, security, cost and a step-by-step plan to get your app into ChatGPT and Claude.](https://liviu.dev/blog/8/mcp-server-for-saas-chatgpt-claude)

[**ai**](https://liviu.dev/blog?tag=ai) [**mcp**](https://liviu.dev/blog?tag=mcp) [**saas**](https://liviu.dev/blog?tag=saas)

[<h3>**Choosing a JS/TS Utility Library in 2026: A Tech Lead’s Perspective**</h3>Every couple of years, the “what’s the best utility library?” debate resurfaces. Back in the day, the answer was easy: Lodash. No discussion, no nuance. That’s no longer true.](https://liviu.dev/blog/6/choosing-the-right-ts-js-utility-library)

[**javascript**](https://liviu.dev/blog?tag=javascript) [**typescript**](https://liviu.dev/blog?tag=typescript) [**tooling**](https://liviu.dev/blog?tag=tooling)

[<h3>**React vs Vue in 2026: How I Choose as a Tech Lead**</h3>There’s no universal “best framework” anymore. In 2026, React and Vue are both excellent. The decision is about team fit, product constraints, and the ecosystem you want to buy into.](https://liviu.dev/blog/4/react-vs-vue)

[**react**](https://liviu.dev/blog?tag=react) [**vue**](https://liviu.dev/blog?tag=vue)

[<h3>**5 Practical Rules to Keep Technical Debt Under Control (2026)**</h3>Technical debt is unavoidable. The difference between high-performing teams and struggling ones is how explicitly they track, price, and pay it down. Here are 5 rules I use in 2026.](https://liviu.dev/blog/2/5-development-guidelines-to-avoid-technical-debt)

[**tech-debt**](https://liviu.dev/blog?tag=tech-debt) [**engineering**](https://liviu.dev/blog?tag=engineering) [**leadership**](https://liviu.dev/blog?tag=leadership)

[<h3>**Get Recommended by ChatGPT and AI Search: A GEO Guide**</h3>A practical GEO guide to getting recommended by ChatGPT and AI search: robots.txt for AI crawlers, server rendering, structured data and llms.txt.](https://liviu.dev/blog/9/get-recommended-by-chatgpt-ai-search)

[**seo**](https://liviu.dev/blog?tag=seo) [**ai**](https://liviu.dev/blog?tag=ai) [**geo**](https://liviu.dev/blog?tag=geo)

[<h3>**Vibe-Coded App Production Checklist (Lovable, Bolt, v0)**</h3>A vibe coding production checklist for apps built with Lovable, Bolt, v0 or Cursor: exposed keys, Supabase RLS, payments, tests, backups and GDPR.](https://liviu.dev/blog/7/vibe-coded-app-production-checklist)

[**ai**](https://liviu.dev/blog?tag=ai) [**security**](https://liviu.dev/blog?tag=security) [**production**](https://liviu.dev/blog?tag=production)

[<h3>**Get Started with JavaScript in 2026 (Tech Lead Advice)**</h3>JavaScript is still the language of the web in 2026. The real question is how to learn it efficiently: modern JS fundamentals, TypeScript, the platform, and the toolchain—without getting lost in framework hype.](https://liviu.dev/blog/5/get-started-with-javascript)

[**javascript**](https://liviu.dev/blog?tag=javascript) [**typescript**](https://liviu.dev/blog?tag=typescript) [**tutorial**](https://liviu.dev/blog?tag=tutorial)

[<h3>**My Top 5 Tools as a Web Developer (2026)**</h3>Tools don’t make you a great engineer, but the right ones remove friction: faster feedback, safer releases, and fewer “mystery problems”. Here are the 5 I rely on most in 2026.](https://liviu.dev/blog/3/my-top-5-tools-as-a-software-developer)

[**tools**](https://liviu.dev/blog?tag=tools) [**productivity**](https://liviu.dev/blog?tag=productivity)

[<h3>**Remote Work in 2026: What Actually Works (and What Doesn’t)**</h3>Remote and hybrid work are no longer experiments. Here’s the operating model I’ve seen work in 2026: how teams stay productive, aligned, and healthy without turning “flexibility” into chaos.](https://liviu.dev/blog/1/is-remote-work-working)

[**remote**](https://liviu.dev/blog?tag=remote) [**hybrid**](https://liviu.dev/blog?tag=hybrid) [**leadership**](https://liviu.dev/blog?tag=leadership)

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://liviu.dev/#website","@type":"WebSite","description":"Hire Liviu Zachin, a freelance full-stack developer for Nuxt, Vue, Laravel and AI integration. 15+ years of shipping web products for teams across the EU and US.","inLanguage":"en-US","name":"Liviu.dev","url":"https://liviu.dev/","publisher":{"@id":"https://liviu.dev/#identity"},"workTranslation":{"@id":"https://liviu.dev/ro#website"}},{"@id":"https://liviu.dev/blog#webpage","description":"Practical notes on Nuxt, Vue, Laravel, AI integration and shipping web products, from a senior freelance full-stack developer.","name":"Blog — Nuxt, Laravel, AI and web development","url":"https://liviu.dev/blog","@type":["WebPage","CollectionPage"],"isPartOf":{"@id":"https://liviu.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://liviu.dev/blog"]}]},{"@id":"https://liviu.dev/#identity","@type":"Person","alternateName":"Liviu Mihai Zachin","description":"Freelance full-stack developer with 15+ years of experience building Nuxt, Vue, Laravel and AI-powered web products for teams across the EU and US.","email":"contact@liviu.dev","jobTitle":"Freelance Full-Stack Web Developer","name":"Liviu Zachin","url":"https://liviu.dev","address":{"addressCountry":"RO"},"image":{"@id":"https://liviu.dev/#/schema/image/1"},"knowsAbout":["Nuxt","Vue.js","Laravel","TypeScript","PHP","React","Next.js","WordPress","AI integration","Large language models","Model Context Protocol","Technical SEO","Web performance"],"sameAs":["https://github.com/liviuzachin","https://www.linkedin.com/in/liviuzachin","https://x.com/liviuzachin","https://www.youtube.com/c/Webmaster_ro","https://www.facebook.com/liviuzachin","https://www.instagram.com/luigindahouse"]},{"@id":"https://liviu.dev/#/schema/image/1","@type":"ImageObject","contentUrl":"https://liviu.dev/img/liviu-zachin.jpg","inLanguage":"en-US","url":"https://liviu.dev/img/liviu-zachin.jpg"}]}
```

## Sitemap

See the full [sitemap](https://liviu.dev/sitemap.md) for all pages.
