Craft.js वैकल्पिक

Craft.js विकल्प: के साथ एक प्रोडक्शन विज़ुअल एडिटर बनाएं GrapesJS

Craft.js और GrapesJS की तुलना करें, वास्तुशिल्प अंतर को समझें, एक लाइव विज़ुअल संपादक का पता लगाएं, और Craft.js-आधारित संपादक को GrapesJS में माइग्रेट करना सीखें।

विज़ुअल ड्रैग-एंड-ड्रॉप संपादककस्टम घटकBlocksStyle ManagerAsset Managerभंडारप्लगइन पारिस्थितिकी तंत्र
Craft.js

आप नोड ट्री के आसपास सब कुछ के मालिक हैं।

  1. React आवेदन
  2. Craft.js
  3. आपका Editor इंटरफ़ेस
GrapesJS

संपादन उप-प्रणाली इकट्ठे होते हैं।

  1. आपका आवेदन
  2. GrapesJS
    • Canvas
    • Blocks
    • Style Manager
    • Storage
  3. प्रकाशन-व्‍यवसाय

वर्तमान रिलीज़

पैकेजविवरणलाइसेंसनवीनतम रिलीज़GitHub सितारेnpm डाउनलोड
@craftjs/core0.2.12MIT2025-02-148,738267k/moमूल
grapesjs0.23.6BSD-3-Clause2026-08-2526,1881.4M/moमूल

npm रजिस्ट्री और GitHub API से 2026-09-03 पर पढ़ें। स्टार काउंट और डाउनलोड के आंकड़े पारिस्थितिकी तंत्र के संकेत हैं, न कि यह माप कि कौन सी परियोजना आपके उत्पाद के लिए उपयुक्त है। दोनों रिपॉजिटरी सक्रिय रूप से प्रकाशित हैं और न ही संग्रहीत हैं।

संक्षिप्त उत्तर

क्या GrapesJS एक अच्छा Craft.js विकल्प है?

GrapesJS और Craft.js संबंधित लेकिन अलग-अलग समस्याओं को हल करते हैं। Craft.js अनुकूलन योग्य पृष्ठ संपादकों के निर्माण के लिए एक React-केंद्रित ढांचा है, जबकि GrapesJS घटकों, ब्लॉक, स्टाइलिंग, संपत्ति, भंडारण और प्लगइन्स के साथ एक व्यापक दृश्य संपादक नींव प्रदान करता है।

GrapesJS एक मजबूत विकल्प हो सकता है जब आप अधिक संपादक बुनियादी ढांचा चाहते हैं, विशेष रूप से HTML/CSS-आधारित विज़ुअल संपादकों, SaaS पेज बिल्डरों, CMS संपादन सतहों और एम्बेड करने योग्य बिल्डरों के लिए।

यह सार्वभौमिक रूप से बेहतर नहीं है। यदि आपका उत्पाद गहराई से React-केंद्रित है और संपादक को React घटक वृक्ष पर काम करना है, तो Craft.js अधिक प्रत्यक्ष फिट है - और नीचे दिए गए अनुभाग अस्वीकरण के बजाय विस्तार से ऐसा कहते हैं।

अगल-बगल

Craft.js बनाम GrapesJS 30 सेकंड में

कोई स्कोर नहीं, क्योंकि पंक्तियाँ तुलनीय मात्रा नहीं हैं। प्रत्येक क्षमता को लेबल किया जाता है कि यह कहां से आता है: परियोजना में शामिल, ऐड-ऑन के माध्यम से पहुंच योग्य, या आपके स्वयं के कोड द्वारा परिभाषित।

  • अंतर्निहित
  • ऐड-ऑन
  • रिवाज
योग्‍यताCraft.jsGrapesJS
प्राथमिक फोकसअपने स्वयं के पृष्ठ संपादकों के निर्माण के लिए एक React ढांचा।संपादन सतह के साथ एक दृश्य संपादक ढांचा पहले से ही इकट्ठा किया गया है।
React-पहलाअंतर्निहितहाँ। Components React घटक हैं; पेड़ एक React पेड़ है।ऐड-ऑननहीं। कोर ढांचा-अज्ञेयवादी है; React @grapesjs/react के माध्यम से आता है।
दृश्य कैनवासअंतर्निहितआपके घटक लाइव प्रस्तुत करते हैं और सीधे selectable होते हैं।अंतर्निहितप्रत्यक्ष चयन और इनलाइन पाठ संपादन के साथ एक अलग कैनवास।
कस्टम घटकअंतर्निहितकोई भी React घटक, एक स्थिर Craft.js वर्णनकर्ता द्वारा वर्णित है।अंतर्निहितकोई भी घटक प्रकार, एक मॉडल के साथ वर्णित, traits और डिफ़ॉल्ट।
खींचें और छोड़ेंअंतर्निहितशामिल। कनेक्टर एक तत्व draggable और droppable बनाते हैं।अंतर्निहितशामिल। Components कैनवास पर कंटेनरों के बीच चलते हैं।
ड्रैग-एंड-ड्रॉप पैलेटरिवाजआप टूलबॉक्स बनाते हैं जो सूचीबद्ध करता है कि क्या खींचा जा सकता है।अंतर्निहितशामिल। Blocks Block Manager के साथ पंजीकरण करें और एक पैनल में दिखाई दें।
शैली प्रबंधनरिवाजअनुप्रयोग-परिभाषित। स्टाइलिंग वह है जो आपके घटक पहले से ही करते हैं।अंतर्निहितशामिल। Style Manager प्रति चयनकर्ता और प्रति डिवाइस CSS संपादन करता है।
संपत्ति प्रबंधनरिवाजअनुप्रयोग-परिभाषित। आप अपने स्वयं के मीडिया पिकर की आपूर्ति करते हैं।अंतर्निहितशामिल। Asset Manager अपलोड और एक मीडिया लाइब्रेरी को संभालता है।
क्रमबद्धताअंतर्निहितशामिल। नोड ट्री JSON तक क्रमबद्ध होता है और वापस लोड होता है।अंतर्निहितशामिल। प्रोजेक्ट डेटा JSON तक क्रमबद्ध होता है और वापस लोड होता है।
भंडारण परतरिवाजआवेदन-परिभाषित। आप तय करते हैं कि क्रमबद्ध JSON कहाँ जाता है।अंतर्निहितशामिल। Storage Manager स्थानीय रूप से या आपके समापन बिंदु तक बना रहता है।
पूर्ववत करें और फिर से करेंअंतर्निहितशामिल। एक पूर्ववत करें और फिर से करें इतिहास कोर API का हिस्सा है।अंतर्निहितशामिल। Undo Manager, कमांड के साथ आप एक पैनल से जुड़ सकते हैं।
परत वृक्ष पैनलऐड-ऑनएक आधिकारिक ऐड-ऑन पैकेज पेड़ को प्रस्तुत करता है।अंतर्निहितशामिल। Layer Manager पैनल कोर के साथ आता है।
Plugin वास्तुकलारिवाजकोई प्लगइन सिस्टम नहीं। आप अपने स्वयं के पैकेज और समुदाय की रचना करते हैं।अंतर्निहितशामिल। एक प्लगइन एक फ़ंक्शन है जो Editor प्राप्त करता है और इसे बढ़ाता है।
फ्रेमवर्क दृष्टिकोणReact-डिजाइन द्वारा केंद्रित।फ्रेमवर्क-अज्ञेयवादी कोर, प्रति फ्रेमवर्क एकीकृत।
HTML और CSS वर्कफ़्लोरिवाजआवेदन-परिभाषित। आप React प्रस्तुत करते हैं और स्वयं मार्कअप तैयार करते हैं।अंतर्निहितदेशी। स्वच्छ HTML और CSS प्राथमिक आउटपुट हैं।
SaaS पेज बिल्डर्ससंभव। आप आसपास की संपादन सतह का निर्माण करते हैं।मजबूत फिट। उस सतह का अधिकांश हिस्सा पहले से ही है।
व्हाइट-लेबल संपादकसंभव। इंटरफ़ेस पहली प्रतिबद्धता से आपका है।मजबूत फिट। पैनल, आइकन, लेबल और अनुवाद सभी बदले जा सकते हैं।

2026-09-03 पर दोनों परियोजनाओं के स्वयं के दस्तावेज़ीकरण के खिलाफ जाँच की गई: Craft.js 0.2.12 और GrapesJS 0.23.6। "कस्टम" एक विवरण है, आलोचना नहीं - कई पंक्तियों के लिए यह ठीक यही कारण है कि एक टीम एक अविचारी ढांचे को चुनती है।

देखें कि वास्तुशिल्प रूप से इसका क्या मतलब है
स्‍थापत्‍यशैली

वास्तुशिल्प अंतर

सबसे बड़ा अंतर केवल सुविधाओं की संख्या नहीं है। दो ढांचे डेवलपर्स को विज़ुअल एडिटर बनाने के लिए अलग-अलग शुरुआती बिंदु देते हैं।

Craft.js

एक रैखिक श्रृंखला। Craft.js नोड ट्री का मालिक है; हर दूसरी परत आपकी है।

  1. React आवेदन
  2. Craft.js
  3. React Component पेड़
  4. आपका Editor इंटरफ़ेस
  5. आपका स्टाइलिंग सिस्टम
  6. आपका भंडारण
  7. आपका प्रकाशन
GrapesJS

सबसिस्टम के साथ एक श्रृंखला। इंजन अपने स्वयं के संपादन मॉड्यूल के साथ आता है।

  1. आपका आवेदन
  2. GrapesJS
    • Canvas
    • Components
    • Blocks
    • Style Manager
    • Asset Manager
    • Commands
    • Storage
    • Plugins
  3. आपका बैकएंड / CMS
  4. प्रकाशन-व्‍यवसाय
  • ढांचे द्वारा प्रदान किया गया
  • आपके द्वारा प्रदान किया गया

Craft.js कम शुरू होता है। यह आपको एक नोड ट्री, ड्रैग-एंड-ड्रॉप कनेक्टर, क्रमांकन और इतिहास देता है, और यह जानबूझकर स्टाइलिंग, संपत्ति, भंडारण या कैनवास के चारों ओर पैनलों पर कोई स्थिति नहीं लेता है। यह एक डिज़ाइन निर्णय है, और एक टीम के लिए जो अपने संपूर्ण संपादन अनुभव का मालिक बनना चाहती है, वह सही है।

GrapesJS उच्च शुरू होता है। कैनवास, Blocks पैनल, Style Manager, Asset Manager, Layer Manager, कमांड और Storage Manager कोर के मॉड्यूल हैं, और उनमें से किसी को बदलने या विस्तारित करने के लिए एक प्लगइन API मौजूद है।

कोई भी ढांचा एक मंच नहीं है। न तो कोई होस्टिंग, खाते, अनुमतियां, बिलिंग, बहु-किरायेदारी या प्रकाशन पाइपलाइन की आपूर्ति करता है। वे दोनों बक्से के बाहर बैठते हैं और किसी भी तरह से आपकी जिम्मेदारी बने रहते हैं।

तो सवाल यह नहीं है कि किस प्रोजेक्ट में अधिक विशेषताएं हैं। यह वह है जो शुरुआती बिंदु आपको उन हिस्सों का निर्माण करने के लिए छोड़ देता है जिन्हें आप वास्तव में रखना चाहते हैं।

यदि आपको जो परतें बनानी होंगी, वे उस पहले कॉलम में Craft.js से ऊपर बैठती हैं, तो GrapesJS मूल्यांकन के लायक है। यदि वे इसके नीचे बैठते हैं, तो माइग्रेट करने से आपको बहुत कम खरीदता है।

ईमानदार मामला

जब Craft.js बेहतर विकल्प हो सकता है

Craft.js एक स्पष्ट उद्देश्य के साथ एक अच्छी तरह से डिज़ाइन किया गया ढांचा है, और कई उत्पाद आकार इसके लिए बेहतर मेल खाते हैं। ये चेतावनियां नहीं हैं - ये ऐसे मामले हैं जहां GrapesJS चुनना गलत निर्णय होगा।

  • आपका उत्पाद गहराई से React-केंद्रित है

    यदि रूटिंग से लेकर राज्य तक सब कुछ पहले से ही React में रहता है, तो React आदिम से निर्मित एक संपादक एक मानसिक मॉडल के अंदर रहता है। किसी भी चीज़ को सीमा पार करने की ज़रूरत नहीं है।

  • संपादक को React घटक वृक्ष पर काम करना चाहिए

    Craft.js एक वास्तविक React पेड़ का संपादन करता है। यदि आपके उपयोगकर्ता जो व्यवस्थित कर रहे हैं वह आपके React घटक हैं - मार्कअप नहीं - तो वह पत्राचार संपूर्ण मूल्य है, और यह कुछ ऐसा नहीं है जो HTML-पहला मॉडल पुनः पेश करता है।

  • आपकी टीम अधिकांश इंटरफ़ेस स्वयं बनाना चाहती है

    Craft.js पैनल, टूलबार या सेटिंग सतह नहीं लगाता है। मजबूत डिज़ाइन राय वाली टीम को ओवरराइड करने के लिए कुछ के बजाय एक साफ स्लेट मिलती है।

  • आपको React रेंडरिंग पर बहुत सख्त नियंत्रण की आवश्यकता है

    संस्मरण, संदर्भ, सस्पेंस सीमाएँ, शेड्यूलिंग प्रस्तुत करें: जब वे विवरण मायने रखते हैं, तो संपादन योग्य ट्री को React के अंदर रखने से वे आपके नियंत्रण में रहते हैं।

  • आपके पास पहले से ही एक परिपक्व Craft.js कार्यान्वयन है

    वास्तविक उपयोगकर्ताओं और वास्तविक सामग्री के साथ एक कार्यशील संपादक एक संपत्ति है। इसे बदलने की लागत शायद ही कभी अकेले फीचर सूची द्वारा उचित होती है।

  • आपका घटक सिस्टम पहले से ही Craft.js के आसपास बनाया गया है

    यदि आपका रिज़ॉल्वर, आपके सेटिंग पैनल और आपकी सामग्री पाइपलाइन सभी Craft.js नोड मॉडल मानते हैं, तो युग्मन गहरा है और इसे कहीं और पुनः पेश करना वास्तविक काम है।

इन स्थितियों में, Craft.js को बदलने से अनावश्यक माइग्रेशन कार्य हो सकता है।

पूर्ण निर्णय मैट्रिक्स देखें
दूसरी दिशा

जब GrapesJS बेहतर फिट है

नीचे दिए गए संकेत इस बारे में हैं कि आपको अन्यथा क्या बनाना होगा। प्रत्येक कार्ड उनमें से कुछ एकत्र करता है; यदि कई आपकी परियोजना का वर्णन करते हैं, तो मूल्यांकन आपके समय के लायक है।

आपको एक पूर्ण संपादन नींव की आवश्यकता है

कैनवास, Blocks, Style Manager, Asset Manager, Layer Manager, कमांड और स्टोरेज बैकलॉग के बजाय कोर के मॉड्यूल हैं। यदि आपके रोडमैप में वर्तमान में उनमें से चार हैं, तो यह संकेत है।

HTML और CSS एक महत्वपूर्ण आउटपुट स्वरूप हैं

GrapesJS एक दस्तावेज़ संपादित करता है और साफ़ मार्कअप और स्टाइलशीट तैयार करता है। जब आपके उपयोगकर्ताओं द्वारा बनाई गई कलाकृति को आपके React ऐप के बाहर प्रस्तुत किया जाना है, तो यह आपके द्वारा लिखे गए निर्यात चरण के बजाय एक मूल वर्कफ़्लो है।

आप एक SaaS पेज बिल्डर का निर्माण कर रहे हैं

आपकी टीम का प्रयास खातों, योजनाओं, टेम्पलेट्स और प्रकाशन में जाता है - स्टाइल पैनल के पुनर्निर्माण में नहीं। GrapesJS उस उत्पाद के अंदर संपादन परत है, उत्पाद स्वयं नहीं।

SaaS पेज बिल्डर गाइड

आपको एक एम्बेड करने योग्य संपादक की आवश्यकता है

संपादक एक DOM तत्व में माउंट होता है जिसे आप नियंत्रित करते हैं, एक ऐप के अंदर आपने जरूरी नहीं लिखा था। वह बाधा एम्बेड करने योग्य मार्गदर्शिका के बारे में है।

एम्बेड करने योग्य बिल्डर गाइड

आप एक व्हाइट-लेबल संपादन अनुभव चाहते हैं

पैनल, आइकन, लेबल, अनुवाद और संपूर्ण दृश्य भाषा बदली जा सकती है, इसलिए संपादक आपके बजाय आपके ग्राहक के ब्रांड को ले जा सकता है।

व्हाइट-लेबल गाइड

आपको एक ईमेल संपादक, या किसी अन्य विशेष संपादक की आवश्यकता है

ईमेल टेबल-आधारित मार्कअप और इनलाइन CSS की मांग करता है - एक ही संपादन सतह के साथ एक अलग दस्तावेज़ मॉडल। प्रीसेट बिल्कुल उसी के लिए मौजूद हैं।

ईमेल संपादक गाइड
हाथ पर

GrapesJS Editor आज़माएं

केवल सुविधाओं की तुलना न करें। संपादक को स्वयं आज़माएं - एक ब्लॉक को अंदर खींचें, एक तत्व का चयन करें, इसे फिर से स्टाइल करें, और कैनवास को फ़ोन की चौड़ाई में स्विच करें।

  • Drag & drop
  • Blocks
  • Layers
  • Style Manager
  • Responsive devices
  • Assets
  • Undo / redo
Component मॉडल

Craft.js Components बनाम GrapesJS Components

दोनों परियोजनाएं उस चीज़ को कॉल करती हैं जिसे उपयोगकर्ता "घटक" के चारों ओर खींचता है, लेकिन दो परिभाषाएँ विनिमेय नहीं हैं। यह वह अंतर है जो तय करता है कि माइग्रेशन कितना काम करता है।

Craft.js

एक React घटक जिसे संपादक कनेक्टर्स के माध्यम से चलाता है। इसकी संपादन योग्य सतह इसकी React प्रॉप्स है।

  1. React Component
  2. React Props
  3. Craft.js Node
GrapesJS

संपादक के अपने दस्तावेज़ मॉडल में एक परिभाषा। इसकी संपादन योग्य सतह traits, विशेषताएँ और शैलियाँ हैं।

  1. Block
  2. Component Type
  3. Component Tree
  4. Attributes / Traits / Styles

अवधारणाएं कैसे मेल खाती हैं

  • Craft.js ComponentGrapesJS Component Type

    React डिस्क्रिप्टर के साथ एक Craft.js घटक एक मॉडल के साथ एक पंजीकृत घटक प्रकार बन जाता है और डिफ़ॉल्ट हो जाता है। यह जो मार्कअप बनाता है वह उस मॉडल में चला जाता है।

  • React PropsTraits / Properties / Attributes

    प्रॉप्स जो एक संपादक उपयोगकर्ता बदल सकता है traits बन जाता है। प्रॉप्स जो केवल आपके कोड सेट करते हैं, विशेषता या निश्चित मॉडल गुण बन जाते हैं।

  • Craft.js Editor StateGrapesJS Project Data

    क्रमबद्ध नोड ट्री प्रोजेक्ट डेटा बन जाता है। दोनों JSON हैं, लेकिन आकार अलग-अलग हैं, इसलिए यह एक ऐसा परिवर्तन है जिसे आप लिखते हैं और परीक्षण करते हैं।

  • Custom Editor UIGrapesJS UI + Custom Commands / Panels

    आपके द्वारा React में लिखे गए सेटिंग्स पैनल को अंतर्निहित विशेषता पैनल द्वारा बदल दिया जाता है, साथ ही कस्टम कमांड और पैनल जहां आपको ऐसे व्यवहार की आवश्यकता होती है जो कोर में नहीं होता है।

यह एक वैचारिक मानचित्रण है, स्वचालित कनवर्टर नहीं। कोई भी उपकरण Craft.js रिज़ॉल्वर नहीं पढ़ता है और GrapesJS घटक प्रकारों का उत्सर्जन नहीं करता है - ऊपर दिया गया पत्राचार वह है जिसे आप लागू करते हैं, एक बार प्रति घटक प्रकार।

काम किया उदाहरण

Component को Craft.js से GrapesJS में माइग्रेट करना

एक ही विचार - एक संपादन योग्य शीर्षक और विवरण के साथ एक hero अनुभाग - प्रत्येक तरफ परिभाषित। उन्हें एक अवधारणा की दो परिभाषाओं के रूप में पढ़ें, न कि एक ही फ़ाइल के पहले और बाद में।

Hero.jsx — Craft.jsjsx
// Craft.js: a component is a React component plus a `craft` descriptor.
// The editor drives it through connectors from useNode().
import { useNode } from '@craftjs/core';

export const Hero = ({ title, description }) => {
  const { connectors: { connect, drag } } = useNode();

  return (
    <section ref={(ref) => connect(drag(ref))} className="hero">
      <h1>{title}</h1>
      <p>{description}</p>
    </section>
  );
};

Hero.craft = {
  props: {
    title: 'Build faster',
    description: 'Create beautiful pages',
  },
  related: {
    // The panel that edits those props is a React component you write.
    settings: HeroSettings,
  },
};
hero-type.js GrapesJSjs
// GrapesJS: a component type owns its markup and its editable traits.
// Traits are the closest analogue to Craft.js props.
editor.Components.addType('hero', {
  model: {
    defaults: {
      tagName: 'section',
      attributes: { class: 'hero' },
      traits: [
        { name: 'title', type: 'text', changeProp: true },
        { name: 'description', type: 'text', changeProp: true },
      ],
      components: [
        { tagName: 'h1', type: 'text', content: 'Build faster' },
        { tagName: 'p', type: 'text', content: 'Create beautiful pages' },
      ],
    },
  },
});

// A block is what makes the type draggable from the panel. Craft.js derives
// the equivalent from your toolbox; in GrapesJS it is a separate registration.
editor.Blocks.add('hero', {
  label: 'Hero',
  category: 'Sections',
  content: { type: 'hero' },
});

// The trait panel edits those traits. You do not write it.

और वह सामग्री जो पहले से मौजूद है

Component परिभाषाएँ इसका केवल आधा हैं। आपके उपयोगकर्ताओं द्वारा पहले से बनाई गई हर चीज़ Craft.js नोड प्रारूप में संग्रहीत है, और इसे स्थानांतरित करने का अर्थ है उस पेड़ पर चलना और उन परिभाषाओं का उत्सर्जन करना जिन्हें आपके नए घटक प्रकार समझते हैं।

migrate-content.jsjs
// Craft.js persists `query.serialize()` — a JSON map of nodes keyed by id,
// each with { type: { resolvedName }, props, nodes }. Migrating it means
// walking that map and emitting the GrapesJS component definitions your new
// types understand: a transform you write once, per component type.
const toGrapesJs = {
  Hero: ({ title, description }) => ({ type: 'hero', title, description }),
  // …one entry per resolver entry in your Craft.js editor
};

function craftNodeToGjs(nodes, id) {
  const node = nodes[id];
  const map = toGrapesJs[node.type.resolvedName];
  if (!map) throw new Error(`Unmapped Craft.js component: ${node.type.resolvedName}`);

  return {
    ...map(node.props),
    components: (node.nodes ?? []).map((child) => craftNodeToGjs(nodes, child)),
  };
}

const nodes = JSON.parse(craftSerializedJson);
editor.setComponents(craftNodeToGjs(nodes, 'ROOT').components);

दोनों नमूने उदाहरणात्मक हैं। वे मानचित्रण का आकार और परिवर्तन का आकार दिखाते हैं; न तो ड्रॉप-इन माइग्रेशन है, और किसी भी प्रोजेक्ट में कुछ भी आपके लिए एक उत्पन्न नहीं करता है।

कार्यक्षेत्र

Craft.js माइग्रेशन कितना कठिन है?

तीन व्यापक स्तर। उनमें से कोई भी अवधि नहीं रखता है, क्योंकि ईमानदार उत्तर पूरी तरह से आपके कोडबेस पर निर्भर करता है - और एक पृष्ठ जो आपको एक संख्या का वादा करता है जिसे वह नहीं जान सकता है, वह आपको योजना बनाने में मदद नहीं कर रहा है।

  1. सरल

    बुनियादी घटक, थोड़ा कस्टम संपादक तर्क

    मुट्ठी भर घटक प्रकार, एक छोटी सेटिंग्स सतह, और सामग्री जिसने अभी तक कई विविधताएं जमा नहीं की हैं।

    आप शायद यहाँ हैं यदि

    • लगभग दस घटक प्रकारों से कम
    • सेटिंग्स पैनल ज्यादातर टेक्स्ट और नंबर इनपुट होते हैं
    • अभी तक उत्पादन में बहुत कम या कोई सामग्री नहीं है

    आमतौर पर अपेक्षाकृत केंद्रित प्रवासन।

  2. मध्यम

    कस्टम घटक, संपादक इंटरफ़ेस, भंडारण और टेम्पलेट

    अपने स्वयं के पैनल, एक टेम्पलेट लाइब्रेरी, सहेजे गए दस्तावेज़ों और एक घटक सेट के साथ एक वास्तविक संपादक जो उत्पाद को फिट करने के लिए विकसित हुआ है।

    आप शायद यहाँ हैं यदि

    • सशर्त फ़ील्ड के साथ कस्टम सेटिंग्स पैनल
    • एक टेम्पलेट लाइब्रेरी जिससे आपके उपयोगकर्ता शुरू कर सकते हैं
    • सहेजी गई सामग्री जिसे इस कदम से बचना है

    घटक और डेटा मैपिंग की आवश्यकता है।

  3. मनोग्रंथि

    डीप React रेंडरिंग निर्भरता और कस्टम व्यवहार

    Components जो ऐप संदर्भ, गैर-स्पष्ट स्थानों में विस्तारित संपादक व्यवहार और संपादन अनुभव में एम्बेडेड व्यावसायिक नियमों पर निर्भर करता है।

    आप शायद यहाँ हैं यदि

    • Components प्रस्तुत करने के लिए ऐप स्थिति या संदर्भ पढ़ें
    • कस्टम स्थिति प्रबंधन संपादक में वायर्ड
    • व्यवसाय नियम जो संपादक व्यवहार में रहते हैं, डेटा में नहीं

    एक वास्तुकला समीक्षा और एक चरणबद्ध प्रवास की आवश्यकता है।

माइग्रेशन जटिलता इस बात पर निर्भर करती है कि मौजूदा ऐप को Craft.js से कितनी गहराई तक जोड़ा गया है।

चेकलिस्ट के माध्यम से काम करें
योजना

Craft.js → GrapesJS माइग्रेशन चेकलिस्ट

एक प्रवास क्रम वास्तव में चलता है, चार चरणों में समूहीकृत. उपयोगी है चाहे आप इसे स्वयं करें या किसी को सौंप दें.

15 कदम
01

समझें कि आपके पास क्या है

इससे पहले कि कुछ भी फिर से बनाया जाए, पता करें कि वास्तव में क्या स्थानांतरित करना है।

  • ऑडिट Craft.js घटक
  • पुनः प्रयोज्य व्यावसायिक तर्क की पहचान करें
  • घटकों को GrapesJS घटक प्रकारों में मैप करें
  • React प्रॉप्स को traits और गुणों में मैप करें
02

संपादन सतह का पुनर्निर्माण करें

Component प्रकार, पैलेट और आपके उपयोगकर्ता अपेक्षित नियंत्रण।

  • ब्लॉकों का पुनर्निर्माण करें
  • संपादक नियंत्रण फिर से बनाएँ
  • मानचित्र टेम्पलेट
03

डेटा ले जाएँ

मौजूदा सामग्री, जहां इसे संग्रहीत किया जाता है, और जिस मीडिया को यह संदर्भित करता है।

  • प्रोजेक्ट डेटा माइग्रेशन की योजना बनाएं
  • स्टोरेज कनेक्ट करें
  • एसेट कॉन्फ़िगर करें
  • कस्टम कमांड का पुनर्निर्माण करें
04

सत्यापित करें और रोल आउट करें

साबित करें कि यह काम करता है, फिर लोगों को बिना किसी कठिन कटओवर के स्थानांतरित करें।

  • उत्तरदायी व्यवहार का परीक्षण करें
  • परीक्षण प्रकाशन
  • पुराने और नए संपादकों को समानांतर में चलाएं
  • उपयोगकर्ताओं को धीरे-धीरे माइग्रेट करें

बक्से एक प्रिंट करने योग्य योजना हैं, सहेजी गई स्थिति नहीं - यहां कुछ भी आपके ब्राउज़र में संग्रहीत नहीं है। आपकी टीम पहले से ही जो भी ट्रैकर उपयोग करती है, उसमें चरणों को कॉपी करें।

किसी ऐसे व्यक्ति से बात करें जिसने इसे किया है
हर कोई सवाल पूछता है

क्या मैं अपने मौजूदा React Components का पुनः उपयोग कर सकता हूँ?

स्वचालित रूप से नहीं।

Craft.js और GrapesJS विभिन्न घटक और संपादक मॉडल का उपयोग करते हैं। एक Craft.js घटक एक React घटक है जिसे संपादक कनेक्टर्स के माध्यम से चलाता है; एक GrapesJS घटक प्रकार संपादक के अपने दस्तावेज़ मॉडल के अंदर एक परिभाषा है। ऐसा कोई एडाप्टर नहीं है जो एक को दूसरे में बदल देता है, और कोई भी पृष्ठ जो आपको अन्यथा बताता है वह उस काम का वर्णन कर रहा है जिसे आप बाद में खोजेंगे।

टीमें वास्तव में क्या करती हैं

  1. 1

    GrapesJS में दृश्य परिभाषा का पुनर्निर्माण करें

    मार्कअप लें और अपने React घटक द्वारा उत्पादित स्टाइलिंग करें और इसे traits के साथ एक घटक प्रकार के रूप में व्यक्त करें। यह डिफ़ॉल्ट पथ है और यह आमतौर पर जितना लगता है उससे कम काम करता है, क्योंकि मार्कअप पहले से मौजूद है।

    लागत: प्रति घटक प्रकार की एक परिभाषा, हाथ से लिखी गई और किसी भी अन्य कोड की तरह समीक्षा की गई।

  2. 2

    संपादक के बाहर व्यावसायिक तर्क का पुनः उपयोग करें

    मूल्य निर्धारण नियम, सत्यापन, डेटा लाने और स्वरूपण शायद ही कभी संपादक के होते हैं। उन्हें संपादक द्वारा कॉल किए गए मॉड्यूल में उठाएं, और वे इस कदम को अछूते रहते हैं।

    लागत: तर्क को पहले प्रतिपादन से अलग करने की आवश्यकता होती है, जो अक्सर परवाह किए बिना करने लायक होता है।

  3. 3

    एक एकीकरण परत बनाएं जहां React रेंडरिंग की वास्तव में आवश्यकता हो

    कुछ घटकों को वास्तव में रेंडर समय पर React की आवश्यकता होती है। उन्हें संपादक के स्वामित्व वाले कंटेनर में प्रस्तुत किया जा सकता है, जिसमें संपादक परिणाम को एक घटक के रूप में मानता है।

    लागत: सबसे महंगा विकल्प। इसका उपयोग उन कुछ घटकों के लिए करें जिन्हें इसकी आवश्यकता है, न कि एक सामान्य रणनीति के रूप में।

  4. 4

    घटकों के बजाय गुणों को मैप करें

    संपादन योग्य सतह वह है जिसकी आपके उपयोगकर्ता परवाह करते हैं। प्रत्येक संपादन योग्य प्रोप को किसी विशेषता या विशेषता के अनुसार मैप करना अनुभव को तब भी संरक्षित करता है जब नीचे का कार्यान्वयन पूरी तरह से नया हो।

    लागत: संपत्ति के नामों और प्रकारों का मिलान करना होगा, और चूक को फिर से स्थापित करना होगा।

पारिस्थितिकी तंत्र

सब कुछ स्वयं बनाने के बजाय अपने GrapesJS Editor का विस्तार करें

GrapesJS चुनने का एक फायदा यह है कि आप हर सुविधा को खरोंच से लागू करने के बजाय प्लगइन्स के माध्यम से संपादक का विस्तार कर सकते हैं। ये GJS.Market कैटलॉग से वास्तविक लिस्टिंग हैं - नाम, कीमतें और छवियां सीधे बाज़ार से आती हैं, इसलिए यहां कुछ भी वास्तव में बिक्री के लिए जो है उससे दूर नहीं जा सकता है।

उत्पाद आकार

आप GrapesJS के साथ क्या बना सकते हैं?

इनमें से प्रत्येक एक अलग उत्पाद है, और प्रत्येक के पास आर्किटेक्चर, ट्रेड-ऑफ और प्लगइन्स के साथ अपना गाइड है जो लागू होता है।

एकीकरण

React, Next.js, Vue और Angular के बारे में क्या?

GrapesJS में एक ढांचा-अज्ञेयवादी कोर है और इसे आधुनिक फ्रंटएंड फ्रेमवर्क के साथ निर्मित अनुप्रयोगों में एकीकृत किया जा सकता है। यह एक DOM तत्व में प्रस्तुत करता है, इसलिए एकीकरण ज्यादातर एक सवाल है कि कौन सा जीवनचक्र बिंदु संपादक को शुरू करता है और कौन सा इसे फाड़ देता है। यह आपके ढांचे के लिए एक मूल घटक प्रणाली के रूप में काम करने वाले GrapesJS से अलग बात है - आंतरिक रूप से यह अपना स्वयं का दस्तावेज़ मॉडल रखता है, जो भी ढांचा इसे होस्ट कर रहा है।
  1. React / Next.js / Vue / Angular
  2. Integration Layer
  3. GrapesJS
  4. Your Component Types
  5. Your Backend
npm install grapesjs @grapesjs/react
VisualEditor.tsxtsx
import grapesjs from 'grapesjs';
import GjsEditor from '@grapesjs/react';
import 'grapesjs/dist/css/grapes.min.css';

// GrapesJS owns an iframe canvas and touches `window`, so it mounts on the
// client. In Next.js, load this from a client component.
export default function VisualEditor() {
  return (
    <GjsEditor
      grapesjs={grapesjs}
      options={{
        height: '100vh',
        storageManager: { type: 'remote', autosave: true },
      }}
      onEditor={(editor) => {
        // Register the component types you mapped from your Craft.js
        // components here.
      }}
    />
  );
}

एकीकरण परत उद्देश्य पर पतली है। आपका ढांचा पृष्ठ का मालिक है, GrapesJS कैनवास का मालिक है, और संपादक के मौजूद होने के बाद आपके घटक प्रकार पंजीकृत हो जाते हैं।

दो मार्ग

क्या आपको माइग्रेट करना चाहिए या नए सिरे से शुरुआत करनी चाहिए?

यदि आपने तय कर लिया है कि GrapesJS फिट बैठता है, तो अभी भी एक दूसरा निर्णय है: मौजूदा संपादक को पार ले जाएं, या उसके बगल में एक नया बनाएं। उनकी कीमत अलग-अलग होती है।

माइग्रेट करें

घटक सेट, टेम्पलेट और सहेजी गई सामग्री को पार ले जाएं, और इसका उपयोग करने वाले लोगों के लिए उत्पाद को निरंतर रखें।

माइग्रेशन चुनें जब

  • आपके पास कई मौजूदा टेम्पलेट हैं।
  • मौजूदा उपयोगकर्ता वर्तमान संपादक पर निर्भर करते हैं।
  • आपकी घटक लायब्रेरी में पुनः प्रयोज्य व्यावसायिक तर्क है.
  • आपको क्रमिक परिवर्तन की आवश्यकता है।

अधिक मानचित्रण कार्य सामने है, उन लोगों के लिए बहुत कम व्यवधान जो पहले से ही संपादक पर भरोसा करते हैं।

चेकलिस्ट देखें

नए सिरे से शुरू करें

नए संपादक को अपनी चीज़ के रूप में बनाएं, सामग्री तैयार होने के बाद उसे पूरा करें, और अवसर का उपयोग करके यह ठीक करें कि आप अन्यथा क्या आगे बढ़ाएंगे।

नए सिरे से शुरू करने पर विचार करें जब

  • Craft.js संपादक अभी भी छोटा है।
  • कुछ मौजूदा टेम्पलेट हैं।
  • घटक वास्तुकला वैसे भी बदल रही है।
  • आप संपादन अनुभव को फिर से डिज़ाइन करना चाहते हैं।

कम संगतता काम करता है, लेकिन सामग्री परिवर्तन अभी भी लिखा जाना है यदि दस्तावेज़ पहले से मौजूद हैं।

पहले संपादक का प्रयास करें
फैसले

आपको कौन सा Editor चुनना चाहिए?

प्रति पंक्ति एक आवश्यकता, एक प्रारंभिक बिंदु। इनमें से चार Craft.js पर इंगित करते हैं, जो अन्य पांच को पढ़ने लायक बनाता है।

आपकी आवश्यकताबेहतर प्रारंभिक बिंदु
एक संपादक जो React घटक वृक्ष पर काम करता हैCraft.js
एक पूर्ण दृश्य संपादक नींवGrapesJS
एक HTML और CSS पेज बिल्डरGrapesJS
एक गहरी React-पहली वास्तुकलाCraft.js
अंतर्निहित दृश्य संपादन उपकरणGrapesJS
एक अत्यधिक कस्टम React संपादक इंटरफ़ेसCraft.js
एक प्लगइन-संचालित संपादक पारिस्थितिकी तंत्रGrapesJS
एक SaaS पेज बिल्डरGrapesJS
एक मौजूदा, परिपक्व Craft.js आवेदनपहले माइग्रेशन लागत का आकलन करें

कोई सार्वभौमिक विजेता नहीं है। सही विकल्प आपके संपादक वास्तुकला और उत्पाद आवश्यकताओं पर निर्भर करता है।

पेशेवर मदद

Craft.js से माइग्रेट करने में सहायता चाहिए?

GJS.Market GrapesJS संपादकों का निर्माण और माइग्रेट करता है। यदि आप अकेले चेकलिस्ट के माध्यम से काम नहीं करना चाहते हैं, तो ये वे चरण हैं जिन्हें एक सहभागिता कवर करती है - और पहला एक आकलन है, जो अच्छी तरह से यह निष्कर्ष निकाल सकता है कि Craft.js पर बने रहना सही उत्तर है।

  1. 1
    चरण 1

    वास्तुकला मूल्यांकन

    हम मौजूदा संपादक को पढ़ते हैं, यह पता लगाते हैं कि यह Craft.js से कितनी गहराई से जुड़ा हुआ है, और स्पष्ट रूप से कहते हैं कि क्या माइग्रेशन करने लायक है।

  2. 2
    चरण 2

    Component और टेम्पलेट मैपिंग

    प्रत्येक घटक प्रकार को GrapesJS परिभाषा में मैप किया जाता है, इसके संपादन योग्य गुणों को traits में बदल दिया जाता है, और मौजूदा टेम्पलेट्स को उनके साथ मैप किया जाता है।

  3. 3
    चरण 3

    डेटा और एसेट माइग्रेशन

    क्रमबद्ध Craft.js सामग्री से प्रोजेक्ट डेटा में परिवर्तन आपके वास्तविक दस्तावेज़ों के विरुद्ध लिखा और परीक्षण किया जाता है, और मीडिया को इसके साथ स्थानांतरित किया जाता है।

  4. 4
    चरण 4

    कस्टम संपादक तर्क और प्लगइन्स

    जिस व्यवहार का कोर में कोई समकक्ष नहीं है, उसे कमांड, पैनल या प्लगइन्स के रूप में फिर से बनाया जाता है, इसलिए यह पैच किए जाने के बजाय बनाए रखने योग्य रहता है।

  5. 5
    चरण 5

    भंडारण और प्रकाशन

    Storage Manager आपके बैकएंड से जुड़ा हुआ है और प्रकाशन पथ अंत से अंत तक जुड़ा हुआ है।

  6. 6
    चरण 6

    समानांतर चल रहा है और परीक्षण

    दोनों संपादक एक ही सामग्री के खिलाफ कंधे से कंधा मिलाकर चलते हैं ताकि किसी को भी उस पर ले जाने से पहले नए को सत्यापित किया जा सके।

प्रश्न

अक्सर पूछे जाने वाले प्रश्न

सबसे अच्छा Craft.js विकल्प क्या है?

यह इस बात पर निर्भर करता है कि आप क्या बना रहे हैं। GrapesJS उन टीमों के लिए निकटतम विकल्प है जो पहले से ही इकट्ठे घटकों, ब्लॉक, स्टाइलिंग, संपत्ति और भंडारण के साथ एक विज़ुअल एडिटर फाउंडेशन चाहते हैं। Puck आत्मा में Craft.js के करीब है यदि आप पहले React रहना चाहते हैं। कोई एक सबसे अच्छा उत्तर नहीं है, यही कारण है कि यह पृष्ठ एक सिफारिश के बजाय एक तुलना है।

क्या GrapesJS Craft.js का प्रतिस्थापन है?

एक ड्रॉप-इन एक नहीं। दोनों के अलग-अलग घटक मॉडल हैं, इसलिए आगे बढ़ने का मतलब है अपने घटकों को फिर से परिभाषित करना और अपनी संग्रहीत सामग्री को बदलना। GrapesJS इस अर्थ में एक प्रतिस्थापन है कि यह एक ही काम कर सकता है, न कि इस अर्थ में कि आप निर्भरता को स्वैप कर सकते हैं।

Craft.js और GrapesJS के बीच अंतर क्या है?

Craft.js पेज एडिटर्स के निर्माण के लिए एक React फ्रेमवर्क है: यह आपके React घटकों का एक नोड ट्री का मालिक है और स्टाइलिंग, संपत्ति, भंडारण और आसपास के इंटरफ़ेस को आपके लिए छोड़ देता है। GrapesJS एक विज़ुअल एडिटर फ्रेमवर्क है जिसके कोर में पहले से ही एक कैनवास, ब्लॉक, एक Style Manager, एक Asset Manager, एक Layer Manager, कमांड, स्टोरेज और एक प्लगइन सिस्टम शामिल है।

क्या GrapesJS React-आधारित है?

नहीं। कोर फ्रेमवर्क-अज्ञेयवादी है और इसमें कोई React निर्भरता नहीं है। एक आधिकारिक React रैपर पैकेज है, लेकिन आंतरिक रूप से GrapesJS React पेड़ के बजाय अपना स्वयं का दस्तावेज़ मॉडल बनाए रखता है।

क्या GrapesJS React के साथ काम कर सकता है?

हाँ। एक आधिकारिक आवरण संपादक को React घटक के रूप में माउंट करता है, और आप इसे समान रूप से एक रेफरी और एक प्रभाव से स्वयं शुरू कर सकते हैं। React app host संपादक है; संपादक अभी भी अपने स्वयं के कैनवास का मालिक है।

क्या मैं अपने Craft.js React घटकों का पुनः उपयोग कर सकता हूँ?

स्वचालित रूप से नहीं। एक Craft.js घटक एक React घटक है जिसे संपादक कनेक्टर्स के माध्यम से चलाता है; एक GrapesJS घटक प्रकार संपादक के अपने मॉडल में एक परिभाषा है। अधिकांश टीमें दृश्य परिभाषा का पुनर्निर्माण करती हैं, व्यावसायिक तर्क को संपादक के बाहर मॉड्यूल में रखती हैं, और केवल उन घटकों के लिए एक एकीकरण परत जोड़ती हैं जिन्हें वास्तव में रेंडर समय पर React की आवश्यकता होती है।

क्या मैं Craft.js घटकों को GrapesJS में माइग्रेट कर सकता हूँ?

हां, उन्हें परिवर्तित करने के बजाय उन्हें मैप करके। प्रत्येक Craft.js घटक एक पंजीकृत घटक प्रकार बन जाता है, इसके संपादन योग्य प्रॉप्स traits बन जाते हैं, और इसके द्वारा प्रदान किया गया मार्कअप प्रकार के मॉडल में चला जाता है। यह हाथ से लिखा गया कार्य है, प्रति घटक प्रकार लगभग एक परिभाषा।

Craft.js घटक राज्य को GrapesJS तक कैसे मैप करता है?

प्रॉप्स एक संपादक उपयोगकर्ता मानचित्र को traits में बदल सकता है। प्रॉप्स केवल आपका कोड विशेषताओं या निश्चित मॉडल गुणों के लिए मानचित्र सेट करता है। एप्लिकेशन बताता है कि रेंडर समय पर पढ़ने वाले घटक का कोई प्रत्यक्ष समकक्ष नहीं होता है और आमतौर पर उसे घटक से बाहर निकलकर संपादक के चारों ओर कोड में जाना पड़ता है।

क्या मैं मौजूदा Craft.js टेम्पलेट्स को माइग्रेट कर सकता हूँ?

हां, एक बार घटक प्रकार मौजूद हो जाने के बाद। एक टेम्पलेट सामग्री संग्रहीत की जाती है, इसलिए यह किसी भी अन्य दस्तावेज़ के समान परिवर्तन से गुजरता है: क्रमबद्ध नोड ट्री पर चलें, समतुल्य GrapesJS घटकों का उत्सर्जन करें, और परिणाम को नए सिस्टम में टेम्पलेट के रूप में सहेजें।

क्या मैं Craft.js प्रोजेक्ट डेटा माइग्रेट कर सकता हूँ?

हाँ, एक परिवर्तन के साथ आप लिखते हैं। Craft.js नोड्स का एक JSON मानचित्र बना रहता है, प्रत्येक में एक हल किए गए घटक नाम, उसके प्रॉप्स और उसके बच्चे होते हैं। GrapesJS प्रोजेक्ट डेटा को अपने JSON आकार में लोड करता है। दोनों JSON हैं, इसलिए माइग्रेशन एक ट्री वॉक प्लस प्रति घटक प्रकार एक मैपिंग फ़ंक्शन है।

क्या GrapesJS SaaS पेज बिल्डरों के लिए उपयुक्त है?

इसका यह एक आम उपयोग है। GrapesJS संपादन परत की आपूर्ति करता है; खाते, योजनाएँ, अनुमतियाँ, टेम्पलेट, होस्टिंग और प्रकाशन आपके निर्माण के लिए बने रहेंगे। SaaS पेज बिल्डर गाइड में बताया गया है कि वे जिम्मेदारियाँ कैसे विभाजित होती हैं।

क्या मैं GrapesJS के साथ Next.js का उपयोग कर सकता हूँ?

हाँ। GrapesJS केवल क्लाइंट है - यह शुरू होने पर ब्राउज़र ग्लोबल्स को छूता है - इसलिए इसे आलस्य से लोड किया जाता है और सर्वर रेंडरिंग के बाहर प्रस्तुत किया जाता है। यह आपके पहले पेलोड से लगभग 300 केबी भी रखता है।

क्या GrapesJS TypeScript का समर्थन करता है?

हाँ। पैकेज अपनी प्रकार की परिभाषाएँ भेजता है, इसलिए किसी अलग प्रकार के पैकेज की आवश्यकता नहीं होती है। TypeScript गाइड संस्करण के फर्श और उन प्रकारों को कवर करता है जो घोषित किए गए हैं लेकिन निर्यात नहीं किए गए हैं।

क्या GrapesJS को व्हाइट-लेबल किया जा सकता है?

हाँ। पैनल, बटन, आइकन, लेबल और अनुवाद सभी बदले जा सकते हैं, और प्लगइन API इंटरफ़ेस के कुछ हिस्सों को पूरी तरह से हटा या पुनर्निर्माण कर सकता है। यही बात इसे किसी और के ब्रांडेड उत्पाद के अंदर एम्बेडेड संपादक के रूप में व्यवहार्य बनाती है।

क्या मैं प्लगइन्स के साथ GrapesJS बढ़ा सकता हूँ?

हाँ। एक प्लगइन एक फ़ंक्शन है जो Editor प्राप्त करता है और घटक प्रकार, ब्लॉक, कमांड, पैनल या स्टोरेज एडेप्टर को पंजीकृत करता है। यह मुख्य विस्तार तंत्र है, और यह वही है जिस पर बाज़ार लिस्टिंग बनाई गई है।

मुझे GrapesJS प्लगइन्स कहां मिल सकते हैं?

GJS.Market GrapesJS प्लगइन्स, ब्लॉक, प्रीसेट और एकीकरण की एक सूची है, जिसे कैटलॉग अनुभाग द्वारा व्यवस्थित किया गया है। इस पृष्ठ का प्लगइन्स अनुभाग लाइव कीमतों के साथ वर्तमान लिस्टिंग दिखाता है।

क्या मुझे Craft.js से माइग्रेट करना चाहिए या एक नया प्रोजेक्ट शुरू करना चाहिए?

माइग्रेट करें जब आपके पास कई टेम्पलेट हों, जो उपयोगकर्ता वर्तमान संपादक पर निर्भर करते हैं, या व्यावसायिक तर्क को ले जाने लायक हों। नए सिरे से शुरू करें जब Craft.js संपादक अभी भी छोटा हो, बहुत कम सहेजी गई सामग्री हो, या घटक आर्किटेक्चर वैसे भी बदल रहा हो। किसी भी तरह से, मौजूदा दस्तावेज़ों को अभी भी एक परिवर्तन की आवश्यकता है।

क्या GJS.Market Craft.js संपादक को माइग्रेट करने में मदद कर सकता है?

हाँ। एक जुड़ाव एक वास्तुकला मूल्यांकन के साथ शुरू होता है, फिर घटक और टेम्पलेट मानचित्रण, डेटा और परिसंपत्ति माइग्रेशन, कस्टम संपादक तर्क, भंडारण और प्रकाशन, और समानांतर चलने की अवधि को कवर करता है। मूल्यांकन यह निष्कर्ष निकाल सकता है कि Craft.js पर बने रहना सही उत्तर है।

अगला कदम

Craft.js से आगे बढ़ने के लिए तैयार हैं?

यदि आपके वर्तमान संपादक को बहुत अधिक कस्टम बुनियादी ढांचे की आवश्यकता है, तो वास्तविक प्रोजेक्ट के साथ GrapesJS का मूल्यांकन करें। संपादक से शुरू करें, इसे प्लगइन्स के साथ विस्तारित करें, और अपने उत्पाद के चारों ओर आर्किटेक्चर को अनुकूलित करें।

निःशुल्क

GrapesJS आज़माएं

इस पृष्ठ पर आगे चल रहे संपादक का उपयोग करें, फिर लंबे समय तक आधिकारिक डेमो और मार्केटप्लेस डेमो लें।

संपादक खोलें
बाज़ार

प्लगइन्स का अन्वेषण करें

Components, ब्लॉक, रिच टेक्स्ट एडिटिंग, डिज़ाइन सिस्टम, स्टोरेज और एसेट्स — एक्सटेंशन जो काम को प्रतिस्थापित करते हैं जिन्हें आप अन्यथा लिखेंगे।

प्लगइन्स का अन्वेषण करें
सेवाएं

किसी माइग्रेशन एक्सपर्ट से बात करें

पहले एक मूल्यांकन, फिर घटक मानचित्रण, डेटा माइग्रेशन और समानांतर चल रहा है। एक ईमानदार उत्तर सहित यदि माइग्रेट करना इसके लायक नहीं है।

माइग्रेशन सहायता का अनुरोध करें