---
title: "Freelance Vue.js developer for dashboards, admin panels and SPAs | Liviu.dev"
description: "Hire a senior freelance Vue.js developer for Vue 3 dashboards, admin panels, embedded widgets and codebase cleanups, in TypeScript. From €60/hour."
canonical_url: "https://liviu.dev/services/vue-development"
locale: en
meta:
  "og:description": "Hire a senior freelance Vue.js developer for Vue 3 dashboards, admin panels, embedded widgets and codebase cleanups, in TypeScript. From €60/hour."
  "og:image": "https://liviu.dev/_og/d/c_Default%2Ctitle_~RnJlZWxhbmNlIFZ1ZS5qcyBkZXZlbG9wZXIgZm9yIGRhc2hib2FyZHMsIGFkbWluIHBhbmVscyBhbmQgU1BBcw%2Cdescription_~SGlyZSBhIHNlbmlvciBmcmVlbGFuY2UgVnVlLmpzIGRldmVsb3BlciBmb3IgVnVlIDMgZGFzaGJvYXJkcywgYWRtaW4gcGFuZWxzLCBlbWJlZGRlZCB3aWRnZXRzIGFuZCBjb2RlYmFzZSBjbGVhbnVwcywgaW4gVHlwZVNjcmlwdC4gRnJvbSDigqw2MC9ob3VyLg%2Ceyebrow_~TGl2aXUuZGV2IMK3IFZ1ZS5qcyBkZXZlbG9wbWVudA%2Cprice_~RnJvbSDigqw2MC9ob3Vy%2Cp_Ii9zZXJ2aWNlcy92dWUtZGV2ZWxvcG1lbnQi.png"
  "og:image:height": "600"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Freelance Vue.js developer for dashboards, admin panels and SPAs"
  "twitter:image": "https://liviu.dev/_og/d/c_Default%2Ctitle_~RnJlZWxhbmNlIFZ1ZS5qcyBkZXZlbG9wZXIgZm9yIGRhc2hib2FyZHMsIGFkbWluIHBhbmVscyBhbmQgU1BBcw%2Cdescription_~SGlyZSBhIHNlbmlvciBmcmVlbGFuY2UgVnVlLmpzIGRldmVsb3BlciBmb3IgVnVlIDMgZGFzaGJvYXJkcywgYWRtaW4gcGFuZWxzLCBlbWJlZGRlZCB3aWRnZXRzIGFuZCBjb2RlYmFzZSBjbGVhbnVwcywgaW4gVHlwZVNjcmlwdC4gRnJvbSDigqw2MC9ob3VyLg%2Ceyebrow_~TGl2aXUuZGV2IMK3IFZ1ZS5qcyBkZXZlbG9wbWVudA%2Cprice_~RnJvbSDigqw2MC9ob3Vy%2Cp_Ii9zZXJ2aWNlcy92dWUtZGV2ZWxvcG1lbnQi.png"
---

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

# Freelance Vue.js developer for dashboards, admin panels and SPAs

Vue 3 front ends, component libraries and dashboards in TypeScript, with Pinia and tests that keep them maintainable.

**Starting price**

**From €60/hour**

The final price depends on scope. You get a fixed quote or a day-rate estimate before any work starts.

[Get a quote](https://liviu.dev/hire-me?service=vue-development) [See my work](https://liviu.dev/portfolio)

## Vue work for apps behind a login

Many Vue apps never need to rank in Google. They are dashboards, admin panels, booking back offices and internal tools that people use for hours every day. What matters there is that screens stay fast as the data grows, and that your team can keep adding features without breaking old ones.

Teams usually call me when:

- Screens get slower with every new table, filter or chart
- State is spread across components and an old Vuex store nobody wants to touch
- The code mixes the Options API and the Composition API, with few types and no tests
- The app still runs on Vue 2, which no longer gets security fixes

If your public pages need to rank and render on the server, [Nuxt development](https://liviu.dev/services/nuxt-development) is the better fit. For a Vue 2 upgrade, see [legacy migrations](https://liviu.dev/services/legacy-migrations).

## How I work on Vue codebases

I read before I write. The first step on an existing app is a short review of the structure, dependencies and build, with a list of what to fix first and what can wait. Then I work in small, reviewed pull requests, so your team can follow every change.

New code uses Vue 3 with the Composition API, script setup and TypeScript. Shared state goes into Pinia stores with clear names, and repeated UI becomes components with consistent props. I add Vitest tests where bugs cost you the most and keep the Vite build lean, so each screen loads only the code it needs.

I use AI coding tools such as Claude Code and Cursor every day, and every change is reviewed and tested by me before it reaches your repository.

## Where my Vue experience comes from

- **CautElectrician.ro**: Vue 3 components on Nuxt 4 for county and city search, public profiles and quote request forms.
- **WithMaslow.com**: a Vue 3 front end with teams, social login and one-time-code sign-in, on Nuxt 4 and Nuxt UI.
- **Good Earth**: a Vue app with Facebook login for a "Peel & Win" campaign, running alongside a custom WordPress plugin.

See more in the [portfolio](https://liviu.dev/portfolio).

## What affects the price

Work starts from €60/hour (€480/day); you get a fixed quote after a short scoping call. The estimate depends on the size and state of the codebase, whether tests exist, how many screens are involved and how much back-end work your features need.

Tell me what your app does and what is slowing you down, and I will reply within one working day with questions or a first estimate. [Get a quote for your Vue project](https://liviu.dev/hire-me?service=vue-development).

## **How we work**

1. **1**### **Discovery call**

   We talk through what the app does, who uses it and what slows your team down. You get a written proposal with a fixed price or a day-rate estimate.
2. **2**### **Codebase review**

   I read the code, run the build and tests, and list the risks before changing anything. For a new app, I set up the structure, tooling and conventions instead.
3. **3**### **Weekly delivery**

   Work lands as small pull requests through your review process, with a demo every week, so your team can follow and merge without surprises.
4. **4**### **Handover**

   You get docs, tests and a walkthrough call so your team can own the code, or I stay on at the day rate for the next features.

## **Related work**

- [![ClearVue logo, business web app built by Liviu Zachin](https://liviu.dev/img/portfolio/clearvue-business-light.svg)<h3>**ClearVue**</h3>

  ClearVue, a business web application with a Vue.js front end.](https://clearvue.business)
- [![Good Earth logo, food importer website built by Liviu Zachin](https://liviu.dev/img/portfolio/goodearth-com-mt-light.svg)<h3>**Good Earth**</h3>

  Website for Good Earth Natural Foods in Malta, with a catalogue of 1,000 products by brand, recipes and a Vue "Peel & Win" campaign app.](https://goodearth.com.mt)
- [![Liviu.dev logo, personal website built by Liviu Zachin](https://liviu.dev/img/portfolio/liviu-dev-light.svg)<h3>**Liviu.dev**</h3>

  This website, a bilingual Nuxt site with a blog, mentorship plans, lead forms and structured data for search engines and AI assistants.](https://liviu.dev)

## **Frequently asked questions**

<details>

<summary>

### How much does a freelance Vue.js developer cost?

</summary>

I charge €60/hour or €480/day. A clearly defined feature or widget gets a fixed price after a short scoping call. Longer work inside an existing app usually runs on the day rate, with a demo every week.

</details>

<details>

<summary>

### Should I hire you for Vue or for Nuxt?

</summary>

Vue work covers apps where search rankings do not matter, such as dashboards, admin panels, internal tools and widgets behind a login. If your pages need to rank or be server-rendered, that is Nuxt work. The rate is the same either way, and I can tell you which fits on the first call.

</details>

<details>

<summary>

### Can you join our existing Vue team?

</summary>

Yes. I take tickets from your tracker, open pull requests through your review process and join your calls when needed. Agencies can also hire me as a white-label Vue developer under an NDA.

</details>

<details>

<summary>

### Our app is still on Vue 2. What should we do?

</summary>

Vue 2 stopped receiving updates at the end of 2023, including security fixes, so it is worth planning the move to Vue 3. I can migrate step by step while the app stays live. Migrations are scoped as a separate project, starting from €3,000.

</details>

<details>

<summary>

### Do you write tests for Vue components?

</summary>

Yes. I use Vitest and Vue Test Utils for business logic and the components that break most often. Before refactoring a risky part of the app, I add tests around it first, so we know nothing changed for users.

</details>

<details>

<summary>

### Can you build a Vue widget that runs inside our existing website?

</summary>

Yes. A Vue app can be mounted inside a WordPress, Laravel or static site without rebuilding the rest. For Good Earth in Malta, I built a Vue app with Facebook login for their Peel &amp; Win campaign, next to a custom WordPress plugin.

</details>

## **Related services**

[<h3>**Nuxt development**</h3>Fast, SEO-friendly Nuxt 4 sites and apps with SSR, content, i18n and dashboards, from a developer who works in Nuxt every day.**From €60/hour****Details **](https://liviu.dev/services/nuxt-development) [<h3>**Legacy migrations**</h3>Vue 2 to 3, Nuxt 2 to 4, Laravel and PHP upgrades, or WordPress to Nuxt, without freezing your roadmap.**From €3,000****Details **](https://liviu.dev/services/legacy-migrations) [<h3>**Laravel development**</h3>Laravel APIs and back ends for SaaS products, with queues, real-time events, search, billing and admin panels.**From €60/hour****Details **](https://liviu.dev/services/laravel-development)

## **Let's talk about your project**

Send me a few lines about what you need. I reply within one working day with questions or a first estimate.

[Get a quote](https://liviu.dev/hire-me?service=vue-development)

```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/services/vue-development#webpage","description":"Hire a senior freelance Vue.js developer for Vue 3 dashboards, admin panels, embedded widgets and codebase cleanups, in TypeScript. From €60/hour.","name":"Freelance Vue.js developer for dashboards, admin panels and SPAs","url":"https://liviu.dev/services/vue-development","@type":["WebPage","FAQPage"],"breadcrumb":{"@id":"https://liviu.dev/services/vue-development#/schema/breadcrumb-list/#breadcrumb"},"isPartOf":{"@id":"https://liviu.dev/#website"},"mainEntity":[{"@id":"https://liviu.dev/services/vue-development#/schema/question/1"},{"@id":"https://liviu.dev/services/vue-development#/schema/question/2"},{"@id":"https://liviu.dev/services/vue-development#/schema/question/3"},{"@id":"https://liviu.dev/services/vue-development#/schema/question/4"},{"@id":"https://liviu.dev/services/vue-development#/schema/question/5"},{"@id":"https://liviu.dev/services/vue-development#/schema/question/6"}],"potentialAction":[{"@type":"ReadAction","target":["https://liviu.dev/services/vue-development"]}]},{"@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/services/vue-development#/schema/breadcrumb-list/#breadcrumb","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","name":"Home","item":"https://liviu.dev/","position":1},{"@type":"ListItem","name":"Services","item":"https://liviu.dev/services","position":2},{"@type":"ListItem","name":"Vue.js development","item":"https://liviu.dev/services/vue-development","position":3}]},{"@id":"https://liviu.dev/services/vue-development#service","@type":"Service","description":"Hire a senior freelance Vue.js developer for Vue 3 dashboards, admin panels, embedded widgets and codebase cleanups, in TypeScript. From €60/hour.","name":"Vue.js development","serviceType":"Vue.js development","areaServed":["European Union","United States","United Kingdom"],"availableChannel":{"@type":"ServiceChannel","serviceUrl":"https://liviu.dev/hire-me?service=vue-development"},"brand":{"@id":"https://liviu.dev/#identity"},"image":{"@id":"https://liviu.dev/#/schema/image/2"},"mainEntityOfPage":{"@id":"https://liviu.dev/services/vue-development#webpage"},"offers":{"@type":"Offer","availability":"https://schema.org/InStock","priceCurrency":"EUR","price":60,"description":"From €60/hour","priceSpecification":{"@type":"UnitPriceSpecification","priceCurrency":"EUR","minPrice":60,"unitCode":"HUR"},"priceValidUntil":"2027-12-30T00:00:00.000Z"},"provider":{"@id":"https://liviu.dev/#identity"}},{"@id":"https://liviu.dev/services/vue-development#/schema/question/1","@type":"Question","inLanguage":"en-US","name":"How much does a freelance Vue.js developer cost?","acceptedAnswer":{"@type":"Answer","text":"I charge €60/hour or €480/day. A clearly defined feature or widget gets a fixed price after a short scoping call. Longer work inside an existing app usually runs on the day rate, with a demo every week."}},{"@id":"https://liviu.dev/services/vue-development#/schema/question/2","@type":"Question","inLanguage":"en-US","name":"Should I hire you for Vue or for Nuxt?","acceptedAnswer":{"@type":"Answer","text":"Vue work covers apps where search rankings do not matter, such as dashboards, admin panels, internal tools and widgets behind a login. If your pages need to rank or be server-rendered, that is Nuxt work. The rate is the same either way, and I can tell you which fits on the first call."}},{"@id":"https://liviu.dev/services/vue-development#/schema/question/3","@type":"Question","inLanguage":"en-US","name":"Can you join our existing Vue team?","acceptedAnswer":{"@type":"Answer","text":"Yes. I take tickets from your tracker, open pull requests through your review process and join your calls when needed. Agencies can also hire me as a white-label Vue developer under an NDA."}},{"@id":"https://liviu.dev/services/vue-development#/schema/question/4","@type":"Question","inLanguage":"en-US","name":"Our app is still on Vue 2. What should we do?","acceptedAnswer":{"@type":"Answer","text":"Vue 2 stopped receiving updates at the end of 2023, including security fixes, so it is worth planning the move to Vue 3. I can migrate step by step while the app stays live. Migrations are scoped as a separate project, starting from €3,000."}},{"@id":"https://liviu.dev/services/vue-development#/schema/question/5","@type":"Question","inLanguage":"en-US","name":"Do you write tests for Vue components?","acceptedAnswer":{"@type":"Answer","text":"Yes. I use Vitest and Vue Test Utils for business logic and the components that break most often. Before refactoring a risky part of the app, I add tests around it first, so we know nothing changed for users."}},{"@id":"https://liviu.dev/services/vue-development#/schema/question/6","@type":"Question","inLanguage":"en-US","name":"Can you build a Vue widget that runs inside our existing website?","acceptedAnswer":{"@type":"Answer","text":"Yes. A Vue app can be mounted inside a WordPress, Laravel or static site without rebuilding the rest. For Good Earth in Malta, I built a Vue app with Facebook login for their Peel & Win campaign, next to a custom WordPress plugin."}},{"@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"},{"@id":"https://liviu.dev/#/schema/image/2","@type":"ImageObject","contentUrl":"https://liviu.dev/_og/d/c_Default%2Ctitle_~RnJlZWxhbmNlIFZ1ZS5qcyBkZXZlbG9wZXIgZm9yIGRhc2hib2FyZHMsIGFkbWluIHBhbmVscyBhbmQgU1BBcw%2Cdescription_~SGlyZSBhIHNlbmlvciBmcmVlbGFuY2UgVnVlLmpzIGRldmVsb3BlciBmb3IgVnVlIDMgZGFzaGJvYXJkcywgYWRtaW4gcGFuZWxzLCBlbWJlZGRlZCB3aWRnZXRzIGFuZCBjb2RlYmFzZSBjbGVhbnVwcywgaW4gVHlwZVNjcmlwdC4gRnJvbSDigqw2MC9ob3VyLg%2Ceyebrow_~TGl2aXUuZGV2IMK3IFZ1ZS5qcyBkZXZlbG9wbWVudA%2Cprice_~RnJvbSDigqw2MC9ob3Vy%2Cp_Ii9zZXJ2aWNlcy92dWUtZGV2ZWxvcG1lbnQi.png","inLanguage":"en-US","url":"https://liviu.dev/_og/d/c_Default%2Ctitle_~RnJlZWxhbmNlIFZ1ZS5qcyBkZXZlbG9wZXIgZm9yIGRhc2hib2FyZHMsIGFkbWluIHBhbmVscyBhbmQgU1BBcw%2Cdescription_~SGlyZSBhIHNlbmlvciBmcmVlbGFuY2UgVnVlLmpzIGRldmVsb3BlciBmb3IgVnVlIDMgZGFzaGJvYXJkcywgYWRtaW4gcGFuZWxzLCBlbWJlZGRlZCB3aWRnZXRzIGFuZCBjb2RlYmFzZSBjbGVhbnVwcywgaW4gVHlwZVNjcmlwdC4gRnJvbSDigqw2MC9ob3VyLg%2Ceyebrow_~TGl2aXUuZGV2IMK3IFZ1ZS5qcyBkZXZlbG9wbWVudA%2Cprice_~RnJvbSDigqw2MC9ob3Vy%2Cp_Ii9zZXJ2aWNlcy92dWUtZGV2ZWxvcG1lbnQi.png"}]}
```

## Sitemap

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