├── .github
├── ISSUE_TEMPLATE
│ └── new_submission.yml
├── frappe-framework-logo.svg
├── helper
│ ├── approval.py
│ ├── record_sorter.py
│ └── update.py
└── workflows
│ └── contribute.yml
├── .mergify.yml
├── .pre-commit-config.yaml
├── CNAME
├── LICENSE
├── README.md
├── _config.yml
└── _includes
└── analytics
/.github/ISSUE_TEMPLATE/new_submission.yml:
--------------------------------------------------------------------------------
1 | name: Submission Form
2 | description: Submit a new Frappe App or Resource to the Awesome Frappe list
3 | title: "[Submission] - "
4 | labels: ["new-submission"]
5 | body:
6 | - type: dropdown
7 | id: category
8 | attributes:
9 | label: Category
10 | multiple: false
11 | options:
12 | - Apps
13 | - Developer Tooling
14 | - Other Tooling
15 | - Deployment Tools
16 | - Resources
17 | - Hosting
18 | validations:
19 | required: true
20 | - type: dropdown
21 | id: sub_category
22 | attributes:
23 | label: Sub Category
24 | options:
25 | # Apps
26 | - Business Apps
27 | - Utility Apps
28 | - Plugins
29 | - Integrations
30 | - Themes
31 | - Regional Apps
32 | - Other Apps
33 | # Developer Tooling
34 | - SDKs & Libraries
35 | - Templates
36 | - type: input
37 | attributes:
38 | label: App or Resource URL
39 | validations:
40 | required: true
41 | - type: input
42 | attributes:
43 | label: App or Resource Name
44 | validations:
45 | required: true
46 | - type: textarea
47 | attributes:
48 | label: App or Resource Description
49 | placeholder: A short description of the app or resource
50 | validations:
51 | required: true
52 |
--------------------------------------------------------------------------------
/.github/frappe-framework-logo.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/.github/helper/approval.py:
--------------------------------------------------------------------------------
1 | import sys
2 | import os
3 | import requests
4 |
5 | ISSUE_NUMBER = os.environ.get("ISSUE_NUMBER") # "1200"
6 | GITHUB_REPOSITORY = os.environ.get("GITHUB_REPOSITORY") # "octocat/Hello-World"
7 | GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN") # "1234567890"
8 |
9 | if __name__ == "__main__":
10 | ENDPOINT_URL = f"https://api.github.com/repos/{GITHUB_REPOSITORY}/issues/{ISSUE_NUMBER}/comments"
11 | COLLABORATOR_URL = f"https://api.github.com/repos/{GITHUB_REPOSITORY}/collaborators/{{username}}"
12 | ISSUE_COMMENTS = requests.get(ENDPOINT_URL).json()
13 |
14 | for comment in ISSUE_COMMENTS:
15 | username = comment["user"]["login"]
16 | comment_body = comment["body"]
17 |
18 | if "LGTM" not in comment_body:
19 | continue
20 | print(f"LGTM found by {username}")
21 |
22 | is_collaborator = requests.get(COLLABORATOR_URL.format(username=username), headers={"Authorization": f"token {GITHUB_TOKEN}"}).ok
23 |
24 | if is_collaborator:
25 | print(f"{username} is a collaborator and issue is approved")
26 | sys.exit(0) # exit with success code if a collaborator has dropped a LGTM comment
27 |
28 | print("No one has dropped a LGTM comment")
29 | sys.exit(1) # exit with error code if no collaborator has approved the affirmation
30 |
--------------------------------------------------------------------------------
/.github/helper/record_sorter.py:
--------------------------------------------------------------------------------
1 | SECTIONS_TO_SORT = ["Apps", "Developer Tooling", "Deployment Tools", "Other Clients"]
2 | NEWLINE = "\n"
3 |
4 | def sort_section(lines: list[str]) -> list[str]:
5 | sorted_lines = []
6 | heading_buffer = []
7 |
8 | for line in lines:
9 | is_heading = line.startswith("#")
10 | is_list = line.startswith("-")
11 |
12 | if line == NEWLINE:
13 | continue
14 |
15 | if is_heading:
16 | heading_buffer.sort(key=str.casefold)
17 | sorted_lines.extend(heading_buffer + [NEWLINE])
18 | sorted_lines.append(line)
19 | heading_buffer = [NEWLINE]
20 |
21 | elif is_list:
22 | heading_buffer.append(line)
23 |
24 | else:
25 | if sorted_lines[-1] != NEWLINE:
26 | sorted_lines.append(NEWLINE)
27 | sorted_lines.append(line)
28 |
29 | if heading_buffer:
30 | heading_buffer.sort(key=str.casefold)
31 | sorted_lines.extend(heading_buffer + [NEWLINE])
32 |
33 | return sorted_lines
34 |
35 |
36 | if __name__ == "__main__":
37 | README = open("README.md").readlines()
38 | README_sorted = README.copy()
39 |
40 | for section in SECTIONS_TO_SORT:
41 | section_start = README_sorted.index(f"### {section}\n")
42 | section_end = next(i for i in range(section_start + 1, len(README_sorted) + 1) if README_sorted[i].startswith("### "))
43 | README_sorted[section_start - 1:section_end] = sort_section(README_sorted[section_start:section_end])
44 |
45 | if README != README_sorted:
46 | open("README.md", "w").writelines(README_sorted)
47 |
--------------------------------------------------------------------------------
/.github/helper/update.py:
--------------------------------------------------------------------------------
1 | import os
2 | import json
3 |
4 |
5 | if __name__ == "__main__":
6 | WORKSPACE = os.environ.get("GITHUB_WORKSPACE")
7 | AWESOME_FILE = f"{WORKSPACE}/README.md"
8 |
9 | FILE_ENTRIES_BY_LINE = open(AWESOME_FILE).readlines()
10 | USER_SUBMISSION: dict = json.loads(os.environ.get("submission_entry") or"{}")
11 |
12 | # add user submission to affirmations file
13 | category_index = FILE_ENTRIES_BY_LINE.index(f"### {USER_SUBMISSION['category']}\n")
14 | insert_at_index = category_index + 1
15 |
16 | if sub_category := USER_SUBMISSION['sub_category']:
17 | sub_category_index = FILE_ENTRIES_BY_LINE.index(f"#### {USER_SUBMISSION['sub_category']}\n", category_index)
18 | insert_at_index = sub_category_index + 1
19 |
20 | FILE_ENTRIES_BY_LINE.insert(insert_at_index, f"- [{USER_SUBMISSION['app_or_resource_name']}]({USER_SUBMISSION['app_or_resource_url']}) - {USER_SUBMISSION['app_or_resource_description']}\n")
21 |
22 | # update affirmations file
23 | with open(AWESOME_FILE, "w") as f:
24 | f.writelines(FILE_ENTRIES_BY_LINE)
25 |
26 | print(f"Updated {AWESOME_FILE} with {USER_SUBMISSION}")
27 |
--------------------------------------------------------------------------------
/.github/workflows/contribute.yml:
--------------------------------------------------------------------------------
1 | name: Submissions via Issues
2 | on:
3 | issue_comment:
4 | types: [created, edited]
5 |
6 | jobs:
7 | approval:
8 | # this job only runs for issue comments
9 | name: Check if submission is approved
10 | runs-on: ubuntu-latest
11 | if: ${{ github.event.issue.number }}
12 | steps:
13 | - uses: actions/checkout@v4
14 | with:
15 | token: ${{ secrets.PAT }}
16 | - uses: actions/setup-python@v5
17 | with:
18 | python-version: '3.13'
19 | - name: Check if authorized member has approved submission
20 | run: |
21 | pip install requests
22 | python ${GITHUB_WORKSPACE}/.github/helper/approval.py
23 | env:
24 | ISSUE_NUMBER: ${{ github.event.issue.number }}
25 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26 |
27 | contribution:
28 | name: Extract, Commit & Push submission to default branch
29 | runs-on: ubuntu-latest
30 | needs: approval
31 | steps:
32 | - uses: actions/checkout@v4
33 | - uses: actions/setup-python@v5
34 | with:
35 | python-version: '3.13'
36 |
37 | - uses: stefanbuck/github-issue-parser@v3
38 | id: issue-parser
39 | with:
40 | template-path: ${GITHUB_WORKSPACE}/.github/ISSUE_TEMPLATE/new_submission.yml
41 |
42 | - name: Update submissions file
43 | run: python ${GITHUB_WORKSPACE}/.github/helper/update.py
44 | env:
45 | submission_entry: ${{ steps.issue-parser.outputs.jsonString }}
46 |
47 | - name: Record Sorter
48 | run: python ${GITHUB_WORKSPACE}/.github/helper/record_sorter.py
49 |
50 | - name: Commit + Push changes
51 | uses: EndBug/add-and-commit@v9
52 | with:
53 | message: 'docs: New Submission via Issue'
54 |
55 | cleanup:
56 | name: Close Issue thread after successful contribution
57 | runs-on: ubuntu-latest
58 | needs: contribution
59 | steps:
60 | - name: Close Issue
61 | uses: peter-evans/close-issue@v3
62 | with:
63 | issue-number: ${{ github.event.issue.number }}
64 | comment: Auto-closing issue since commit has been pushed to main branch
65 |
--------------------------------------------------------------------------------
/.mergify.yml:
--------------------------------------------------------------------------------
1 | pull_request_rules:
2 | - name: Automatic merge on approval
3 | conditions:
4 | - "#approved-reviews-by>=1"
5 | actions:
6 | merge:
7 | method: merge
8 |
--------------------------------------------------------------------------------
/.pre-commit-config.yaml:
--------------------------------------------------------------------------------
1 | default_stages: [pre-commit]
2 | fail_fast: false
3 |
4 | repos:
5 | - repo: https://github.com/pre-commit/pre-commit-hooks
6 | rev: v5.0.0
7 | hooks:
8 | - id: trailing-whitespace
9 | - id: check-yaml
10 | - id: check-merge-conflict
11 | - id: check-ast
12 |
13 | - repo: local
14 | hooks:
15 | - id: records-sorter
16 | name: Sort README
17 | entry: python .github/helper/record_sorter.py
18 | language: system
19 | types: [markdown]
20 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | awesome-frappe.gavv.in
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Awesome Frappe [](https://github.com/sindresorhus/awesome)
2 |
3 | > A curated list of awesome things related to the Frappe Framework. Maintained by [Gavin D'souza](https://github.com/gavindsouza).
4 |
5 |
6 |
7 |
8 |
9 | Inspired by [awesome-django](https://github.com/wsvincent/awesome-django).
10 |
11 | > **Disclaimer:** Projects listed may be third-party community packages. They may not vetted nor endorsed by the contributors. Check each project's compatibility information before using. Use them at your own volition.
12 |
13 | Know of a project that should be here? Make a submission using [this form](https://github.com/gavindsouza/awesome-frappe/issues/new?assignees=&labels=new-submission&projects=&template=new_submission.yml&title=Add%20this%20cool%20App+-+)! 😄
14 |
15 | ## Introduction
16 |
17 | Frappe, pronounced fra-pay, is a full stack, batteries-included, web framework written in Python and Javascript with MariaDB (and Postgres too) as the database. It is the framework which powers ERPNext, is pretty generic and can be used to build database driven apps.
18 |
19 |
20 |
22 |
23 | ## Contents
24 |
25 | - [Apps](#apps)
26 | - [Business Apps](#business-apps)
27 | - [Utility Apps](#utility-apps)
28 | - [Plugins](#plugins)
29 | - [Integrations](#integrations)
30 | - [Themes](#themes)
31 | - [Regional Apps](#regional-apps)
32 | - [Other Apps](#other-apps)
33 | - [Developer Tooling](#developer-tooling)
34 | - [SDKs & Libraries](#sdks--libraries)
35 | - [Templates](#templates)
36 | - [Other Tooling](#other-tooling)
37 | - [Deployment Tools](#deployment-tools)
38 | - [Resources](#resources)
39 | - [Hosting](#hosting)
40 |
41 |
42 | ### Apps
43 |
44 | _Apps that showcase the power of the Frappe Framework_
45 |
46 |
47 | #### Business Apps
48 |
49 | - [Apparelo](https://github.com/aerele/apparelo) - Manufacturing Workflow Management for the garment industry.
50 | - [Cargo Management](https://github.com/AgileShift/cargo_management) - Package Management App for ERPNext.
51 | - [ERPNext](https://erpnext.com) - Open source full-featured business management system.
52 | - [Expenses](https://github.com/kid1194/erpnext_expenses) - An expenses management module for ERPNext.
53 | - [FiMax](https://github.com/YefriTavarez/fimax) - Loan Management and Repayment Scheduling for ERPNext.
54 | - [Frappe Desk](https://frappedesk.com/) - Well designed, open-source ticketing system.
55 | - [Frappe HR](http://frappehr.com/) - An Open Source HRMS for Frappe Ecosystem.
56 | - [Frappe Insights](https://github.com/frappe/insights) - Free and Open Source Data Analytics Tool for your Frappe Apps
57 | - [Gameplan](https://github.com/frappe/gameplan/) - Delightful, open-source, work communication tool for remote teams.
58 | - [Healthcare](https://github.com/frappe/healthcare) - An open source management system crafted for the medical industry.
59 | - [POS Awesome](https://github.com/yrestom/POS-Awesome) - An open-source Point of Sale for ERPNext using Vue.js and Vuetify.
60 | - [POS-Awesome-V15](https://github.com/defendicon/POS-Awesome-V15) - the enhance version with more bugs fixed and multiple currency add thanks to @defendicon
61 | - [PropMS](https://github.com/aakvatech/PropMS) - Property Management Solution Powered on ERPNext by Aakvatech.
62 | - [Restaurant](https://github.com/quantumbitcore/erpnext-restaurant) - Restaurant App for ERPNext.
63 | - [School](https://github.com/frappe/school) - The Learning Management System (LMS) that powers [mon.school](https://mon.school) & [frappe.school](https://frappe.school).
64 | - [ServiceMS](https://github.com/aakvatech/servicems) - Service Management System for ERPNext by Aakvatech.
65 | - [Stone Warehouse](https://github.com/finbyz/stonewarehouse) - Manage batch wise balance, especially setup for a ceramic tiles vendor.
66 | - [TailPOS](https://github.com/bailabs/tailpos) - Offline First Open Source POS for ERPNext.
67 | - [URY - Open Source Restaurant Management System](https://github.com/ury-erp/ury) - URY is an open-source ERP designed to simplify and streamline restaurant operations, built over ERPNext.
68 | - [Webshop](https://github.com/frappe/webshop) - eCommerce Platform for ERPNext
69 |
70 | #### Utility Apps
71 |
72 | - [Alerts](https://github.com/kid1194/frappe_alerts) - Displays custom alerts to specific recipients after login.
73 | - [Background Tasks Unleashed](https://github.com/Datahenge/btu) - A Frappe Task Scheduling and Automation.
74 | - [Bulk Webhook](https://github.com/aakvatech/Bulk-Webhook) - Bulk Webhook allows creating webhook that sends multiple records and also reports from ERPNext, and has support for Apache Kafka.
75 | - [Chat](https://github.com/frappe/chat) - Modern chat for your Frappe deployments.
76 | - [ERPNext OCR](https://github.com/Monogramm/erpnext_ocr) - Optical Character Recognition using Tesseract within Frappe.
77 | - [ERPNext POS Hardware Integrations](https://github.com/aisenyi/pasigono) - Weigh scale integration, Stripe Terminal integration, and Raw printing via QZ Tray
78 | - [ERPNext Quota](https://github.com/ahmadpak/erpnext_quota) - App to manage ERPNext Site, User, Company and Space limitations.
79 | - [Frappe ReST API Wrapper](https://github.com/pifabs/restipie) - Build custom ReST api's on top of Frappe.
80 | - [Frappe System Monitor](https://github.com/mymi14s/frappe_system_monitor) - Web interface for webserver running processes and system utilization (RAM, CPU, Disk)
81 | - [Go1 CMS](https://github.com/TridotsTech/go1cms) - Advanced Content Management System built on Frappe.
82 | - [Photos](https://github.com/gavindsouza/photos) - AI powered Image classification & labelling similar to Google Photos in Desk.
83 | - [Pibicut](https://github.com/pibico/pibicut) - URL Shortener with QR Code Generator.
84 | - [PibiDAV](https://github.com/pibico/pibiDAV) - Integrate webDAV, calDAV and cardDAV (Future) with a NextCloud Server, used as (DMS), for a copy of Frappe Files uploaded and tagged to NextCloud while uploading files to Frappe.
85 | - [Print Designer](https://github.com/frappe/print_designer) - Frappe app to design print formats using interactive UI.
86 | - [Private Comment](https://github.com/rtCamp/frappe-private-comment.git) - App that allows controlling comment visibility for tagged user and user-groups with three modes: Private, Public & Mentioned
87 | - [Raven](https://github.com/The-Commit-Company/Raven) - Simple, open source team messaging platform built for Frappe.
88 | - [Release](https://github.com/frappe/release) - Manage releases for Frappe and Frappe Applications.
89 | - [Sentry](https://github.com/ParsimonyGit/frappe-sentry) - Send error logs to [Sentry](https://sentry.io/) for debugging.
90 | - [Sheets](https://sheets.gavv.in/) - Effortless synchronization between your online SpreadSheet Apps & ERPNext.
91 | - [SmartConnect Mobile Application](https://github.com/Midocean-Technologies/mtpl_api) - Interactive Mobile Application (Pre-release Alpha Version)
92 | - [Temporal](https://github.com/Datahenge/temporal) - An ERPNext App that integrates with Redis to rapidly provide calendar information.
93 | - [ToolBox](https://toolbox.gavv.in/) - Automate your Site Maintenance with ToolBox.
94 | - [Wiki](https://github.com/frappe/wiki) - Wiki for serving dynamic data along with a built-in review system.
95 |
96 | #### Plugins
97 |
98 | - [Active User Lister](https://github.com/kid1194/frappe-active-users) - App that displays a list of current active users.
99 | - [Attachment Control extended](https://github.com/kid1194/frappe-better-attach-control) - Plugin that gives you more control over the attachments at field level.
100 | - [Database Console](https://github.com/mymi14s/database_console) - Execute SQL queries directly from Frappe/ERPNext desk just like 'bench mariadb'.
101 | - [Desk Navbar Extended](https://github.com/gavindsouza/desk-navbar-extended) - Frappe's Navbar, slightly salted.
102 | - [DFP External Storage](https://github.com/developmentforpeople/dfp_external_storage) - S3 compatible external storages per folder management app for Frappe and ERPNext.
103 | - [ERPNext: Fiscal Year](https://github.com/kid1194/ERPNext-Fiscal-Year-Based-Date-Related-Fields) - Desk plugin that makes date related fields respect the start and end dates of default fiscal year.
104 | - [ERPNext: POS Restrictions](https://github.com/kid1194/erpnext_pos_controller) - ERPNext plugin that helps in adding some restrictions over default POS.
105 | - [Export Setting](https://github.com/zaid2229/Export-Settings.git) - This app allows you to predefine the fields you want to export from any given doctype in Frappe.
106 | - [Frappe Msdoc Template](https://github.com/rareMaxim/frappe_msdoc_template) - Generate documents from MS Docs templates (.docx and .xlsx)
107 | - [Frappe tinyMCE](https://github.com/shridarpatil/frappe_tinymce) - Replace frappe's Quill Text Editor with tinyMCE Text Editor.
108 | - [Jodit HTML Editor](https://github.com/ashish-greycube/jodit_html_editor) - Replace Quill Text Editor With [Jodit](https://github.com/xdan/jodit) HTML Editor on WebPage and WebForm for Frappe/ERPNext Version 11 & 12.
109 | - [Language Toggle](https://github.com/zaid2229/language-toggle) - Button on navbar to toggle language in ERPNext.
110 | - [Language Translator](https://github.com/mymi14s/language_translator) - Automatic language translator on Frappe Desk and website.
111 | - [List View extended](https://github.com/kid1194/frappe-better-list-view) - List view plugin with more customization sugar.
112 | - [List View: Unassign From](https://github.com/kid1194/frappe-list-unassign-from) - A Frappe plugin that adds the support of unassign from for multiple selection in Desk's List View.
113 | - [Numeric Control extended](https://github.com/kid1194/frappe-better-numerical-controls) - Allows for more control over numeric fields on Website & Desk.
114 | - [OIDC Extended](https://github.com/MohammedNoureldin/frappe-oidc-extended) - An extension to the ERPNext Social Login authentication method (OIDC) that incorporates new features designed to meet the needs of enterprises.
115 | - [S3 Attachments](https://github.com/zerodha/frappe-attachments-s3) - Plug an S3 bucket for storing and fetching files in Frappe.
116 | - [Select Control extended](https://github.com/kid1194/frappe-better-select-control) - Plugin that adds the support of options group to the select control.
117 | - [Sidebar Collapsed Default](https://github.com/Nasr-Systems/sidebar_collapsed_default) - Collapses Sidebar by default on all desk pages. Helps use screen real-estate better on small screens.
118 | - [Silent Print](https://github.com/roquegv/Silent-Print-ERPNext) - Utility App for printing documents silently, that is, without having to interact with browser's print dialog and send the printing order directly to the printer(s).
119 | - [Strict Session Defaults](https://github.com/kid1194/frappe-strict-session-defaults) - Enforces and manages the session defaults popup.
120 |
121 | #### Integrations
122 |
123 | - [Banking API Integration](https://github.com/aerele/bank_api_integration) - Bank API Integration for ERPNext.
124 | - [Dash Integration](https://github.com/pipech/frappe-plotly-dash) - Build analytical web apps through the Desk with @plotly's [Dash](https://github.com/plotly/dash).
125 | - [DATEV Integration](https://github.com/alyf-de/erpnext_datev) - Integration between ERPNext and DATEV.
126 | - [Discourse SSO Integration](https://github.com/shridarpatil/frappe_discourse) - Simple frappe app to setup Single sign-on for Discourse.
127 | - [DocuSign Integration](https://frappecloud.com/marketplace/apps/dsc_erpnext) - DocuSign integration for Frappe Apps.
128 | - [ERPNext Shipping](https://github.com/frappe/erpnext-shipping) - Shipping Integration for ERPNext with Packlink, LetMeShip & SendCloud.
129 | - [ERPNextFinTS](https://github.com/jHetzer/erpnextfints) - FinTS Connector for ERPNext.
130 | - [EWB API Integration](https://github.com/aerele/ewb_api_integration) - Implementing E-WayBill API integration for India.
131 | - [FCM Notification for ERPNext](https://github.com/tridz-dev/erpnext_fcm) - Send notifications created in Frappe or ERPNext as push notication via Firebase Cloud Message.
132 | - [Frepple Integration](https://github.com/msf4-0/ERPNext-Frepple-Integration) - Frepple Production Scheduling Tool.
133 | - [HDFC Bank Integration](https://github.com/resilient-tech/bank_integration) - Unofficial API to handle bank transactions using ERPNext.
134 | - [Mandrill Integration](https://github.com/frappe/mandrill_integration) - Mandrill Integration for Frappe.
135 | - [Mautic Integration](https://github.com/dokos-io/mautic) - Mautic Integration for ERPNext.
136 | - [Meta Integration](https://github.com/efeone/frappe_meta_integration) - Meta Cloud API Integration for Frappe.
137 | - [Metabase Integration](https://github.com/pipech/frappe-metabase) - Access your Metabase instance from Desk.
138 | - [Microsoft 365 Groups](https://github.com/Aptitudetech/frappe-m365) - Microsoft 365 Groups Integration for Frappe.
139 | - [Nextcloud Integration](https://github.com/frappe/nextcloud-integration) - Nextcloud + Frappe = ❤️
140 | - [Paystack Integration](https://github.com/mymi14s/frappe_paystack) - Paystack Payment Gateway Integration for Frappe.
141 | - [Pibiapp](https://github.com/doloresjuliana/pibiapp) - Connect with Nextcloud to store the attachments on your Nextcloud server, integrate with external data from Excel, CSV, JSON or XML files, and view Redash dashboards in Frappe.
142 | - [PostGrid Integration](https://github.com/Avunu/postgrid_integration) - Direct Mail Documents within Frappe via PostGrid Print & Mail API
143 | - [Razorpay Integration](https://github.com/frappe/razorpay_integration) - Razorpay Integration for Frappe.
144 | - [RClone Integration](https://github.com/Muzzy73/rclone_integration) - Frappe integration with Rclone.
145 | - [Shipstation Integration](https://github.com/ParsimonyGit/shipstation_integration) - Shipstation Integration for ERPNext.
146 | - [Shopify Integration](https://github.com/frappe/ecommerce_integrations) - Shopify Integration for ERPNext.
147 | - [Telegram Integration](https://github.com/yrestom/erpnext_telegram) - Telegram Integration app for more productivity.
148 | - [Twilio Integration](https://github.com/frappe/twilio-integration) - Twilio Integration for Frappe.
149 | - [Unicommerce Integration](https://github.com/frappe/ecommerce_integrations) - Unicommerce Integration for ERPNext.
150 | - [WhatsApp Integration](https://github.com/shridarpatil/frappe_whatsapp) - WhatsApp Cloud Integration for Frappe.
151 | - [WooCommerceConnector](https://github.com/libracore/WooCommerceConnector) - Integration App for ERPNext to connect to WooCommerce.
152 | - [Zenoti Integration](https://github.com/frappe/ecommerce_integrations) - Zenoti Integration for ERPNext.
153 |
154 | #### Themes
155 |
156 | - [Business Theme](https://github.com/Midocean-Technologies/business_theme_v14.git) - Business Theme for your Frappe v14 Apps.
157 | - [Classic White](https://github.com/hashirluv/whitetheme-v13) - Classic White theme for your Frappe v13 Apps.
158 | - [Material Blue](https://github.com/hashirluv/bluetheme) - Material Blue Theme for your Frappe v12 Apps.
159 | - [Material UI](https://github.com/michaelkaraz/kimstheme) - kims Theme Material UI for ERPNext.
160 | - [Owl](https://github.com/zaqouttahir/owl_theme) - @zaqouttahir's Owl theme for your Frappe v15 Apps.
161 | - [Pink](https://github.com/Muhammad-shaalan/pink-theme) - @Muhammad-shaalan's Pink theme.
162 | - [Red](https://github.com/hashirluv/redtheme_v13b) - @hashirluv's Red theme for your Frappe v13-beta Apps.
163 |
164 | #### Regional Apps
165 |
166 | - [CSF_TZ](https://github.com/aakvatech/CSF_TZ) - Regional App for Tanzania.
167 | - [ERPNext France](https://github.com/scopen-coop/erpnext_france.git) - Regional code for France, built on top of ERPNext.
168 | - [ERPNext Germany](https://github.com/alyf-de/erpnext_germany) - Regional code for Germany, built on top of ERPNext.
169 | - [Grynn Swiss QR Bill](https://github.com/Grynn-GmbH/Swiss-QR-Bill-ERPNext) - Swiss QR Bill Generator app for ERPNext.
170 | - [GSTR 2B Reconciler](https://github.com/aerele/reconciler) - Reconciliation tool for GSTR 2B and Purchase Register.
171 | - [India Compliance](https://github.com/resilient-tech/india-compliance) - Simple, yet powerful compliance solutions for Indian businesses.
172 | - [KSA](https://github.com/8848digital/KSA) - Regional Compliance for the Kingdom of Saudi Arabia
173 | - [Pakistan Workspace](https://github.com/ParaLogicTech/erpnext_pk) - Regional App for Pakistan with NIC, NTN, and STRN numbers, and reports for FBR tax compliance.
174 | - [Payware](https://github.com/aakvatech/Payware) - ERPNext Payroll enhancements specific for functionality required in Tanzania.
175 | - [Swiss Accounting Integration](https://github.com/phamos-eu/Swiss-Accounting-Integration) - Extend ERPNext with Swiss QR Integration and Abacus Export.
176 | - [Swiss Factur X E Invoicing](https://github.com/Grynn-GmbH/Swiss-E-invoicing-ERPNext) - For E-Invoice Hybrid PDF based on Factur-X and ZugFerd (EN 16931 Standards).
177 | - [Thai Tax](https://github.com/kittiu/thai_tax) - Thailand Taxation (VAT, WHT) for ERPNext.
178 |
179 | #### Other Apps
180 |
181 |
182 |
183 | - [Contract Payment](https://github.com/morghim/contract-payment) - Link between contract with sales invoice and purchase invoice and make dues.
184 | - [Digistore](https://github.com/NagariaHussain/digistore) - Digital Asset Distribution Platform built on Frappe.
185 | - [Digital Signage](https://github.com/one-highflyer/frappe-signage-display-app) - A lightweight digital signage solution made with Frappe. (Desinged for Single Board Computers (SBC) eg: Raspberry Pi.
186 | - [ERPNext Whitelabel](https://github.com/bhavesh95863/whitelabel) - White label ERPNext for your own brand from a single setting.
187 | - [Expense Entry](https://github.com/the-bantoo/expense_request) - Expense Entry for easy capture of non-item expenses without using the Journal Entry.
188 | - [IT Management](https://github.com/phamos-eu/it_management) - Manage your IT landscape from ERPNext.
189 | - [Mail Reminder](https://github.com/scopen-coop/frappe-mail-reminder.git) - ERPNext automatic mail to Contact for Sales invoices, Purchase Orders , ...
190 | - [PDF on Submit](https://github.com/alyf-de/erpnext_pdf-on-submit) - Automatically generate and attach a PDF when a sales document gets submitted.
191 | - [Recod ERPNext Design](https://github.com/Monogramm/recod_erpnext_design) - Provides new sample print formats and design for ERPNext.
192 | - [Robinhood](https://github.com/shridarpatil/robinhood) - System that powers [robinhoodarmy.com](https://checkin.robinhoodarmy.com/)
193 | - [Special Item Accountancy Code](https://github.com/scopen-coop/special_item_accountancy_code) - ERPNext Special Item accountancy code according customer settings.
194 | - [Stock Reconciliation Per Item Group](https://github.com/scopen-coop/stock_reconcialiation_per_item_group) - ERPNext Stock reconciliation per item group
195 | - [Telegram Bot Manager](https://github.com/leam-tech/frappe_telegram) - Telegram Bot support for Frappe.
196 | - [Workspace Permissions](https://github.com/pstuhlmueller/workspaceperms) - Manage the availability of workspaces within Frappe/ ERPNext (sidebar) based on user-roles.
197 |
198 | ### Developer Tooling
199 |
200 | - [Barista](https://github.com/ElasticRun/barista) - Automate functional testing of your Frappe Apps.
201 | - [Console](https://github.com/yrestom/Console) - Powerful Console for Frappe Backend
202 | - [DocType Model Generator](https://github.com/assemmarwan/model_generator) - Generate models to different languages based on Doctype.
203 | - [Doppio](https://github.com/NagariaHussain/doppio) - Magically setup single page applications on your Frappe Apps.
204 | - [Frappe Diff Custom](https://github.com/scopen-coop/scopen-frappe-diff) - Easy way to compare Custom Fields and Property Setters between the git version of an App
205 | - [Frappe GraphQL](https://github.com/leam-tech/frappe_graphql) - GraphQL API Layer for Frappe Framework.
206 | - [Frappe Schema JSON Diff](https://github.com/Robproject/fsjd) - CI tool for showing any schema changes between commits.
207 | - [Frappe Test Runner](https://marketplace.visualstudio.com/items?itemName=AnkushMenat.frappe-test-runner) - VS Code extension to run Frappe tests with single keybind.
208 | - [Frappe UI](https://github.com/frappe/frappe-ui) - A set of components and utilities for rapid UI development.
209 | - [frappe_test.vim](https://github.com/ankush/frappe_test.vim) - Running Frappe unit tests at speed of thought.
210 | - [Frappeviz](https://github.com/yemikudaisi/frappeviz) - Visualize class diagrams of a Frappe App's doctypes using PlantUML.
211 | - [Fsocket](https://github.com/pifabs/fsocket) - Extend frappe's websocket server using socket.io and redis.
212 | - [Intellisense](https://github.com/frappe/intellisense) - VSCode Extension and Language Server for Frappe Framework.
213 | - [Semgrep Rules](https://github.com/frappe/semgrep-rules) - Semgrep Rules for following the best practices while building your Frappe Apps.
214 | - [TypeScript Type generator](https://github.com/nikkothari22/frappe-types) - Typescript type definition generator for Frappe DocTypes.
215 |
216 | #### SDKs & Libraries
217 |
218 | - [Frappe JS SDK](https://github.com/nikkothari22/frappe-js-sdk) - TypeScript/JavaScript library for Frappe REST API
219 | - [Frappe React SDK SDK](https://github.com/nikkothari22/frappe-react-sdk) - React hooks for Frappe
220 | - [Frappe Straw](https://github.com/ssiyad/frappe-straw) - Developer focused React/TypeScript hooks and utilities for Frappe.
221 | - [Frappe-Request.js](https://github.com/bailabs/frappe-request) - A Frappe-Client made with JavaScript and Needle.
222 | - [FrappeClient.php](https://github.com/hizbul25/frappe-client) - a PHP client for making requests to your Frappe Server.
223 | - [FrappeClient.py](https://github.com/zerodha/py-frappe-client) - @zerodha's Python client for making requests to your Frappe Server.
224 | - [FrappeAPI](https://github.com/0xsirsaif/frappeapi) - Provides FastAPI-style API development for Frappe, enabling modern path-based routing and leveraging FastAPI's familiar interface and semantics for a streamlined development experience.
225 | - [FrappeRestClient.Net](https://github.com/yemikudaisi/FrappeRestClient.Net) - Frappe Framework REST client for .Net
226 | - [Renovation](https://github.com/leam-tech/renovation_core) - Renovation is a Frappe Front End TS/JS SDK.
227 | - [renovation_core.dart](https://github.com/leam-tech/renovation_core.dart) - The Frappe Dart/Flutter Front End SDK.
228 |
229 | #### Templates
230 |
231 | - [App Template](https://github.com/Monogramm/erpnext_template) - @Monogramm's supercharged GitHub template for building ERPNext/Frappe Apps.
232 | - [Doppio Bot](https://github.com/NagariaHussain/doppio_bot) - AI ChatBot Template, built into Frappe's Desk Interface.
233 | - [Doppio FrappeUI Starter](https://github.com/NagariaHussain/doppio_frappeui_starter) - A Vite + Vue 3 + TailwindCSS + Frappe UI starter template for building frontends for Frappe Apps.
234 |
235 | ### Other Tooling
236 |
237 | - [Smart Weighing Scale & Inventory](https://github.com/msf4-0/SWSI) - A wireless & portable smart weighing scale embedded system that interfaces with Node-Red for IoT connectivity and ERPNext for inventory & stock tracking.
238 | - [Biometric Attendance Sync Tool](https://github.com/frappe/biometric-attendance-sync-tool) - Python Scripts to poll your biometric attendance system (BAS) for logs and sync with your ERPNext instance.
239 | - [Frappe Chrome Dev Utils](https://github.com/ascorbic-acid/frappe_chrome_dev_utils) - A simple Browser Extension that help you work & develop in Frappe/ERPNext Framework.
240 | - [Frappe MCP Server](https://github.com/appliedrelevance/frappe_mcp_server) - A server that implements the Anthropic Model Control Protocol (MCP) to enable controlled access to Frappe sites.
241 |
242 | ### Deployment Tools
243 |
244 | _Resources allowing you to deploy Frappe apps with your favourite toolset_
245 |
246 | - [Bench](https://frappe.io/bench) - CLI to Manage Frappe Deployments
247 | - [Benchless](https://github.com/castlecraft/benchless) - CLI tool to manage Frappe deployments without bench.
248 | - [Docker Hub](https://hub.docker.com/u/frappe) - Container images for Frappe & ERPNext releases.
249 | - [ERPNextFailOver](https://github.com/martinhbramwell/ERPNextFailOver) - Tool to automate setting up Database Replication for ERPNext.
250 | - [Frappe Docker](https://github.com/frappe/frappe_docker) - Official docker images for Frappe.
251 | - [Helm Chart](https://helm.erpnext.com/) - Kubernetes Helm Chart for ERPNext.
252 | - [Nethserver](https://github.com/geniusdynamics/ns8-erp-next) - @geniusdynamics's configuration for NS8 with backup/restore, server to server node migration, Ldap & Active directory integration and more. [[read more here](https://community.nethserver.org/t/erpnext-the-most-agile-erp-on-the-planet-in-ns8/24240)]
253 |
254 | ### Other Clients
255 |
256 | _Clients built for the Frappe Framework, other than the standard browser view Desk_
257 |
258 | - [AdminLTE](https://github.com/mymi14s/frappevue_adminlte) - Vue-based AdminLTE dashboard for Frappe and ERPNext.
259 | - [Mobile](https://github.com/frappe/mobile) - Mobile App for Frappe built on Dart. _[Version 13+]_
260 |
261 | ### Resources
262 |
263 | _Resources that can help you harness the power of the Frappe Framework_
264 |
265 | - [frappeframework.com](https://frappeframework.com) - Official documentation of the Frappe Framework.
266 | - [frappe.school](https://frappe.school) - Pick from the various courses by the maintainers or from the community.
267 |
268 | _Community Channels_
269 |
270 | - [discuss.frappe.io](https://discuss.erpnext.com) - Forum for Frappe and ERPNext community.
271 | - [Telegram](https://t.me/frappeframework) - Public Telegram group for the Frappe Framework.
272 | - [Stackoverflow](https://stackoverflow.com/questions/tagged/frappe) - Post questions with the `frappe` tag.
273 |
274 | _YouTube Channels_
275 |
276 | - [@frappetech](https://www.youtube.com/@frappetech) - Frappe Technologies' official Youtube channel.
277 | - [@buildwithhussain](https://www.youtube.com/@buildwithhussain) - Watch Frappe Framework used live to build world-class web apps.
278 |
279 |
280 | ### Hosting
281 |
282 | _Providers that are catered to hosting of Frappe and Frappe Apps_
283 |
284 | - [Frappe Cloud](https://frappecloud.com) - Managed hosting platform for Frappe Apps.
285 |
286 |
287 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | title: Awesome Frappe
2 | description: A curated list of awesome things related to the Frappe Framework. Maintained by Gavin D'souza
3 | email: me@gavv.in
4 | url: https://awesome-frappe.gavv.in
5 | author:
6 | name: Gavin D'souza
7 | url: https://gavv.in/
8 |
9 | remote_theme: pages-themes/cayman@v0.2.0
10 | plugins:
11 | - jekyll-remote-theme
12 | - jekyll-seo-tag
13 |
14 | include: ["_includes"]
15 |
--------------------------------------------------------------------------------
/_includes/analytics:
--------------------------------------------------------------------------------
1 | -->
2 |
3 |
6 |
7 |