علی فخاران قمی نژاد
علی فخاران قمی نژاد
خواندن ۱۶ دقیقه·۸ ماه پیش

مقایسه ای بین Wagtail CMS و WordPress

این موضوع نسبتا بزرگه و من خیلی به بحث کردن راجع به آن مشتاقم. هرcontent management system ای مزایا و معایبی داره، امیدوارم که در انتهای این پست، کمکتون کنم که بتونین بهترین cms رو برای خودتون یا شرکتتون انتخاب کنین.

1. Overview

هر cms ای یک هدف رو دنبال می‌کنه: مدیریت محتوا به روشی منطقی و بهینه برای شما یا شرکتتون. انتخاب های بی‌شماری وجود داره که بسته به نیاز شما می‌تونه پیشنهاد بشه. یک cms ممکنه فقط باهاش بتونین مدیریت design و seo رو انجام بدین و دیگری فقط برای نوشتن محتوا مناسب باشه.

وگتیل، cms زبان پایتون هست و وردپرس نیز برای زبان برنامه نویسی php عه. تفاوت اینجا مشخص میشه که وردپرس سهم حدود ۴۰ درصد بازار وب رو گرفته و با در نظر گرفتن این موضوع، وردپرس از پیش برنده هست. با این حال هدف بنده اینه که به شما عزیزان کمک کنم تا برای use case خاص خودتون یا شرکتتون بهترین cms رو انتخاب کنید.

استفاده از وردپرس برای تهیه وبسایت به صورت سریع و موقت به همراه وبسایت های marketing جایی که تیم marketing شما به انعطاف پذیری زیادی نیازمنده، بی‌نظیره. در حالی که wagtail ماندگار و پایداره ولی میشه زمان کمتری برای توسعه‌اش صرف کرد، با این حال نیاز های شما و شرکتتون رو برای طولانی مدت برطرف می‌کنه.

هر دوی cms های ذکر شده میتونن یک سرمایه‌ خوب برای شما یا شرکتتون باشن. ولی در این مقاله، قصد دارم این موضوع را مطرح کنم که چرا ممکنه بخواهید وگتیل رو انتخاب کنین. البته که این بسته به تیم شما، رویکرد شما و best practice های داخل تیمتان هنگامی که روی یک وبسایت کار می‌کنید داره.


2. Differences at a glance

وگتیل و وردپرس در موارد زیادی تفاوت دارن. اینجا یک لیست کوتاهی از آنها را عرض می‌کنم:

  • وگتیل از پایتون استفاده می‌کنه. وردپرس از php.
  • وگتیل از پکیج های پایتون استفاده می‌کنه که برای نصب، به یک برنامه‌نویس نیاز دارن. وردپرس از پلاگین ها استفاده می‌کنه.
  • وگتیل در کنار فریم‌ورکی به نام جنگو قرار می‌گیره. وردپرس قبل از توسعه بسیاری از فریم‌ورک های back-end توسعه داده شده و از معماری یا arcitecture خودش پیروی می‌کنه.
  • وگتیل تم از پیش ساخته شده نداره. وردپرس تعداد بسیار زیادی تم آماده داره.
  • وگتیل نیاز به برنامه‌نویس داره. وردپرس میتونه بدونه هیچ برنامه نویسی راه‌اندازی بشه.
  • وگتیل فیچر هایی مانند workflow و reports و language translation و permission را به صورت built-in تو خودش جا داده. وردپرس برای این فیچر ها نیازمند پلاگینه که پلاگین های خوب هم معمولا premium هستن.
  • وگتیل هدفش اینه که محتوای شما رو مدیریت کنه، وردپرس می‌خواهد کل سایت شما رو مدیریت کنه.
  • وگتیل بین یک website و یک web app با یک دیتابیس قابل انتخاب که میتونه I/O رو خیلی خوب کنترل کنه قرار می‌گیره. وردپرس به سمت website-only بودن میره که یک ساختار دیتابیس دیفالت داره که read-only friendly هست.

بین این دو، تفاوت های زیادی وجود داره به خاطر اینکه اهداف متفاوتی دارن. وگتیل می‌خواد محتوا و داده های شما رو در مسیر درستی یا اصطلاحا به طور clean way مدیریت کنه.
وردپرس به clean data practice کمتر توجه می‌کنه، اما از تم های زیادی ساپورت می‌کند.


3. Extendability

اینکه بتونی cms ات رو extend کنی یا گسترش بدی این روزا خیلی مهمه. چه برنامه نویس باشی چه نباشی احتمالا وارد یک سناریویی که بخوای functionality سایتت رو توسعه بدی میشی. هم با wagtail و هم با wordpress میتونی به راحتی این کارو انجام بدی و default functionality هارو extend کنی. ولی با این حال تفاوت هایی هم وجود داره.

وگتیل به طور معمول به یک برنامه نویس نیاز داره که شخصا این موضوع رو نقطه قوت اون میدونم به این خاطر که تو میتونی از تخصص فردی که تو حوزه tech فعالیت کرده کمک بگیری. در حالی که وردپرس اکوسیستم پلاگین هاش رو داره که خیلی بزرگ هم هست و با چند تا کلید هم میتونی نصبشون کنی که برای خودش یک فیچر قدرتمنده.

در ابتدا، استفاده از وردپرس به نظر میاد که بهترین انتخاب برای شرکتت بوده ولی خب در طولانی مدت نمیشه بهش تکیه کرد. مخصوصا وقتی که تعداد پلاگین هات زیاد میشه و همچنین انعطاف پذیریت تو extend کردن functionality ات کم میشه. به علاوه، این همه پلاگین ممکنه سرعت سایتت رو هم بشدت پایین بیاره.

با wagtail، ماجرا یکم فرق داره. شما نیاز به یک برنامه نویس برای نصب package های مختلف داری ولی extend کردن functionality ها با کد نویسی خیلی راحت تره و بعد از سال ها هم سخت‌تر و اسپاگتی نمیشه. وگتیل همچنین enterprise-level feature های خوبی داره که با یکی دو خط کد میتونن functionality های پیشرفته ای رو مثل translate کردن صفحات یا گرفتن یک گزارش دلخواه برای صفحه مورد نظر شما اجرا کنن. اون همچنین page history و group level permission داره که از قبل توش ساخته شده و به راحتی استفاده و مدیریت میشه.


4. Scalability

و scale کردن یک سایت معمولا سخته و در بیشتر موارد به این معنیه که شما نیاز به متخصص DevOps داری تا کمکت کنه server infrastructure ات رو مدیریت کنی. این موضوع برای هر نوع وبسایتی صادقه. معروف ترین راه‌حل اینه که بیای تعداد سرور هاتو افزایش بدی و از load balancer استفاده کنی تا ترافیکت رو بینشون توزیع کنی.

با این حال، قبل از اینکه به این نقطه برسیم. ممکنه بخواهیم یک نگاهی به optimize کردن وبسایتمون بندازیم تا سریعترش کنیم و اون بتونه تعداد زیادی از web request ها رو تو تایم کمی کنترل کنه. تعداد کمتر سرور ها به معنی هزینه کمتر ماهانه هم میتونه باشه. برخی cms ها تنها موارد ضروری رو ارائه میدن و موارد دیگه در قالب add-on میتونن اضافه شن. خلاصه که هر کدوم از این دو روش مزایا و معایبی خودشونو دارن.

وگتیل بشدت scalable هست. روی جنگو ساخته شده که توسط اینستاگرام و پینترست استفاده میشه و خیالتون از این موضوع راحت باشه. اگر به اندازه کافی خوش‌شانس باشید که ترافیک زیادی داشته باشین میتونین راحت functionalityتون رو گسترش بدین تا وبسایتتون سریع تر لود شه. و این موضوع میتونه با جنگو و وگتیل خیلی راحت باشه. همانطور برای performance، وگتیل تنها چند تا کوئری بیشتر از جنگو به دیتابیس اضافه میکنه.
این موضوع خیلی مهمه که سایتت در سریع ترین حالت ممکن اجرا شه تا کاربر هاتو با response time سریع راضی نگه داری.

با وردپرس، عجیب نیست اگه ده ها پلاگین داشته باشی و وقتی ۵۰ تا کاربر همزمان request ارسال میکنن سایتت جواب نده. حتی با مشخصات یکسان سرور برای هر دو cms، یکیشون از اون یکی خیلی بهتره.

با وگتیل شما به طور معمول یک برنامه نویس دارید که میتونه codebaeتون رو optimize کنه در حالی که وردپرس نیاز به برنامه‌نویس نداره که این موضوع به این معنیه که تیمت ممکنه پلاگین های غیر ضروری اضافه کنه که این کار منجر به کند شدن سایتتون میشه.


5. Security


امنیت باید موضوعی باشه که هر کسی بهش فکر کنه. اگه یک کاربر مخرب به وبسایتتون نفوذ کنه ممکنه کل دیتاتون رو از دست بدین یا سایتتون خراب شه و تمام تلاش هایی که برای رشد برندتون انجام دادین از بین بره.

با وگتیل شما امنیت خیلی بالای دارین چرا که در واقع وگتیل از تمام فیچر های امنیتی جنگو نیز پشتیبانی می‌کنه. وقتی یک نسخه با فیچر امنیتی جدید موجود بشه، بشدت آسونه و در حد نوشتن یک خط کده تا آخرین آپدیت امنیتی رو دریافت کنین.

در سمت دیگه، وردپرس زیاد اوضاع خوبی تو این موضوع نداره و تاریخچه خوبی از خودش تو مسائل امنیتی به جا نذاشته، و چیزیه که منو از وردپرس میترسونه، پلاگین ها اغلب نقص امنیتی دارن. مهمترین مورد: SQL injection vulnerabilities

تعداد زیادی از پلاگین های وردپرس با نوشتن database query ها توسط برنامه نویس ها نوشته شدن، که میتونه اجرای سریعی داشته باشه ولی ایمن نباشه. در حالی که wagtail از ابزاری به نام ORM استفاده میکنه
که با برنامه نویسی database query ها رو میسازه و اونا رو در صد درصد موارد ایمن میکنه. تو اکوسیستم وگتیل و جنگو، اگه یک توسعه دهنده raw Sql برای ارتباط گرفتن با دیتابیس ببینه، اون یک باگ امنیتی بزرگه که بیشتر افراد میتونن بلافاصله تشخیصش بدن.

صرف نظر از اینکه چه cms ای استفاده کنی، همیشه به موضوعات امنیتی توجه کن.


6. Design

تقریبا design هر وبسایتی متعلق به خودشه و منحصر به فرده، حتی اگه شبیه رقباش به نظر بیاد. ولی معمولا شما یک حرکتی میزنید که نسبت به رقیباتون متفاوت بشید. برای بیشتر سازمان ها یا شرکت ها، هویت بصری، استراتژی کلیدی‌شون تو حوزه برندینگ‌شونه. ضمن همه موارد، تصور کنید یکی از رقبای شما خرید کنه فقط به این دلیل که وبسایت رقیبتون رو با وبسایت شما اشتباه گرفته :)

با وگتیل، تم های از پیش ساخته شده دستتون رو نبستن و آزادی عمل دارین، وگتیل فقط میخواد محتواتون رو مدیریت کنه و اون رو ارزیابی کنه که برای شما و شرکتتون خیلی کارو راحت می‌کنه. وگتیل هیچ نظری درباره فرانت سایتتون نداره و اجبارتون نمی‌کنه و طراحی اون بستگی به خودتون داره، شخصا فکر می‌کنم که این موضوع یک مزیت بزرگ برای اکوسیستم cms به شمار میاد. من کاملا آزادم که دیزاین و فیچر دلخواهم رو پیاده کنم و همچنین مطمئنم که وبسایتم حتما منحصر به فرد و در حوزه خودش بی‌نظیر میمونه و وبسایت دیگه ای شبیه‌اش به وجود نمیاد. با این حال این موضوع به این معنیه که شما باید تم خودتون رو با وگتیل بسازید در حالی که وردپرس هزاران تم آماده داره که میتونین با چند کلیک ساده انتخابشون کنید.

با وردپرس هم میتونین همین کارو کنید ولی خیلی نادره که دیزاین یک وبسایت وردپرس کاملا unique و منحصر به فرد باشه. معمولا تم ها با اکوسیستم پلاگین موجود در وردپرس نصب میشن. و حتی اگه پولم پای تم بدی با توجه به شهرت زیاد وردپرس تو میتونی مطمئن باشی که اگه نگیم هزار تا، حداقل صد ها وبسایت دیگه وجود داره که دقیقا مثل وبسایت شماست.


7. Get more but don’t pay more

وقتی شما می‌خوای یک فیچر پیشرفته ای مثل پشتیبانی دو زبانه رو به سایتت اضافه کنی، تو وردپرس باید افزونه نصب کنی که احتمال زیاد بین افزونه های رایگان چیز بدرد بخوری پیدا نمیکنی و مجبور میشی برای یک افزونه خوب بازم خرج کنی :)
این موضوع برای اکثر پلاگین های پیشرفته صادقه (مثل انتقال دیتا بین سایتا یا A/B split testing و ...)


7.1. Internationalization

وگتیل از قابلیت چند زبانه به صورت built in پشتیبانی می‌کنه. و برای گسترش functionality میتونی از wagtail-localize استفاده کنی که یدونه 3rd party package عه که توسط تیم اصلی وگتیل پشتیبانی میشه.

وردپرس مشخصا قابلیت internationalization یا به طور کلی چند زبانه شدنو داره ولی باید بازم سر کیسه رو شل کنی و برای پلاگینش پول پرداخت کنی.


7.2. Reports

وگتیل قابلیت اینو داره که هر اتفاقی تو صفحه های مختلفت افتاد رو گزارش بده که این قابلیت هم واسه خود وگتیله و نیاز به نصب پکیجی نداره. وردپرس هم همونطور که احتمالا حدس زدین چنین قابلیتی رو به صورت پیش فرض نداره لکن پلاگین هایی برای این موضوع وجود داره.


7.3. Headless

و headless cms یک سیستم مدیریت محتواست که دیگه تمپلیت خودشو استفاده نمیکنه، بلکه داده های api رو در اختیار تکنولوژی های فرانت مثل react js یا vue js قرار میده تا ازش استفاده کنن، وگتیل هم قابلیت api رو داره که با چند خط کد فعال میشه.
نه wagtail و نه wordpress تو این حوزه شماره یک نیستن ولی هردوشون میتونن به راحتی گسترش پیدا کنن تا از api endpoint ها پشتیبانی کنن.


7.4. Workflows

تو یک سطح سازمانی، ممکنه تجربه مفهوم workflow رو داشته باشین. workflow مجموعه ای از task های مختلفه که باید قبل از یک action خاص انجام بشن. برای مثال ممکنه بخوای یک مقاله بنویسین، برای همین از seo کارتون می‌خواهید کلمات کلیدی مقاله‌تون رو چک کنه. اصلاحشون کنه، ترجمه ‌شون کنه و بعدش هم مقاله رو منتشر کنه.

برای استفاده سازمان ها و شرکت های بزرگ، wagtail‌ به صورت built in قابلیت workflow رو داره که بشدت منعطف هست و بسته به نیاز سازمانتون میتونین راه اندازی اش کنید.

با این حال نمیدونم که وردپرس چنین پلاگینی برای این مورد داره یا نه، ولی مطمئنم یک جایی یک پلاگینی برای چنین user case ای هست.


7.5. Extendability

اگه وگتیل پکیجی که نیاز داری رو نداشته باشه تو میتونی بری سمت پکیج های جنگو و پایتون تا functionality پیشرفته ای که خودت یا شرکتت میخواهید رو پیاده کنی. ولی وردپرس به اکوسیستم پلاگین هاش محدود شده اما خب، بازم هزاران پلاگین داره که احتمالا میتونه نیازتون رو برطرف کنه.


8. User permissions

مجوز ها بخش بزرگی از کار تیمی شما رو در بر میگیرن و برای اهداف امنیتی کاربردین، مخصوصا برای تیم های بزرگ تر یا تیمایی که پیمان‌کار یا اصطلاحا سرمایه گذار دارن. تو ممکنه بخوای تیمتو محدود کنی که چه کاری بتونن انجام بدن و چه کاری نتونن، این ایده خوبی بنظر میرسه چرا که تعداد زیادی از وبسایت ها از طریق تیم خودشون و به واسطه کارمند های ناراضی ای که داشتن هک شدن، همچنین این محدودیت، دید کارمندان رو محدود به حوزه ای میکنه که باید کارشون رو به نحو احسن تو اون قسمت انجام بدن، مثلا نوشتن محتوا و نه تغییر تنظیمات پروژه.

با وگتیل شما میتونین به راحتی این کار رو انجام بدین، شما میتونین گروه بسازین و کاربر هاتون رو تو این گروه ها عضو کنین، همچنین میتونین ویژگی های خاصی رو براشون فعال کنین و قابلیت اضافه کردن یا ویرایش کردن یا حتی حذف کردن انواع صفحات مختلف رو براشون غیر فعال کنین. مثل تمام چیز های مختلف تو دنیای وگتیل، این موضوع هم اختیاریه. اگر هم میخواهید اکانت ادمین برای ادیتوراتون بسازین تا دسترسی کامل داشته باشن، همچنان می‌تونین اینکارو انجام بدین.

با cms ای مثل وردپرس تو معمولا به پلاگین نیاز داری تا اینکارو برات انجام بده، یعنی باید یک افزونه دیگه هم به لیست پرشمار افزونه هات اضافه کنی :( ضمن اینکه اون پلاگین فقط به بخش های محدودی از وردپرس دسترسی داره چرا که خب، اون یک اکستنشنه و فیچر built in برای اون cms نیست.

ولی permission ها کاربرد بیشتری دارن تا اینکه فقط برای امنیت یا محدود کردن کاربران استفاده بشن، اونا همچنین برای تمرکز روی یک بخش خاص و کار تیمی نیز کاربرد دارن، تو وگتیل شما گزارش ها و workflow ها رو برای نوشتن یک مقاله پیشرفته دارین. بجای مدیریت تیمتون به صورت سنتی ( تسک بشون بدی و پیگیرشون باشی )، پیگیری محتواتون و پیگیری اینکه چه کسی باید روی این محتوا تو مراحل مختلف کار کنه، میتونین یک workflow دلخواه بسازید که مخصوص شما و شرکتتونه. برای مثال، بیاید بگیم مثلا میخواهید یک پست بلاگ توسط تیم حقوقی شرکت بزاری بعدش از طریق تیم seo هم باید بررسی بشه و شایدم یک کاری که مخصوص شرکت شماست قبل از انتشار بلاگ بخوای انجام بشه، مشکلی نیست، وگتیل به صورت رایگان اینکارو برات انجام میده. این کار کمکتون میکنه تیمتون رو خیلی خوب سازمان بندی کنید.

علاوه بر این، شما حتی میتونین کامنت هم برای هر پیج بزارین تا ادیتور های دیگه ببینن و reply اش کنن (Google Docs).


9. Reusable content

تا حالا شده بخوای یه تغییر کوچولو روی وبسایتت انجام بدی و بعدش بفهمی که این تغییرو باید روی کل پیج هایی که داری هم اعمال کنی؟ با قابلیت reusable content وگتیل که بهش snippet میگن شما میتونین تغییر مد نظرتون رو اعمال کنین و روی هر بخشی از سایتت که دوست داری پیادش کنی.

بیشتر cms ها چنین ویژگی ای دارن، ولی تو وگتیل به صورت explicit این موضوع برای محتوای قابل استفاده‌ی مجدد طراحی شده، برای مثال، اگه شما یک وبسایت آشپزی داشته باشین و سازنده پست هاتون همگی سرآشپز بودن و متوجه شدین که یک غلط املایی تو نام یکی از اونا وجود داره، شما میتونین نام طرفو تو author snippet آپدیت کنین و با این کار سریعا تو کل وبسایت شما اسم سرآشپز مدنظرتون آپدیت میشه.

به هر حال این concept جدیدی نیست، بیشتر cms ها چیزی شبیه به اینو دارن، تو وردپرس کار با چنین داده هایی یکم دشواره، ولی با wordpress flexible taxonomies ممکنه، اما خب تو وگتیل شما یک منو اختصاصی برای این کار دارین که حتی میتونین بین انواع snippet هاتون سرچ و فیلتر کنین. رابط کاربری تمیزی داره و ویراش محتواهاتون رو بشدت friendly میکنه.


10. Choosing the right CMS

انتخاب cms باید فراتر از دیدن ویژگی های suerface-level یا سطحی باشه. در حالی که وردپرس کاربرد خفن خودشو داره، کسایی که آینده وبسایتشون رو بیشتر از ۶ ماه میبینن متوجه میشن که وردپرس دیگه پاسخگو نیاز هاشون نیست و در آینده تصمیم می‌گیرن که یک وبسایت جدید بسازن و سعی میکنن دیتا هاشون رو از وردپرس به یک cms دیگه انتقال بدن.

امیدوارم این بلاگ بتونه کمکتون کنه تا از برخی تفاوت های اصلی بین wagtail و wordpress آگاه بشین، یا حداقل، امیدوارم توانسته باشم کمکتون کنم تا درباره طول عمر آینده وبسایتتون فکر کنید، حتی اگه هیچکدوم از این دو گزینه را انتخاب نکنید.

  • در این بلاگ، فقط به تعداد محدودی از فیچر هایی که وگتیل داره اشاره کردم، چیزای خیلی بیشتری وجود داره، مثل:
  • built in language support
  • multilingual support
  • reports
  • page revisions
  • audit logging
  • multi-site support
  • headless APIs
  • image cropping

و بسیاری از ویژگی های خفن دیگه.
اگه وگتیل نتونه کاری رو که می‌خواهید انجام بده، جنگو میتونه، و اگه جنگو نتونه، پایتون قطعا می‌تونه.
با استفاده از این پشتوانه قدرت این رو دارید که هر چیزی رو که میتونید تصور کنید رو، روی وبسایتتون پیاده کنید.


11. Summary

من هیچوقت نمیگم از وردپرس استفاده نکن و همچنین نمیگم وگتیل برای شما یا شرکتی که دارین بی‌نظیره، بلکه این دو cms کاملا متفاوتن و اهداف متفاوتی هم دارن.

وردپرس یه عالمه قابلیت خفن بهت میده بدون اینکه یک خط کد بنویسی. ولی خب این موضوع هم با یک سری نقطه ضعف ها همراهه. در حالی که وگتیل فیچر های built in زیادی داره و تو به یک برنامه نویس نیاز داری تا سایتتو راه بندازه.

به صورت خلاصه، چند تا تفاوت کلیدی وجود داره که ممکنه بخوای قبل از انتخاب cms بعدیت بهشون توجه کنی:

  • وگتیل در کنار فریم‌ورکی به نام جنگو قرار می‌گیره. وردپرس قبل از توسعه بسیاری از فریم‌ورک های back-end توسعه داده شده و از معماری یا arcitecture خودش پیروی می‌کنه.
  • وگتیل نیاز به برنامه نویس داره. وردپرس نیاز به برنامه نویس نداره.
  • وگتیل منعطفه و میتونه هر کاری رو که بخوای با کمک یک برنامه نویس انجام بده، وردپرس منعطفه تا جایی که اکوسیستم پلاگین هاش راه بیان.
  • وگتیل میتونه خیلی scalable باشه چون تو یک برنامه نویس داری تا کمکت کنه. وردپرس ممکنه نیاز به چندین پلاگین داشته باشه تا وقتی سایتت در طول زمان scale میشه سریع نگه‌اش داره.
  • وگتیل امنیت بی‌نظیری داره. وردپرس هم امنه ولی خب، پلاگین هاش :(
  • وگتیل تم آماده نداره. وردپرس هزاران تم آماده داره که میتونی انتخابشون کنی.
  • وگتیل فیچر های built in خفنی مثل پشتیبانی از multilingual، workflow، permission، groups و reports داره. وردپرس هم میتونه این کار هارو انجام بده ولی خب، نیاز به چندین پلاگین داره که اغلبشونم پولین.
  • وگتیل و وردپرس هر دوشون reusable content دارن که بهشون snippet و taxonomy میگن.


منبع

التماس دعا


























وردپرسwordpresscms
شاید از این پست‌ها خوشتان بیاید