frappe-impl-customapp

Build Frappe custom app implementations with DocTypes, hooks, fixtures, and patches.

Updated May 31, 2026
One-click install
npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-impl-customapp-anonymousminati
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-impl-customapp
Source: https://github.com/anonymousminati/Res-POS/tree/main/.claude/skills/impl/frappe-impl-customapp
Command: npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-impl-customapp-anonymousminati

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps teams turn a rough Frappe app idea into a reliable implementation plan and code structure, avoiding common mistakes in app creation, module layout, hooks, fixtures, and deployment.

Core Features & Use Cases

  • Custom app creation: Guides the full bench new-app workflow, project layout, module registration, and DocType setup.
  • Business logic and integrations: Supports controllers, hooks, scheduler events, permissions, and external API integrations for real-world ERP workflows.
  • Data migration and release management: Covers versioned patches, fixtures export, testing, packaging, and installation across Frappe v14, v15, and v16.
  • Use Case: A developer building a restaurant operations app can use this Skill to decide whether to add a custom DocType, a hook, a patch, or a fixture and then implement it safely.

Quick Start

Help me design and implement a new Frappe custom app for my use case, including module structure, DocTypes, hooks, fixtures, patches, testing, and deployment guidance.

Frequently Asked Questions about frappe-impl-customapp

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

FAQPage Schema
How do I build a production-ready Frappe custom app from scratch?

Building a Frappe custom app involves using the bench new-app workflow to establish module registration, DocType setup, hooks, and fixtures. You must define deterministic bench workflows, declare dependencies, and configure safe data-migration guardrails to ensure production readiness across Frappe v14 to v16.

When should I use Frappe fixtures versus versioned patches for data migration?

Frappe fixtures are used for exporting and syncing static configuration data, while versioned patches handle dynamic data-migration guardrails during release management. You use patches when modifying existing database records and fixtures when preserving custom fields or settings across deployments.

Does this Frappe implementation approach work across v14, v15, and v16?

Yes, this Frappe implementation approach supports app installation, packaging, and testing across Frappe v14, v15, and v16. It ensures semantic versioning and dependency declarations are maintained properly to satisfy deterministic bench workflows throughout different framework versions.

What's the best way to add business logic and external API integrations to a Frappe doctype?

The best way to add business logic to a Frappe doctype is by implementing custom controllers, configuring hooks, and scheduling scheduler events. You can define permissions and build external API integrations directly within these controllers to execute real-world ERP workflows.

How do I structure a Frappe app to avoid common mistakes in module layout and hooks?

Structuring a Frappe app correctly requires following the standard bench project layout, properly registering modules, and mapping hooks accurately. You must organize DocTypes within the correct module directories and validate hook configurations to prevent deployment failures.

Why do I need to declare dependencies and semantic versioning for my Frappe custom app?

Declaring dependencies and semantic versioning for your Frappe custom app is required to satisfy deterministic bench workflows and ensure safe release management. It prevents compatibility issues during installation and guarantees that data-migration patches execute in the correct order.