frontend-development

Build Vue 3 frontend apps and portal pages for Frappe using Frappe UI components and data resources.

62|23|Updated Feb 7, 2026
One-click install
npx skills add https://github.com/lubusIN/frappe-skills --skill frontend-development-lubusin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: frontend-development
Source: https://github.com/lubusIN/frappe-skills/tree/main/frontend-development
Command: npx skills add https://github.com/lubusIN/frappe-skills --skill frontend-development-lubusin

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires frappe-ui, and includes references (resource) components.

What problem does it solve? Building custom frontends for Frappe applications requires knowing the correct Vue 3 setup, Frappe UI component APIs, data-fetching patterns, and authentication handling—mistakes like missing CSRF tokens, broken Tailwind config, or wrong resource URLs cause hours of debugging. ## Core Features & Use Cases - Frappe UI SPA Scaffolding: Set up a Vue 3 + TailwindCSS frontend inside a Frappe app using the official frappe-ui-starter template with correct plugin and Tailwind configuration. - Data Fetching with Resources: Use createResource, createListResource, and createDocumentResource for API calls, paginated DocType lists, and single-document CRUD with loading states and caching. - Component & Portal Guidance: Apply 30+ Frappe UI components (Button, Dialog, ListView, TextEditor) and build simpler Jinja-based portal pages when a full SPA is unnecessary. - Use Case: You need a customer-facing dashboard for your Frappe app. This Skill walks you through scaffolding the frontend, fetching ToDo records with a list resource, rendering them in a ListView, and building for production. ## Quick Start Use the frontend-development skill to scaffold a Frappe UI Vue 3 frontend in my app and create a page that lists open ToDo records with a dialog to add new ones.

Frequently Asked Questions about frontend-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a Vue 3 frontend for a Frappe app?▼

Scaffold a frontend inside your Frappe app using the frappe-ui-starter template with npx degit, then install dependencies with yarn and run the dev server. Register the FrappeUI plugin in main.js and configure TailwindCSS with the frappe-ui preset.

How to fetch DocType data in Frappe UI with Vue?▼

Use createListResource with the doctype name, fields, and filters to fetch paginated DocType lists, or createDocumentResource for a single document. Both provide loading states, caching, and built-in CRUD methods like insert, setValue, and delete.

Frappe UI vs custom Vue components for Frappe apps?▼

Frappe UI provides 30+ prebuilt components matching the Frappe design system used by CRM, Helpdesk, and other official apps, ensuring UI consistency. Custom components are discouraged because they create inconsistent UX and increase maintenance burden.

Why do Frappe UI API calls fail with 404 or CSRF errors?▼

404 errors usually mean the method path is wrong or the Python function lacks the @frappe.whitelist() decorator. CSRF failures occur when the token is missing; in local development you can set ignore_csrf, while production attaches the token automatically.

When should I use portal pages instead of a Frappe UI SPA?▼

Use Jinja-based portal pages for simple public-facing pages that need minimal JavaScript, such as basic data display or web forms. Choose a full Frappe UI SPA when you need rich interactivity, complex state, or app-like navigation.