{"id":66300,"date":"2024-06-12T15:27:37","date_gmt":"2024-06-12T11:57:37","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/"},"modified":"2024-06-12T15:27:37","modified_gmt":"2024-06-12T11:57:37","slug":"cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/","title":{"rendered":"CMS \u06af\u0627\u0644\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f"},"content":{"rendered":"<p><\/p>\n<div data-article-id=\"1880409\" id=\"article-body\">\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a\u060c \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 CMS \u06af\u0627\u0644\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0628\u0627 \u0635\u0641\u062d\u0627\u062a Astro\u060c Xata \u0648 Cloudflare \u0635\u062d\u0628\u062a \u0645\u06cc \u06a9\u0646\u0645.  \u0634\u0645\u0627 \u06cc\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0631\u0641\u062a \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647:<\/p>\n<ul>\n<li>Xata \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u06cc\u06a9 \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 \u0648 \u062a\u0627\u0631 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0627\u0648\u06cc\u0631<\/li>\n<li>\u0647\u0645\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0635\u0641\u062d\u0647 \u0628\u0646\u062f\u06cc \u0648\u0627\u06a9\u0634\u06cc \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u0641\u0631\u0645\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 Astro \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc view \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f<\/li>\n<\/ul>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D9%82%D8%A8%D9%84_%D8%A7%D8%B2_%D8%A7%DB%8C%D9%86%DA%A9%D9%87_%D8%B4%D8%B1%D9%88%D8%B9_%DA%A9%D9%86%DB%8C\" >\u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7\" >\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D9%BE%D8%B4%D8%AA%D9%87_%D9%81%D9%86%DB%8C\" >\u067e\u0634\u062a\u0647 \u0641\u0646\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_Xata\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Xata<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D8%B7%D8%B1%D8%AD%D9%88%D8%A7%D8%B1%D9%87\" >\u0627\u06cc\u062c\u0627\u062f \u0637\u0631\u062d\u0648\u0627\u0631\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%B4%D9%85%D8%A7\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#Xata_%D8%B1%D8%A7_%D8%A8%D8%A7_Astro_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >Xata \u0631\u0627 \u0628\u0627 Astro \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%DA%A9%D8%B4%D9%86_%D9%87%D8%A7%DB%8C_%D9%81%D8%B1%D9%85_%D8%AF%D8%B1_Astro\" >\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u06a9\u0634\u0646 \u0647\u0627\u06cc \u0641\u0631\u0645 \u062f\u0631 Astro<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D8%A2%D9%BE%D9%84%D9%88%D8%AF_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1_%D8%AF%D8%B1_%D8%B3%D9%85%D8%AA_%D8%B3%D8%B1%D9%88%D8%B1_%D8%A8%D8%A7_Xata_SDK\" >\u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u067e\u0644\u0648\u062f \u062a\u0635\u0648\u06cc\u0631 \u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0628\u0627 Xata SDK<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D8%AA%D8%A8%D8%AF%DB%8C%D9%84_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1_Xata_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1_%D8%AA%D8%A7%D8%B1\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0628\u062f\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631 Xata \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u062a\u0627\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D9%87%D9%85%DA%AF%D8%A7%D9%85_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%BE%D8%B1%D9%88%D9%81%D8%A7%DB%8C%D9%84_%D9%87%D8%A7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_Xata_SDK\" >\u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Xata SDK<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D9%BE%D8%B1%D8%B3_%D9%88_%D8%AC%D9%88_Xata\" >\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u0633 \u0648 \u062c\u0648 Xata<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%D8%AF%D8%B1_%D8%B5%D9%81%D8%AD%D8%A7%D8%AA_Cloudflare\" >\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u0631 \u0635\u0641\u062d\u0627\u062a Cloudflare<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%DA%86%D8%B1%D8%A7_%D8%B5%D9%81%D8%AD%D8%A7%D8%AA_Cloudflare%D8%9F\" >\u0686\u0631\u0627 \u0635\u0641\u062d\u0627\u062a Cloudflare\u061f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA_%D8%A8%DB%8C%D8%B4%D8%AA%D8%B1\" >\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/cms-%da%af%d8%a7%d9%84%d8%b1%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\/#%D8%A8%D8%B9%D8%AF%D8%B4_%DA%86%DB%8C%D8%9F\" >\u0628\u0639\u062f\u0634 \u0686\u06cc\u061f<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%82%D8%A8%D9%84_%D8%A7%D8%B2_%D8%A7%DB%8C%D9%86%DA%A9%D9%87_%D8%B4%D8%B1%D9%88%D8%B9_%DA%A9%D9%86%DB%8C\"><\/span>\n<p>  \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7\"><\/span>\n<p>  \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0634\u0645\u0627 \u0628\u0647 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%BE%D8%B4%D8%AA%D9%87_%D9%81%D9%86%DB%8C\"><\/span>\n<p>  \u067e\u0634\u062a\u0647 \u0641\u0646\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"table-wrapper-paragraph\">\n<table>\n<thead>\n<tr>\n<th>\u0641\u0646 \u0622\u0648\u0631\u06cc<\/th>\n<th>\u0634\u0631\u062d<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u06a9\u0634 \u0631\u0641\u062a\u0646<\/td>\n<td>\u067e\u0644\u062a \u0641\u0631\u0645 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0648 \u0628\u0644\u0627\u062f\u0631\u0646\u06af.<\/td>\n<\/tr>\n<tr>\n<td>Astro<\/td>\n<td>\u0686\u0627\u0631\u0686\u0648\u0628\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0648\u0628 \u0633\u0627\u06cc\u062a \u0647\u0627\u06cc \u0633\u0631\u06cc\u0639 \u0648 \u0645\u062f\u0631\u0646 \u0628\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0628\u0627\u0637\u0646 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631.<\/td>\n<\/tr>\n<tr>\n<td>Tailwind CSS<\/td>\n<td>\u0686\u0627\u0631\u0686\u0648\u0628 CSS \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0637\u0631\u062d \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<\/td>\n<\/tr>\n<tr>\n<td>\u0635\u0641\u062d\u0627\u062a Cloudflare<\/td>\n<td>\u0628\u0633\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0648\u0628 \u0628\u0627 \u062a\u0648\u0632\u06cc\u0639 \u062c\u0647\u0627\u0646\u06cc.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_Xata\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Xata<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc Xata \u0648 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u060c \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftfk5e1hr54vhua951nfd.png\" alt=\"\u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"203\" title=\"\"><\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u0627\u0633\u062a\u060c \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 <code>uploads<\/code>\u060c \u06a9\u0647 \u0634\u0627\u0645\u0644 \u062a\u0645\u0627\u0645 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0622\u067e\u0644\u0648\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6hi8dq14akkztlca06t.png\" alt=\"\u06cc\u06a9 \u062c\u062f\u0648\u0644 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"265\" title=\"\"><\/p>\n<p>\u0639\u0627\u0644\u06cc!  \u0627\u06a9\u0646\u0648\u0646\u060c \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f <strong>\u0637\u0631\u062d\u0648\u0627\u0631\u0647<\/strong> \u062f\u0631 \u0646\u0648\u0627\u0631 \u06a9\u0646\u0627\u0631\u06cc \u0633\u0645\u062a \u0686\u067e \u0648 \u062f\u0648 \u062c\u062f\u0648\u0644 \u062f\u06cc\u06af\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>profiles<\/code> \u0648 <code>photographs<\/code>.  \u0628\u0627 \u06a9\u0644\u06cc\u06a9 \u06a9\u0631\u062f\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f <strong>\u06cc\u06a9 \u062c\u062f\u0648\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/strong>.  \u062c\u062f\u0627\u0648\u0644 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0634\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0646\u0645\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0639\u06a9\u0633(\u0647\u0627\u06cc) \u0622\u067e\u0644\u0648\u062f \u0634\u062f\u0647 \u06a9\u0627\u0631\u0628\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3r5innliq035mfdpmrqn.png\" alt=\"\u062c\u062f\u0648\u0644 \u062a\u0627\u0632\u0647 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647\" loading=\"lazy\" width=\"800\" height=\"269\" title=\"\"><\/p>\n<p>\u0628\u0627 \u062a\u06a9\u0645\u06cc\u0644 \u0622\u0646\u060c \u0634\u0645\u0627 \u0637\u0631\u062d \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhj6jo5z9o1gtmybog87p.png\" alt=\"\u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u062f\" loading=\"lazy\" width=\"800\" height=\"281\" title=\"\"><\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u062f\u0631 \u062c\u062f\u0627\u0648\u0644\u06cc \u06a9\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D8%B7%D8%B1%D8%AD%D9%88%D8%A7%D8%B1%D9%87\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u0637\u0631\u062d\u0648\u0627\u0631\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 <code>uploads<\/code> \u062c\u062f\u0648\u0644\u060c \u0634\u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062a\u0645\u0627\u0645 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u0641\u0642\u0637 (\u0648 \u0628\u062f\u0648\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631) \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u0647\u0645\u0627\u0646 \u0634\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0627\u0631\u062c\u0627\u0639 \u062f\u0647\u06cc\u062f.<\/p>\n<p>\u0628\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u0628\u0647 \u0646\u0627\u0645 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f <code>image<\/code>.  \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646 \u0648\u0638\u06cc\u0641\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0631\u0627 \u0628\u0631 \u0639\u0647\u062f\u0647 \u062f\u0627\u0631\u062f <code>file<\/code> \u0627\u0634\u06cc\u0627\u0621 \u0631\u0627 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f  \u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u0627\u060c <code>file<\/code> \u062a\u0627\u06cc\u067e \u0634\u06cc \u0628\u0631\u0627\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0647\u0631 \u0646\u0648\u0639 \u062d\u0628\u0627\u0628 (\u0645\u0627\u0646\u0646\u062f PDF\u060c \u0641\u0648\u0646\u062a\u200c\u0647\u0627 \u0648 \u063a\u06cc\u0631\u0647) \u0628\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u062d\u062f\u0627\u06a9\u062b\u0631 1 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f <strong>+ \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646<\/strong> \u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f <strong>\u0641\u0627\u06cc\u0644<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm3rqdn7benw5gol0m5qn.png\" alt=\"\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646\" loading=\"lazy\" width=\"800\" height=\"452\" title=\"\"><\/p>\n<p>\u0646\u0627\u0645 \u0633\u062a\u0648\u0646 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f <code>image<\/code> \u0648 \u0628\u0631\u0627\u06cc \u0639\u0645\u0648\u0645\u06cc \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0627 (\u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0628\u0627\u0632\u062f\u06cc\u062f \u0627\u0632 \u06af\u0627\u0644\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u0648\u0646\u062f)\u060c \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f <strong>\u0641\u0627\u06cc\u0644 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0639\u0645\u0648\u0645\u06cc \u06a9\u0646\u06cc\u062f<\/strong> \u06af\u0632\u06cc\u0646\u0647.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbcljoqiz4wafu5ifvf9r.png\" alt=\"\u0641\u0627\u06cc\u0644 \u0647\u0627 \u0631\u0627 \u0639\u0645\u0648\u0645\u06cc \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"267\" title=\"\"><\/p>\n<p>\u062f\u0631 <code>profiles<\/code> \u062c\u062f\u0648\u0644\u060c \u0645\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f Slug \u0645\u0646\u062d\u0635\u0631\u0628\u0647\u200c\u0641\u0631\u062f \u06a9\u0627\u0631\u0628\u0631 (\u0645\u0633\u06cc\u0631 \u0622\u062f\u0631\u0633 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06af\u0627\u0644\u0631\u06cc \u0622\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f)\u060c \u0646\u0627\u0645 \u0622\u0646\u200c\u0647\u0627\u060c \u062a\u0635\u0648\u06cc\u0631 \u0622\u0646\u200c\u0647\u0627 \u0628\u0627 \u0627\u0628\u0639\u0627\u062f \u0622\u0646\u060c \u0648 \u0647\u0634 base64 \u062a\u0635\u0648\u06cc\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u0645.  \u0634\u0645\u0627 \u0627\u0632 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0647\u0634 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f 0 \u0635\u0641\u062d\u0647(\u0647\u0627\u06cc) \u062a\u063a\u06cc\u06cc\u0631 \u0686\u06cc\u062f\u0645\u0627\u0646 \u062a\u062c\u0645\u0639\u06cc (CLS) \u0628\u0647\u0631\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0631\u062f.<\/p>\n<p>\u0628\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u0628\u0647 \u0646\u0627\u0645 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f <code>slug<\/code>.  \u0645\u0633\u0626\u0648\u0644 \u062d\u0641\u0638 \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u0628\u0648\u062f\u0646 \u0647\u0631 \u0646\u0645\u0627\u06cc\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f.  \u06a9\u0644\u06cc\u06a9 <strong>+ \u06cc\u06a9 \u0633\u062a\u0648\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/strong>\u060c \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f <code>String<\/code> \u062a\u0627\u06cc\u067e \u06a9\u0631\u062f\u0647 \u0648 \u0646\u0627\u0645 \u0633\u062a\u0648\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f <code>slug<\/code>.  \u0628\u0631\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0627\u0633\u0644\u0627\u06af \u062a\u0646\u0647\u0627 \u0628\u0627 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631\u060c \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f <code>Unique<\/code> \u0648\u06cc\u0698\u06af\u06cc \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0648\u0631\u0648\u062f\u06cc \u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u062f\u0631\u062c \u0646\u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwza0psek5iq1hu0df29i.png\" alt=\"\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u0631\u0627\u0628\" loading=\"lazy\" width=\"800\" height=\"298\" title=\"\"><\/p>\n<p>\u0628\u0647 \u0631\u0648\u0634\u06cc \u0645\u0634\u0627\u0628\u0647\u060c \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>name<\/code>\u060c <code>image<\/code>\u060c <code>height<\/code> \u0648 <code>width<\/code> \u0633\u062a\u0648\u0646 \u0647\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 <code>String<\/code> \u0646\u0648\u0639 (\u0627\u0645\u0627 \u0646\u0647 <code>Unique<\/code>).<\/p>\n<p>\u0639\u0627\u0644\u06cc\u0647 \u0645\u06cc\u062a\u0648\u0646\u06cc \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc <code>imageHash<\/code> \u0645\u0627\u0646\u0646\u062f <code>Text<\/code> \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0648\u0631\u0627\u064b \u0647\u0634 \u062a\u0627\u0631\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u062a\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f <code>200 KB<\/code>.  \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 <code>String<\/code> \u06cc\u06a9 \u0646\u0648\u0639 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0628\u06cc\u0634 \u0627\u0632 2048 \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u060c \u0628\u0627\u06cc\u062f \u0628\u0647 \u0622\u0646 \u0633\u0648\u0626\u06cc\u0686 \u06a9\u0646\u06cc\u062f <code>Text<\/code> \u0646\u0648\u0639  \u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u0633\u062a\u0648\u0646 Xata \u0628\u06cc\u0634\u062a\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n<p>\u06a9\u0644\u06cc\u06a9 <strong>+ \u06cc\u06a9 \u0633\u062a\u0648\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/strong> \u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f <code>Text<\/code> \u0646\u0648\u0639<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9k5ycjgjegr73b2dm1k.png\" alt=\"\u06cc\u06a9 \u0633\u062a\u0648\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"451\" title=\"\"><\/p>\n<p>\u0646\u0627\u0645 \u0633\u062a\u0648\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f <code>imageHash<\/code> \u0648 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f <code>Create column<\/code>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyiurs8po34ca2o6ufld.png\" alt=\"\u0646\u0627\u0645 \u0633\u062a\u0648\u0646 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"448\" title=\"\"><\/p>\n<p>\u0628\u0633\u06cc\u0627\u0631 \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0622\u0646\u0686\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u0645\u060c \u062f\u0631 <code>photographs<\/code> \u062c\u062f\u0648\u0644\u060c \u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>name<\/code>\u060c <code>tagline<\/code>\u060c <code>image<\/code>\u060c <code>height<\/code>\u060c <code>width<\/code>\u060c <code>profile-slug<\/code>\u060c \u0648 <code>slug<\/code> \u0645\u0627\u0646\u0646\u062f <code>String<\/code> \u0646\u0648\u0639 \u0648 <code>imageHash<\/code> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 <code>Text<\/code> \u0633\u062a\u0648\u0646 \u0631\u0627 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f  \u0633\u062a\u0648\u0646 \u0647\u0627 <code>slug<\/code> \u0648 <code>profile-slug<\/code> \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0628\u0647 \u0639\u06a9\u0633 \u0648 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631 \u0631\u062c\u0648\u0639 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0648\u0633\u062a \u062f\u0627\u0634\u062a\u0646\u064a!  \u0628\u0627 \u062a\u0645\u0627\u0645 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647\u060c \u0637\u0631\u062d \u0646\u0647\u0627\u06cc\u06cc \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f&#8230;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0555isfim5jgyntzj9p.png\" alt=\"\u0637\u0631\u062d \u0648\u0627\u0631\u0647 \u0646\u0647\u0627\u06cc\u06cc\" loading=\"lazy\" width=\"800\" height=\"567\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%B4%D9%85%D8%A7\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc\u060c \u0645\u062e\u0632\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0647\u0645\u0647 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0627\u0633\u062a \u0628\u06cc\u0627\u0645\u0648\u0632\u06cc\u062f.  \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u067e\u0631\u0648\u0698\u0647\u060c \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>git clone https:\/\/github.com\/rishi-raj-jain\/image-gallery-cms-with-astro-xata-cloudflare\n<span class=\"nb\">cd <\/span>image-gallery-cms-with-astro-xata-cloudflare\npnpm <span class=\"nb\">install<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Xata_%D8%B1%D8%A7_%D8%A8%D8%A7_Astro_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  Xata \u0631\u0627 \u0628\u0627 Astro \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0627\u0632 Xata \u0628\u0627 Astro\u060c Xata CLI \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0633\u0631\u0627\u0633\u0631\u06cc \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>npm <span class=\"nb\">install<\/span> @xata.io\/cli <span class=\"nt\">-g<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633\u060c Xata CLI \u0631\u0627 \u0645\u062c\u0627\u0632 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0627 \u062d\u0633\u0627\u0628 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u0645\u0631\u062a\u0628\u0637 \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>xata auth login\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2frsra80yrjxdf33823.png\" alt=\"\u0645\u062c\u0648\u0632 CLI \u0631\u0627 \u0635\u0627\u062f\u0631 \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"227\" title=\"\"><\/p>\n<p>\u0639\u0627\u0644\u06cc!  \u0627\u06a9\u0646\u0648\u0646 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 Xata CLI \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>xata init <span class=\"nt\">--db<\/span> https:\/\/Rishi-Raj-Jain-s-workspace-80514q.ap-southeast-2.xata.sh\/db\/image-gallery-cms-with-xata-astro-cloudflare\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u062f\u063a\u0627\u0645 \u0628\u0627 Astro \u0628\u0647 \u0686\u0646\u062f \u0633\u0648\u0627\u0644 \u06cc\u06a9\u0628\u0627\u0631\u0647 \u0633\u0631\u06cc\u0639 \u0627\u0632 CLI \u067e\u0627\u0633\u062e \u062f\u0647\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvx8xjkqcdj82pckujvw.png\" alt=\"Xata init \u0628\u0627 \u067e\u0631\u0648\u0698\u0647 Astro\" loading=\"lazy\" width=\"800\" height=\"850\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%DA%A9%D8%B4%D9%86_%D9%87%D8%A7%DB%8C_%D9%81%D8%B1%D9%85_%D8%AF%D8%B1_Astro\"><\/span>\n<p>  \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u06a9\u0634\u0646 \u0647\u0627\u06cc \u0641\u0631\u0645 \u062f\u0631 Astro<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0639\u0628\u0627\u0631\u062a\u060c \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0631 \u0641\u0631\u0645 \u0627\u0631\u0633\u0627\u0644\u06cc \u0631\u0627 \u0645\u062c\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>ViewTransitions<\/code> \u062c\u0632\u0621.<br \/>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0641\u0631\u0645 \u0641\u0639\u0627\u0644 \u0634\u062f\u0647 \u0628\u0627 \u0627\u0646\u062a\u0642\u0627\u0644 view \u0628\u0647 \u062f\u0627\u062e\u0644 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a <code>src\/layouts\/Layout.astro<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"o\">---<\/span>\n<span class=\"c1\">\/\/ File: src\/layouts\/Layout.astro<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">ViewTransitions<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">astro:transitions<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"o\">---<\/span>\n\n<span class=\"o\">&lt;<\/span><span class=\"nx\">html<\/span><span class=\"o\">&gt;<\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"nx\">head<\/span><span class=\"o\">&gt;<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">ViewTransitions<\/span> <span class=\"o\">\/&gt;<\/span>\n    <span class=\"c\"><!--<\/span> <span class=\"nx\">stuff<\/span> <span class=\"nx\">here<\/span> <span class=\"o\">--><\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"sr\">\/head<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"o\">&lt;<\/span><span class=\"nx\">body<\/span><span class=\"o\">&gt;<\/span>\n    <span class=\"c\"><!--<\/span> <span class=\"nx\">stuff<\/span> <span class=\"nx\">here<\/span> <span class=\"o\">--><\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"sr\">\/body<\/span><span class=\"err\">&gt;\n<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/html<\/span><span class=\"err\">&gt;\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0627\u0637\u0646 \u0648 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0645\u0639\u06cc\u0646 \u062f\u0631 Astro \u062c\u0627\u0646\u0645\u0627\u06cc\u06cc \u06a9\u0646\u06cc\u062f.  \u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f\u060c \u0641\u0631\u0645 \u0627\u0631\u0633\u0627\u0644\u06cc \u062d\u0627\u0648\u06cc \u0646\u0627\u0645\u060c \u0627\u0633\u0644\u0627\u06af \u0648 URL \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u06cc\u062f\u060c \u0622\u0646 \u0631\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0647\u0634 Base64 \u062a\u0627\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f\u060c \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 Xata \u062e\u0648\u062f \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u062d\u0648\u0647 \u0627\u0646\u062c\u0627\u0645 \u0647\u0645\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u0633\u06cc\u0631 Astro \u0622\u0645\u062f\u0647 \u0627\u0633\u062a (<code>src\/pages\/profie\/create.astro<\/code>).<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"o\">---<\/span>\n<span class=\"c1\">\/\/ File: src\/pages\/profile\/create.astro<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">form<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">''<\/span><span class=\"p\">,<\/span> <span class=\"na\">created<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"na\">redirect<\/span><span class=\"p\">:<\/span> <span class=\"kc\">null<\/span> <span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">Astro<\/span><span class=\"p\">.<\/span><span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">method<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">POST<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Indicate that the request is being processed<\/span>\n    <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">form<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span>\n\n    <span class=\"c1\">\/\/ Get the user email from the form submissions<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">Astro<\/span><span class=\"p\">.<\/span><span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nf\">formData<\/span><span class=\"p\">()<\/span>\n\n        <span class=\"c1\">\/\/ Get the user slug, name, and image: URL, width, and height from the form submissions<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">userSlug<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">slug<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">string<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">userName<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">name<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">string<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">userImage<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">custom_upload_user__uploaded_image_url<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">string<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">userImageW<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">custom_upload_user__uploaded_w<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">string<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">userImageH<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">custom_upload_user__uploaded_h<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">string<\/span>\n\n        <span class=\"c1\">\/\/ Create a blur url of the user image<\/span>\n\n        <span class=\"c1\">\/\/ Create the user record with the slug<\/span>\n\n        <span class=\"c1\">\/\/ Redirect user to the next step<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ pass<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"o\">---<\/span>\n\n<span class=\"o\">&lt;<\/span><span class=\"nx\">form<\/span> <span class=\"nx\">method<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">post<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">autocomplete<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">off<\/span><span class=\"dl\">\"<\/span><span class=\"o\">&gt;<\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"nx\">Upload<\/span> <span class=\"nx\">selector<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">user<\/span><span class=\"dl\">\"<\/span> <span class=\"o\">\/&gt;<\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"nx\">input<\/span> <span class=\"nx\">required<\/span> <span class=\"nx\">name<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">name<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">type<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">text<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Name<\/span><span class=\"dl\">\"<\/span> <span class=\"o\">\/&gt;<\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"nx\">input<\/span>\n    <span class=\"nx\">required<\/span>\n    <span class=\"nx\">name<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">slug<\/span><span class=\"dl\">\"<\/span>\n    <span class=\"nx\">type<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">text<\/span><span class=\"dl\">\"<\/span>\n    <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Slug (e.g. rishi-raj-jain)<\/span><span class=\"dl\">\"<\/span>\n  <span class=\"o\">\/&gt;<\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"nx\">button<\/span> <span class=\"nx\">type<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">submit<\/span><span class=\"dl\">\"<\/span><span class=\"o\">&gt;<\/span>\n    <span class=\"nx\">Create<\/span> <span class=\"nx\">Profile<\/span> <span class=\"o\">&amp;<\/span><span class=\"nx\">rarr<\/span><span class=\"p\">;<\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"sr\">\/button<\/span><span class=\"err\">&gt;\n<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/form<\/span><span class=\"err\">&gt;\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D8%A2%D9%BE%D9%84%D9%88%D8%AF_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1_%D8%AF%D8%B1_%D8%B3%D9%85%D8%AA_%D8%B3%D8%B1%D9%88%D8%B1_%D8%A8%D8%A7_Xata_SDK\"><\/span>\n<p>  \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u067e\u0644\u0648\u062f \u062a\u0635\u0648\u06cc\u0631 \u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0628\u0627 Xata SDK<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcwk4g45jlw1fceez17s.png\" alt=\"(\/photograph\/create - \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0639\u06a9\u0633 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0622\u067e\u0644\u0648\u062f \u0645\u06cc \u06a9\u0646\u0646\u062f)\" loading=\"lazy\" width=\"800\" height=\"475\" title=\"\"><\/p>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0635\u0641\u062d\u0627\u062a Cloudflare \u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627 100 \u0645\u06af\u0627\u0628\u0627\u06cc\u062a \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u067e\u0644\u0648\u062f \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.  \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc Astro \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f (<code>src\/pages\/api\/upload\/index.ts<\/code>) \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc POST \u062d\u0627\u0648\u06cc \u0628\u0627\u06cc\u0646\u0631\u06cc \u0647\u0627\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Xata SDK \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0622\u0646\u0647\u0627 \u062f\u0631 <code>uploads<\/code> \u062c\u062f\u0648\u0644.<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0646\u062c\u0627\u0645 \u0628\u0631\u0631\u0633\u06cc \u0647\u0627\u06cc \u0633\u0644\u0627\u0645\u062a \u0631\u0648\u06cc \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u060c \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f \u062c\u062f\u06cc\u062f (\u062e\u0627\u0644\u06cc) \u062f\u0631 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>uploads<\/code> \u062c\u062f\u0648\u0644\u060c \u0648 \u0633\u067e\u0633 \u0627\u0632 \u0622\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0631\u062c\u0639 \u0628\u0631\u0627\u06cc \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631 (\u0628\u0627\u0641\u0631) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Xata TypeScript SDK \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u067e\u0633 \u0627\u0632 \u062a\u06a9\u0645\u06cc\u0644 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632\u060c \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0628\u0627 \u062a\u0635\u0648\u06cc\u0631 \u067e\u0627\u0633\u062e \u0645\u06cc \u062f\u0647\u062f <code>public URL<\/code>\u060c <code>height<\/code> \u0648 <code>width<\/code> \u0628\u0647 \u0642\u0633\u0645\u062a \u062c\u0644\u0648\u06cc\u06cc \u0628\u0631\u06af\u0631\u062f\u06cc\u062f \u062a\u0627 \u062f\u0631 \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0641\u0631\u0645 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"c1\">\/\/ File: src\/pages\/api\/upload\/index.ts<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">json<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@\/lib\/response<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">getXataClient<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@\/xata<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"kd\">type<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">APIContext<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">astro<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Import the Xata Client created by the Xata CLI in src\/xata.ts<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">xata<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getXataClient<\/span><span class=\"p\">();<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">POST<\/span><span class=\"p\">({<\/span> <span class=\"nx\">request<\/span> <span class=\"p\">}:<\/span> <span class=\"nx\">APIContext<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nf\">formData<\/span><span class=\"p\">();<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">file<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">file<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"c1\">\/\/ Do sanity checks on file<\/span>\n\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Obtain the uploaded file as an ArrayBuffer<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">fileBuffer<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">file<\/span><span class=\"p\">.<\/span><span class=\"nf\">arrayBuffer<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"c1\">\/\/ Create an empty record in the uploads table<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">record<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">xata<\/span><span class=\"p\">.<\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">uploads<\/span><span class=\"p\">.<\/span><span class=\"nf\">create<\/span><span class=\"p\">({});<\/span>\n    <span class=\"c1\">\/\/ Using the id of the record, insert the file using upload method<\/span>\n    <span class=\"k\">await<\/span> <span class=\"nx\">xata<\/span><span class=\"p\">.<\/span><span class=\"nx\">files<\/span><span class=\"p\">.<\/span><span class=\"nf\">upload<\/span><span class=\"p\">({<\/span> <span class=\"na\">table<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">uploads<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">record<\/span><span class=\"p\">:<\/span> <span class=\"nx\">record<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">,<\/span> <span class=\"na\">column<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">image<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span> <span class=\"nx\">fileBuffer<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n      <span class=\"na\">mediaType<\/span><span class=\"p\">:<\/span> <span class=\"nx\">file<\/span><span class=\"p\">.<\/span><span class=\"kd\">type<\/span>\n    <span class=\"p\">});<\/span>\n\n    <span class=\"c1\">\/\/ Read the inserted image<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">image<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">xata<\/span><span class=\"p\">.<\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">uploads<\/span><span class=\"p\">.<\/span><span class=\"nf\">read<\/span><span class=\"p\">(<\/span><span class=\"nx\">record<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"c1\">\/\/ Destructure its dimension and public URL<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">url<\/span><span class=\"p\">,<\/span> <span class=\"nx\">attributes<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">image<\/span><span class=\"p\">;<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">height<\/span><span class=\"p\">,<\/span> <span class=\"nx\">width<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">attributes<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nf\">json<\/span><span class=\"p\">({<\/span> <span class=\"nx\">height<\/span><span class=\"p\">,<\/span> <span class=\"nx\">width<\/span><span class=\"p\">,<\/span> <span class=\"nx\">url<\/span> <span class=\"p\">},<\/span> <span class=\"mi\">200<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Handle errors<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D8%AA%D8%A8%D8%AF%DB%8C%D9%84_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1_Xata_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1_%D8%AA%D8%A7%D8%B1\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0628\u062f\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631 Xata \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u062a\u0627\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0646\u0645\u0627\u06cc\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 <code>\/profile\/create<\/code> \u0635\u0641\u062d\u0647\u060c \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631 <code>profiles<\/code> \u062c\u062f\u0648\u0644\u060c \u06cc\u06a9 \u0628\u0627\u0641\u0631 Base64 \u0627\u0632 \u062a\u0635\u0627\u0648\u06cc\u0631 \u062a\u0627\u0631 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.  \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u062a\u0627\u0631 \u0627\u0632 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0635\u0644\u06cc\u060c \u0627\u0632 \u062a\u0628\u062f\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631 Xata \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u0628\u0627 \u062a\u0628\u062f\u06cc\u0644\u200c\u0647\u0627\u06cc \u062a\u0635\u0648\u06cc\u0631 Xata\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 URL \u0639\u0645\u0648\u0645\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0627\u0631\u062a\u0641\u0627\u0639 \u0648 \u0639\u0631\u0636 \u0645\u0639\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0645\u062d\u0648 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u062e\u0627\u0635\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0627\u0628\u0639\u0627\u062f 100 \u062f\u0631 100 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u062a\u0627 75 \u062f\u0631\u0635\u062f \u0646\u0633\u0628\u062a \u0628\u0647 \u062a\u0635\u0648\u06cc\u0631 \u0627\u0635\u0644\u06cc \u062a\u0627\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"o\">---<\/span>\n<span class=\"c1\">\/\/ File: src\/pages\/profile\/create.astro<\/span>\n\n<span class=\"c1\">\/\/ Import the Xata Client created by the Xata CLI in src\/xata.ts<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">getXataClient<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@\/xata<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"c1\">\/\/ Import the transformImage function by Xata Client<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">transformImage<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@xata.io\/client<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">form<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">''<\/span><span class=\"p\">,<\/span> <span class=\"na\">created<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"na\">redirect<\/span><span class=\"p\">:<\/span> <span class=\"kc\">null<\/span> <span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">Astro<\/span><span class=\"p\">.<\/span><span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">method<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">POST<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n\n    <span class=\"c1\">\/\/ Fetch the Xata instance<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">xata<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getXataClient<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"c1\">\/\/ ...<\/span>\n\n    <span class=\"c1\">\/\/ Create a blur URL of the user image<\/span>\n\n  <span class=\"c1\">\/\/ Using Xata image transformations to obtain the image URL<\/span>\n    <span class=\"c1\">\/\/ with a fixed height and width and 75% of it blurred<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">userBlurURL<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">transformImage<\/span><span class=\"p\">(<\/span><span class=\"nx\">userImageURL<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">blur<\/span><span class=\"p\">:<\/span> <span class=\"mi\">75<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">width<\/span><span class=\"p\">:<\/span> <span class=\"mi\">100<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">height<\/span><span class=\"p\">:<\/span> <span class=\"mi\">100<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">})<\/span>\n\n  <span class=\"c1\">\/\/ Create a Base64 hash of the blur image URL<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">userBlurHash<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">createBlurHash<\/span><span class=\"p\">(<\/span><span class=\"nx\">userBlurURL<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\">\/\/ Create the user record with the slug<\/span>\n\n    <span class=\"c1\">\/\/ Redirect user to the next step<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"o\">---<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%87%D9%85%DA%AF%D8%A7%D9%85_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%BE%D8%B1%D9%88%D9%81%D8%A7%DB%8C%D9%84_%D9%87%D8%A7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_Xata_SDK\"><\/span>\n<p>  \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Xata SDK<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u062a\u0627\u0631\u060c \u0622\u062e\u0631\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u062f\u0631 \u0627\u0646\u062a\u0634\u0627\u0631 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u0647\u0627 (\u0645\u0634\u0627\u0628\u0647 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u0646\u062a\u0634\u0627\u0631 \u0639\u06a9\u0633 \u0647\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f) \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Xata TypeScript SDK \u0627\u0633\u062a. <code>create<\/code> \u0641\u0631\u0645\u0627\u0646  \u062f\u0631 Astro\u060c \u0645\u0627 \u067e\u06cc\u0627\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0642\u0628\u0644 \u0627\u0632 \u0647\u062f\u0627\u06cc\u062a \u0628\u0647 \u0635\u0641\u062d\u0647 \u0622\u067e\u0644\u0648\u062f \u0639\u06a9\u0633 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0631\u0646\u062f\u0631 \u0634\u0631\u0637\u06cc \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u06cc\u06a9 \u0646\u0634\u0627\u0646\u0647 \u0628\u0635\u0631\u06cc \u0627\u0632 \u0645\u0648\u0641\u0642\u06cc\u062a \u06cc\u0627 \u0634\u06a9\u0633\u062a \u0639\u0645\u0644\u06cc\u0627\u062a \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u0627\u06cc \u067e\u0627\u0633\u062e\u06af\u0648 \u0648 \u06a9\u0627\u0631\u0628\u0631\u067e\u0633\u0646\u062f \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"o\">---<\/span>\n<span class=\"c1\">\/\/ File: src\/pages\/profile\/create.astro<\/span>\n\n<span class=\"c1\">\/\/ Import the Xata Client created by Xata CLI in src\/xata.ts<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">getXataClient<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@\/xata<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">form<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">''<\/span><span class=\"p\">,<\/span> <span class=\"na\">created<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span> <span class=\"na\">redirect<\/span><span class=\"p\">:<\/span> <span class=\"kc\">null<\/span> <span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">Astro<\/span><span class=\"p\">.<\/span><span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">method<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">POST<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n\n    <span class=\"c1\">\/\/ ...<\/span>\n\n    <span class=\"c1\">\/\/ Create the user record with the slug<\/span>\n  <span class=\"k\">await<\/span> <span class=\"nx\">xata<\/span><span class=\"p\">.<\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">profiles<\/span><span class=\"p\">.<\/span><span class=\"nf\">create<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">slug<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userSlug<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userName<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">image<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userImage<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">width<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userImageW<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">height<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userImageH<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">imageHash<\/span><span class=\"p\">:<\/span> <span class=\"nx\">userBlurHash<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">})<\/span>\n\n    <span class=\"c1\">\/\/ Send the user to photograph upload page<\/span>\n  <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">redirect<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">\/photograph\/create<\/span><span class=\"dl\">'<\/span>\n\n  <span class=\"c1\">\/\/ Set the relevant message for the user<\/span>\n  <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Published profile succesfully. Redirecting you to upload your first photograph...<\/span><span class=\"dl\">'<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"o\">---<\/span>\n\n<span class=\"c\"><!--<\/span> <span class=\"nx\">Render<\/span> <span class=\"nx\">conditional<\/span> <span class=\"nx\">states<\/span> <span class=\"nx\">using<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">onboarded<\/span> <span class=\"nx\">flag<\/span> <span class=\"o\">--><\/span>\n<span class=\"p\">{<\/span>\n  <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">form<\/span> <span class=\"o\">&amp;&amp;<\/span>\n    <span class=\"p\">(<\/span><span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">created<\/span> <span class=\"p\">?<\/span> <span class=\"p\">(<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span> <span class=\"kd\">class<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">rounded bg-green-100 px-3 py-1<\/span><span class=\"dl\">\"<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"p\">)<\/span> <span class=\"p\">:<\/span> <span class=\"p\">(<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span> <span class=\"kd\">class<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">rounded bg-red-100 px-3 py-1<\/span><span class=\"dl\">\"<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"p\">))<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c\"><!--<\/span> <span class=\"nx\">Profile<\/span> <span class=\"nx\">Form<\/span> <span class=\"o\">--><\/span>\n\n<span class=\"c\"><!--<\/span> <span class=\"nx\">Redirect<\/span> <span class=\"nx\">user<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">next<\/span> <span class=\"nx\">location<\/span> <span class=\"o\">--><\/span>\n<span class=\"o\">&lt;<\/span><span class=\"nx\">script<\/span> <span class=\"nx\">define<\/span><span class=\"p\">:<\/span><span class=\"nx\">vars<\/span><span class=\"o\">=<\/span><span class=\"p\">{{<\/span> <span class=\"na\">success<\/span><span class=\"p\">:<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">created<\/span><span class=\"p\">,<\/span> <span class=\"na\">location<\/span><span class=\"p\">:<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">redirect<\/span> <span class=\"p\">}}<\/span><span class=\"o\">&gt;<\/span>\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">success<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">setTimeout<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nb\">window<\/span><span class=\"p\">.<\/span><span class=\"nx\">location<\/span><span class=\"p\">.<\/span><span class=\"nx\">href<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">location<\/span>\n    <span class=\"p\">},<\/span> <span class=\"mi\">1000<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"o\">&lt;<\/span><span class=\"sr\">\/script<\/span><span class=\"err\">&gt;\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D9%BE%D8%B1%D8%B3_%D9%88_%D8%AC%D9%88_Xata\"><\/span>\n<p>  \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u0633 \u0648 \u062c\u0648 Xata<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0635\u0641\u062d\u0647 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631 (<code>src\/pages\/[profile]\/index.astro<\/code>) \u0627\u0632 Xata Client \u0628\u0631\u0627\u06cc \u0648\u0627\u06a9\u0634\u06cc \u067e\u0648\u06cc\u0627 \u0648 \u0646\u0645\u0627\u06cc\u0634 \u062a\u0645\u0627\u0645 \u0639\u06a9\u0633 \u0647\u0627 (\u0635\u0641\u062d\u0647 \u0628\u0646\u062f\u06cc \u0646\u0634\u062f\u0647) \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0646\u0645\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631 \u062e\u0627\u0635 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0631\u0627\u06cc \u062c\u0630\u0628 \u0628\u0635\u0631\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0647 \u0645\u062d\u0636 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u06af\u0627\u0644\u0631\u06cc\u060c \u0627\u0632 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>imageHash<\/code> \u0645\u0642\u062f\u0627\u0631 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 \u062a\u0635\u0627\u0648\u06cc\u0631 (\u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc).  \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 CLS \u0627\u0632 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>width<\/code> \u0648 <code>height<\/code> \u0645\u0642\u0627\u062f\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639 \u0645\u0631\u0648\u0631\u06af\u0631 \u0627\u0632 \u0627\u0628\u0639\u0627\u062f \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u0638\u0627\u0631 \u062a\u0635\u0627\u0648\u06cc\u0631.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"o\">---<\/span>\n<span class=\"c1\">\/\/ File: src\/pages\/[profile]\/index.astro<\/span>\n\n<span class=\"c1\">\/\/ Import the Xata Client created by Xata CLI in src\/xata.ts<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">getXataClient<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@\/xata<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"nx\">Layout<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@\/layouts\/Layout.astro<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"c1\">\/\/ Get the profile slug from url path<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">profile<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Astro<\/span><span class=\"p\">.<\/span><span class=\"nx\">params<\/span>\n\n<span class=\"c1\">\/\/ Fetch the Xata instance<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">xata<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getXataClient<\/span><span class=\"p\">()<\/span>\n\n<span class=\"c1\">\/\/ Get all the photographs related to the profile<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">profilePhotographs<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">xata<\/span><span class=\"p\">.<\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">photographs<\/span>\n                                                        <span class=\"c1\">\/\/ Filter the results to the specific profile<\/span>\n                                                        <span class=\"p\">.<\/span><span class=\"nf\">filter<\/span><span class=\"p\">({<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">profile-slug<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"nx\">profile<\/span> <span class=\"p\">})<\/span>\n                                                        <span class=\"c1\">\/\/ Get all the photographs<\/span>\n                                                        <span class=\"p\">.<\/span><span class=\"nf\">getAll<\/span><span class=\"p\">()<\/span>\n<span class=\"o\">---<\/span>\n\n<span class=\"o\">&lt;<\/span><span class=\"nx\">Layout<\/span> <span class=\"nx\">className<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">flex flex-col<\/span><span class=\"dl\">\"<\/span><span class=\"o\">&gt;<\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span> <span class=\"kd\">class<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">columns-1 gap-0 md:columns-2 lg:columns-3<\/span><span class=\"dl\">\"<\/span><span class=\"o\">&gt;<\/span>\n    <span class=\"p\">{<\/span>\n      <span class=\"nx\">profilePhotographs<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span><span class=\"p\">(<\/span>\n        <span class=\"p\">({<\/span> <span class=\"na\">width<\/span><span class=\"p\">:<\/span> <span class=\"nx\">photoW<\/span><span class=\"p\">,<\/span> <span class=\"na\">height<\/span><span class=\"p\">:<\/span> <span class=\"nx\">photoH<\/span><span class=\"p\">,<\/span> <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"nx\">photoName<\/span><span class=\"p\">,<\/span> <span class=\"na\">image<\/span><span class=\"p\">:<\/span> <span class=\"nx\">photoImageURL<\/span><span class=\"p\">,<\/span> <span class=\"na\">tagline<\/span><span class=\"p\">:<\/span> <span class=\"nx\">photoTagline<\/span><span class=\"p\">,<\/span> <span class=\"na\">imageHash<\/span><span class=\"p\">:<\/span> <span class=\"nx\">photoImageHash<\/span> <span class=\"p\">},<\/span> <span class=\"nx\">_<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n                    <span class=\"p\">{<\/span><span class=\"cm\">\/* Destructure the width and height to prevent CLS *\/<\/span><span class=\"p\">}<\/span>\n          <span class=\"o\">&lt;<\/span><span class=\"nx\">img<\/span>\n            <span class=\"nx\">width<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">photoW<\/span><span class=\"p\">}<\/span>\n            <span class=\"nx\">height<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">photoH<\/span><span class=\"p\">}<\/span>\n            <span class=\"nx\">alt<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">photoName<\/span><span class=\"p\">}<\/span>\n            <span class=\"nx\">src<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">photoImageURL<\/span><span class=\"p\">}<\/span>\n                        <span class=\"p\">{<\/span><span class=\"cm\">\/* Do not lazy load the first image that's loaded into the DOM *\/<\/span><span class=\"p\">}<\/span>\n            <span class=\"nx\">loading<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">_<\/span> <span class=\"o\">===<\/span> <span class=\"mi\">0<\/span> <span class=\"p\">?<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">eager<\/span><span class=\"dl\">'<\/span> <span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">lazy<\/span><span class=\"dl\">'<\/span><span class=\"p\">}<\/span>\n            <span class=\"kd\">class<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">transform bg-cover bg-center bg-no-repeat will-change-auto<\/span><span class=\"dl\">\"<\/span>\n                        <span class=\"p\">{<\/span><span class=\"cm\">\/* Create a blur effect with the imageHash stored *\/<\/span><span class=\"p\">}<\/span>\n            <span class=\"nx\">style<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"s2\">`background-image: url(<\/span><span class=\"p\">${<\/span><span class=\"nx\">photoImageHash<\/span><span class=\"p\">}<\/span><span class=\"s2\">); transform: translate3d(0px, 0px, 0px);`<\/span><span class=\"p\">}<\/span>\n          <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"p\">),<\/span>\n      <span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/Layout<\/span><span class=\"err\">&gt;\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frm7igjlt8jnwwvkzsldm.png\" alt=\"(\u06af\u0627\u0644\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 - \u0627\u0631\u0627\u0626\u0647 \u062a\u0635\u0627\u0648\u06cc\u0631 \u062a\u0627\u0631 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627)\" loading=\"lazy\" width=\"800\" height=\"521\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9pl4fg9oa42bum8bce6.png\" alt=\"(\u06af\u0627\u0644\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 - \u067e\u0633 \u0627\u0632 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0627\u0645\u0644)\" loading=\"lazy\" width=\"800\" height=\"451\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%D8%AF%D8%B1_%D8%B5%D9%81%D8%AD%D8%A7%D8%AA_Cloudflare\"><\/span>\n<p>  \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u0631 \u0635\u0641\u062d\u0627\u062a Cloudflare<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u062e\u0632\u0646 \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u0631 Cloudflare \u0627\u0633\u062a.  \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0627 Cloudflare \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f<\/p>\n<ol>\n<li>\u0628\u0627 \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u06cc\u06a9 \u0645\u062e\u0632\u0646 GitHub \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u06a9\u0644\u06cc\u06a9 <strong>\u0627\u06cc\u062c\u0627\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646<\/strong> \u062f\u0631 \u0628\u062e\u0634 Workers &#038; Pages \u062f\u0627\u0634\u0628\u0648\u0631\u062f Cloudflare.<\/li>\n<li>\u062d\u0631\u06a9\u062a \u0628\u0647 <strong>\u0635\u0641\u062d\u0627\u062a<\/strong> \u0631\u0627 \u0628\u0632\u0646\u06cc\u062f \u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f <strong>\u0628\u0647 Git \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f<\/strong>.<\/li>\n<li>\u0645\u062e\u0632\u0646 GitHub \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0631\u0648\u0698\u0647 \u062c\u062f\u06cc\u062f \u062e\u0648\u062f \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u062f.<\/li>\n<li>\u0628\u0647 \u067e\u0627\u06cc\u06cc\u0646 \u0627\u0633\u06a9\u0631\u0648\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f <strong>\u0686\u0627\u0631\u0686\u0648\u0628 \u0627\u0632 \u067e\u06cc\u0634 \u062a\u0639\u06cc\u06cc\u0646 \u0634\u062f\u0647<\/strong> \u0628\u0647 <strong>Astro<\/strong>.<\/li>\n<li>\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0627\u0632 <code>.env<\/code> \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc<\/li>\n<li>\u06a9\u0644\u06cc\u06a9 <strong>\u0630\u062e\u06cc\u0631\u0647 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631<\/strong> \u0648 \u0628\u0647 \u067e\u0631\u0648\u0698\u0647 \u0628\u0631\u06af\u0631\u062f\u06cc\u062f <strong>\u062a\u0646\u0638\u06cc\u0645\u0627\u062a<\/strong> > <strong>\u06a9\u0627\u0631\u06a9\u0631\u062f<\/strong>.<\/li>\n<li>\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 <code>nodejs_compat<\/code> \u0628\u0647 <strong>\u067e\u0631\u0686\u0645 \u0647\u0627\u06cc \u0633\u0627\u0632\u06af\u0627\u0631\u06cc<\/strong> \u0628\u062e\u0634<\/li>\n<li>\u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u06cc\u062f!  \ud83d\ude80<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"%DA%86%D8%B1%D8%A7_%D8%B5%D9%81%D8%AD%D8%A7%D8%AA_Cloudflare%D8%9F\"><\/span>\n<p>  \u0686\u0631\u0627 \u0635\u0641\u062d\u0627\u062a Cloudflare\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Cloudflare Pages \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u062e\u0627\u0635 \u0645\u062a\u0645\u0627\u06cc\u0632 \u0628\u0648\u062f \u0632\u06cc\u0631\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u062a\u0627 100 \u0645\u06af\u0627\u0628\u0627\u06cc\u062a \u0631\u0627 \u062f\u0631 \u0637\u0631\u062d \u0631\u0627\u06cc\u06af\u0627\u0646 \u062e\u0648\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.  \u0627\u06cc\u0646 \u0628\u0647 \u062f\u0648\u0631 \u0632\u062f\u0646 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a 4.5 \u0645\u06af\u0627\u0628\u0627\u06cc\u062a \u062f\u0631 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0645\u062e\u062a\u0644\u0641 \u06a9\u0645\u06a9 \u06a9\u0631\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA_%D8%A8%DB%8C%D8%B4%D8%AA%D8%B1\"><\/span>\n<p>  \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0642\u06cc\u0642 \u062a\u0631\u060c \u0645\u0646\u0627\u0628\u0639 \u0630\u06a9\u0631 \u0634\u062f\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B9%D8%AF%D8%B4_%DA%86%DB%8C%D8%9F\"><\/span>\n<p>  \u0628\u0639\u062f\u0634 \u0686\u06cc\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06af\u0631 \u0628\u0627\u0632\u062e\u0648\u0631\u062f\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0631\u0628\u0627\u0631\u0647 Xata \u0628\u06cc\u0634\u062a\u0631 \u0628\u062f\u0627\u0646\u06cc\u062f\u060c \u06cc\u0627 \u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0631 \u0648\u0628\u0644\u0627\u06af \u06cc\u0627 \u0622\u0645\u0648\u0632\u0634 \u0627\u062c\u062a\u0645\u0627\u0639\u06cc \u0645\u0634\u0627\u0631\u06a9\u062a \u06a9\u0646\u06cc\u062f\u060c \u062e\u0648\u0634\u062d\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u06cc\u0645 \u0627\u0632 \u0634\u0645\u0627 \u0628\u0634\u0646\u0648\u06cc\u0645.  \u062f\u0631 Discord \u0628\u0627 \u0645\u0627 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06cc\u0627 \u0628\u0647 \u0645\u0627 \u0628\u067e\u06cc\u0648\u0646\u062f\u06cc\u062f <a href=\"https:\/\/twitter.com\/xata\" rel=\"nofollow noopener\" target=\"_blank\">X |  \u062a\u0648\u06cc\u06cc\u062a\u0631<\/a>.  \u0633\u0627\u062e\u062a\u0645\u0627\u0646 \u0645\u0628\u0627\u0631\u06a9 \ud83e\udd8b<\/p>\n<\/p><\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a\u060c \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 CMS \u06af\u0627\u0644\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0628\u0627 \u0635\u0641\u062d\u0627\u062a Astro\u060c Xata \u0648 Cloudflare \u0635\u062d\u0628\u062a \u0645\u06cc \u06a9\u0646\u0645. \u0634\u0645\u0627 \u06cc\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0631\u0641\u062a \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647: Xata \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u06cc\u06a9 \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 \u0648 \u062a\u0627\u0631 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0647\u0645\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0635\u0641\u062d\u0647 \u0628\u0646\u062f\u06cc \u0648\u0627\u06a9\u0634\u06cc \u06a9\u0646\u06cc\u062f &hellip;<\/p>\n","protected":false},"author":2,"featured_media":66301,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media.dev.to\/cdn-cgi\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1h9y9iby35hpvmdbrf6.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-66300","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/66300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=66300"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/66300\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/66301"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=66300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=66300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=66300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}