#strapi — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #strapi, aggregated by home.social.
-
Как сделать типобезопасный клиент для Strapi: разбираем вывод типов из populate на уровне компилятора
У любого запроса к Strapi есть неприятное свойство: форма ответа зависит от того, что вы попросили. Запросили статью без populate — в ответе только скалярные поля. Добавили populate: { category: true } — появилась вложенная категория. Добавили fields: ['name'] внутри populate — категория пришла обрезанной. Один и тот же эндпоинт возвращает десятки разных форм, и статический TypeScript-интерфейс ни одну из них честно не описывает: он либо врёт (обещает поля, которых в этом конкретном ответе нет), либо бесполезен ( any ). В этой статье я разберу, как решить эту проблему кодогенерацией: как достать схему из работающего Strapi, сгенерировать по ней TypeScript-клиент и — самое интересное — как заставить систему типов вывести форму ответа прямо из аргумента populate на этапе компиляции. Подход Prisma-подобный: возвращаемый тип метода зависит от того, что вы передали в вызов. Код — на TypeScript; клиент, на примере которого я всё показываю, open-source под MIT, ссылка в конце. Как это устроено
https://habr.com/ru/articles/1059984/
#TypeScript #Strapi #кодогенерация #вывод_типов #conditional_types #дженерики #tsmorph #Headless_CMS #Prisma #типобезопасность
-
Как сделать типобезопасный клиент для Strapi: разбираем вывод типов из populate на уровне компилятора
У любого запроса к Strapi есть неприятное свойство: форма ответа зависит от того, что вы попросили. Запросили статью без populate — в ответе только скалярные поля. Добавили populate: { category: true } — появилась вложенная категория. Добавили fields: ['name'] внутри populate — категория пришла обрезанной. Один и тот же эндпоинт возвращает десятки разных форм, и статический TypeScript-интерфейс ни одну из них честно не описывает: он либо врёт (обещает поля, которых в этом конкретном ответе нет), либо бесполезен ( any ). В этой статье я разберу, как решить эту проблему кодогенерацией: как достать схему из работающего Strapi, сгенерировать по ней TypeScript-клиент и — самое интересное — как заставить систему типов вывести форму ответа прямо из аргумента populate на этапе компиляции. Подход Prisma-подобный: возвращаемый тип метода зависит от того, что вы передали в вызов. Код — на TypeScript; клиент, на примере которого я всё показываю, open-source под MIT, ссылка в конце. Как это устроено
https://habr.com/ru/articles/1059984/
#TypeScript #Strapi #кодогенерация #вывод_типов #conditional_types #дженерики #tsmorph #Headless_CMS #Prisma #типобезопасность
-
Как сделать типобезопасный клиент для Strapi: разбираем вывод типов из populate на уровне компилятора
У любого запроса к Strapi есть неприятное свойство: форма ответа зависит от того, что вы попросили. Запросили статью без populate — в ответе только скалярные поля. Добавили populate: { category: true } — появилась вложенная категория. Добавили fields: ['name'] внутри populate — категория пришла обрезанной. Один и тот же эндпоинт возвращает десятки разных форм, и статический TypeScript-интерфейс ни одну из них честно не описывает: он либо врёт (обещает поля, которых в этом конкретном ответе нет), либо бесполезен ( any ). В этой статье я разберу, как решить эту проблему кодогенерацией: как достать схему из работающего Strapi, сгенерировать по ней TypeScript-клиент и — самое интересное — как заставить систему типов вывести форму ответа прямо из аргумента populate на этапе компиляции. Подход Prisma-подобный: возвращаемый тип метода зависит от того, что вы передали в вызов. Код — на TypeScript; клиент, на примере которого я всё показываю, open-source под MIT, ссылка в конце. Как это устроено
https://habr.com/ru/articles/1059984/
#TypeScript #Strapi #кодогенерация #вывод_типов #conditional_types #дженерики #tsmorph #Headless_CMS #Prisma #типобезопасность
-
Having my first truly frustrating experience with #Claude in a long time working on a #strapi app.
Like usual, I created a plan. Even there it did a bad job at grasping what is already there.
But then applying it repeatedly deviated from the plan, didn't apply existing patterns (even though I repeatedly prompted it to follow established patterns).
Wonder if it's due to my lack of strapi experience, the fact that strapi is ultra flexible meaning there are too many options?
-
Having my first truly frustrating experience with #Claude in a long time working on a #strapi app.
Like usual, I created a plan. Even there it did a bad job at grasping what is already there.
But then applying it repeatedly deviated from the plan, didn't apply existing patterns (even though I repeatedly prompted it to follow established patterns).
Wonder if it's due to my lack of strapi experience, the fact that strapi is ultra flexible meaning there are too many options?
-
Having my first truly frustrating experience with #Claude in a long time working on a #strapi app.
Like usual, I created a plan. Even there it did a bad job at grasping what is already there.
But then applying it repeatedly deviated from the plan, didn't apply existing patterns (even though I repeatedly prompted it to follow established patterns).
Wonder if it's due to my lack of strapi experience, the fact that strapi is ultra flexible meaning there are too many options?
-
Having my first truly frustrating experience with #Claude in a long time working on a #strapi app.
Like usual, I created a plan. Even there it did a bad job at grasping what is already there.
But then applying it repeatedly deviated from the plan, didn't apply existing patterns (even though I repeatedly prompted it to follow established patterns).
Wonder if it's due to my lack of strapi experience, the fact that strapi is ultra flexible meaning there are too many options?
-
Having my first truly frustrating experience with #Claude in a long time working on a #strapi app.
Like usual, I created a plan. Even there it did a bad job at grasping what is already there.
But then applying it repeatedly deviated from the plan, didn't apply existing patterns (even though I repeatedly prompted it to follow established patterns).
Wonder if it's due to my lack of strapi experience, the fact that strapi is ultra flexible meaning there are too many options?
-
Deploying Strapi should not feel like solving a complex puzzle 🧩.
We have mapped out the last required steps to help you successfully configure and deploy your project with ease 🚀
From choosing your Git workflow to making final changes, everything you need is laid out step by step 🛠️
👉 https://developer.upsun.com/docs/get-started/stacks/strapi
-
Deploying Strapi should not feel like solving a complex puzzle 🧩.
We have mapped out the last required steps to help you successfully configure and deploy your project with ease 🚀
From choosing your Git workflow to making final changes, everything you need is laid out step by step 🛠️
👉 https://developer.upsun.com/docs/get-started/stacks/strapi
-
Deploying Strapi should not feel like solving a complex puzzle 🧩.
We have mapped out the last required steps to help you successfully configure and deploy your project with ease 🚀
From choosing your Git workflow to making final changes, everything you need is laid out step by step 🛠️
👉 https://developer.upsun.com/docs/get-started/stacks/strapi
-
Deploying Strapi should not feel like solving a complex puzzle 🧩.
We have mapped out the last required steps to help you successfully configure and deploy your project with ease 🚀
From choosing your Git workflow to making final changes, everything you need is laid out step by step 🛠️
👉 https://developer.upsun.com/docs/get-started/stacks/strapi
-
Headless CMS, или движки без руководящего компонента
В 1865 году британский журналист Томас Майн Рид написал роман "Всадник без головы", который послужит нам отправной точкой в вопросе о том, что же такое "безголовая" CMS и какие из них представлены сейчас на рынке веб-разработки. Давайте разбираться
https://habr.com/ru/articles/1051306/
#headless #headless_cms #strapi #directus #payload #fastapi #cms
-
Headless CMS, или движки без руководящего компонента
В 1865 году британский журналист Томас Майн Рид написал роман "Всадник без головы", который послужит нам отправной точкой в вопросе о том, что же такое "безголовая" CMS и какие из них представлены сейчас на рынке веб-разработки. Давайте разбираться
https://habr.com/ru/articles/1051306/
#headless #headless_cms #strapi #directus #payload #fastapi #cms
-
Headless CMS, или движки без руководящего компонента
В 1865 году британский журналист Томас Майн Рид написал роман "Всадник без головы", который послужит нам отправной точкой в вопросе о том, что же такое "безголовая" CMS и какие из них представлены сейчас на рынке веб-разработки. Давайте разбираться
https://habr.com/ru/articles/1051306/
#headless #headless_cms #strapi #directus #payload #fastapi #cms
-
Lighthouse 100 / 100: как мы повесили GTM, GA4, Яндекс.Метрику и Clarity на статический сайт — и не уронили скорость
Когда маркетологи хотят всё: сырые данные в GA4, запись сессий в Метрике, хитмапы в Clarity и при этом «Lighthouse 100» в PageSpeed Insights — приходится изобретать. Расскажу, как мы это сделали на небольшом проекте и во что это обошлось по времени и нервам. Проект — нишевый агрегатор российских хостинг-провайдеров. Более 120 страниц в sitemap, 31 статья, десятки категорий услуг, живые цены, сравнения. Стек: Astro 6 + Strapi 5 + Tailwind 4, плюс Partytown, PostgreSQL, Nginx и обычный VPS на Ubuntu. Сайт собирается в статику во время билда, никакого SSR в рантайме нет. На desktop — Lighthouse 100 / 100 / 100 / 100. На mobile с жёстким throttling (4x slow CPU) — 99 / 100 / 100 / 100. В реальных условиях и по Chrome UX Report — 100 везде. LCP на desktop — 0,5 секунды, на mobile throttled — 1,7 секунды. CLS — ноль. TBT — 10 ms на мобильном и 0 ms на десктопе.
https://habr.com/ru/articles/1042228/
#Astro #Strapi #Tailwind_CSS #Partytown #Lighthouse #Core_Web_Vitals #Web_Worker #GTM #performance #SSG
-
Lighthouse 100 / 100: как мы повесили GTM, GA4, Яндекс.Метрику и Clarity на статический сайт — и не уронили скорость
Когда маркетологи хотят всё: сырые данные в GA4, запись сессий в Метрике, хитмапы в Clarity и при этом «Lighthouse 100» в PageSpeed Insights — приходится изобретать. Расскажу, как мы это сделали на небольшом проекте и во что это обошлось по времени и нервам. Проект — нишевый агрегатор российских хостинг-провайдеров. Более 120 страниц в sitemap, 31 статья, десятки категорий услуг, живые цены, сравнения. Стек: Astro 6 + Strapi 5 + Tailwind 4, плюс Partytown, PostgreSQL, Nginx и обычный VPS на Ubuntu. Сайт собирается в статику во время билда, никакого SSR в рантайме нет. На desktop — Lighthouse 100 / 100 / 100 / 100. На mobile с жёстким throttling (4x slow CPU) — 99 / 100 / 100 / 100. В реальных условиях и по Chrome UX Report — 100 везде. LCP на desktop — 0,5 секунды, на mobile throttled — 1,7 секунды. CLS — ноль. TBT — 10 ms на мобильном и 0 ms на десктопе.
https://habr.com/ru/articles/1042228/
#Astro #Strapi #Tailwind_CSS #Partytown #Lighthouse #Core_Web_Vitals #Web_Worker #GTM #performance #SSG
-
Lighthouse 100 / 100: как мы повесили GTM, GA4, Яндекс.Метрику и Clarity на статический сайт — и не уронили скорость
Когда маркетологи хотят всё: сырые данные в GA4, запись сессий в Метрике, хитмапы в Clarity и при этом «Lighthouse 100» в PageSpeed Insights — приходится изобретать. Расскажу, как мы это сделали на небольшом проекте и во что это обошлось по времени и нервам. Проект — нишевый агрегатор российских хостинг-провайдеров. Более 120 страниц в sitemap, 31 статья, десятки категорий услуг, живые цены, сравнения. Стек: Astro 6 + Strapi 5 + Tailwind 4, плюс Partytown, PostgreSQL, Nginx и обычный VPS на Ubuntu. Сайт собирается в статику во время билда, никакого SSR в рантайме нет. На desktop — Lighthouse 100 / 100 / 100 / 100. На mobile с жёстким throttling (4x slow CPU) — 99 / 100 / 100 / 100. В реальных условиях и по Chrome UX Report — 100 везде. LCP на desktop — 0,5 секунды, на mobile throttled — 1,7 секунды. CLS — ноль. TBT — 10 ms на мобильном и 0 ms на десктопе.
https://habr.com/ru/articles/1042228/
#Astro #Strapi #Tailwind_CSS #Partytown #Lighthouse #Core_Web_Vitals #Web_Worker #GTM #performance #SSG
-
🎤 Yesterday morning I attended @aprilorg's Conférences éclairs. It was amazing to reconnect with Isa and see inspiring presentations, like Natacha's work on @lessanspages, Éric Le Bihan's #Linux4All, @julie's talk about #Strapi, @bookynette's talk on "what kind of volunteer are you?" and the closing presentation by Olivier Deiber on "Repairing the Future."
🔗: https://wiki.april.org/w/Assemblee_generale_28_mars_2026
🎨 In the afternoon we took our 5-year-old to the #Louvre Museum for the first time, she'd been obsessed with the Mona Lisa for 2 years and it was amazing to show her the original... as well as other paintings by Leonardo.
🎟️ Grateful that I had signed up for the Amis du Louvre (their annual membership program) so we were able to skip the lines to go in (200 people in front at least). And now I can take my little one to the Louvre whenever I want, since it's free for people under 18. So cool!
-
🎤 Yesterday morning I attended @aprilorg's Conférences éclairs. It was amazing to reconnect with Isa and see inspiring presentations, like Natacha's work on @lessanspages, Éric Le Bihan's #Linux4All, @julie's talk about #Strapi, @bookynette's talk on "what kind of volunteer are you?" and the closing presentation by Olivier Deiber on "Repairing the Future."
🔗: https://wiki.april.org/w/Assemblee_generale_28_mars_2026
🎨 In the afternoon we took our 5-year-old to the #Louvre Museum for the first time, she'd been obsessed with the Mona Lisa for 2 years and it was amazing to show her the original... as well as other paintings by Leonardo.
🎟️ Grateful that I had signed up for the Amis du Louvre (their annual membership program) so we were able to skip the lines to go in (200 people in front at least). And now I can take my little one to the Louvre whenever I want, since it's free for people under 18. So cool!
-
🎤 Yesterday morning I attended @aprilorg's Conférences éclairs. It was amazing to reconnect with Isa and see inspiring presentations, like Natacha's work on @lessanspages, Éric Le Bihan's #Linux4All, @julie's talk about #Strapi, @bookynette's talk on "what kind of volunteer are you?" and the closing presentation by Olivier Deiber on "Repairing the Future."
🔗: https://wiki.april.org/w/Assemblee_generale_28_mars_2026
🎨 In the afternoon we took our 5-year-old to the #Louvre Museum for the first time, she'd been obsessed with the Mona Lisa for 2 years and it was amazing to show her the original... as well as other paintings by Leonardo.
🎟️ Grateful that I had signed up for the Amis du Louvre (their annual membership program) so we were able to skip the lines to go in (200 people in front at least). And now I can take my little one to the Louvre whenever I want, since it's free for people under 18. So cool!
-
🎤 Yesterday morning I attended @aprilorg's Conférences éclairs. It was amazing to reconnect with Isa and see inspiring presentations, like Natacha's work on @lessanspages, Éric Le Bihan's #Linux4All, @julie's talk about #Strapi, @bookynette's talk on "what kind of volunteer are you?" and the closing presentation by Olivier Deiber on "Repairing the Future."
🔗: https://wiki.april.org/w/Assemblee_generale_28_mars_2026
🎨 In the afternoon we took our 5-year-old to the #Louvre Museum for the first time, she'd been obsessed with the Mona Lisa for 2 years and it was amazing to show her the original... as well as other paintings by Leonardo.
🎟️ Grateful that I had signed up for the Amis du Louvre (their annual membership program) so we were able to skip the lines to go in (200 people in front at least). And now I can take my little one to the Louvre whenever I want, since it's free for people under 18. So cool!
-
🎤 Yesterday morning I attended @aprilorg's Conférences éclairs. It was amazing to reconnect with Isa and see inspiring presentations, like Natacha's work on @lessanspages, Éric Le Bihan's #Linux4All, @julie's talk about #Strapi, @bookynette's talk on "what kind of volunteer are you?" and the closing presentation by Olivier Deiber on "Repairing the Future."
🔗: https://wiki.april.org/w/Assemblee_generale_28_mars_2026
🎨 In the afternoon we took our 5-year-old to the #Louvre Museum for the first time, she'd been obsessed with the Mona Lisa for 2 years and it was amazing to show her the original... as well as other paintings by Leonardo.
🎟️ Grateful that I had signed up for the Amis du Louvre (their annual membership program) so we were able to skip the lines to go in (200 people in front at least). And now I can take my little one to the Louvre whenever I want, since it's free for people under 18. So cool!
-
No, strapi! You are not GDPR compliant if tracking is opt-out. You certainly aren't since you removed the opt-out option, and with it any information that tracking is taking place, from the admin UI in version 5.
-
No, strapi! You are not GDPR compliant if tracking is opt-out. You certainly aren't since you removed the opt-out option, and with it any information that tracking is taking place, from the admin UI in version 5.
-
No, strapi! You are not GDPR compliant if tracking is opt-out. You certainly aren't since you removed the opt-out option, and with it any information that tracking is taking place, from the admin UI in version 5.
-
No, strapi! You are not GDPR compliant if tracking is opt-out. You certainly aren't since you removed the opt-out option, and with it any information that tracking is taking place, from the admin UI in version 5.
-
Полный деплой Strapi CMS + Nuxt.js на Ubuntu
Пошаговое руководство по развёртыванию блога с нуля: Strapi CMS (админка и API) и Nuxt.js (фронтенд) на VPS Ubuntu. В итоге — работающий блог за Nginx с возможностью включить SSL по отдельной инструкции. Узнать подробнее
-
Полный деплой Strapi CMS + Nuxt.js на Ubuntu
Пошаговое руководство по развёртыванию блога с нуля: Strapi CMS (админка и API) и Nuxt.js (фронтенд) на VPS Ubuntu. В итоге — работающий блог за Nginx с возможностью включить SSL по отдельной инструкции. Узнать подробнее
-
Полный деплой Strapi CMS + Nuxt.js на Ubuntu
Пошаговое руководство по развёртыванию блога с нуля: Strapi CMS (админка и API) и Nuxt.js (фронтенд) на VPS Ubuntu. В итоге — работающий блог за Nginx с возможностью включить SSL по отдельной инструкции. Узнать подробнее
-
I have added a feature request for Strapi admin.
If you use Strapi and find this useful, give it a thumb up so it has more weight.Thanks!
https://feedback.strapi.io/customization/p/add-a-global-toggle-in-the-admin-ui
-
I have added a feature request for Strapi admin.
If you use Strapi and find this useful, give it a thumb up so it has more weight.Thanks!
https://feedback.strapi.io/customization/p/add-a-global-toggle-in-the-admin-ui
-
I have added a feature request for Strapi admin.
If you use Strapi and find this useful, give it a thumb up so it has more weight.Thanks!
https://feedback.strapi.io/customization/p/add-a-global-toggle-in-the-admin-ui
-
I have added a feature request for Strapi admin.
If you use Strapi and find this useful, give it a thumb up so it has more weight.Thanks!
https://feedback.strapi.io/customization/p/add-a-global-toggle-in-the-admin-ui
-
Как я строил бэкенд с ментальностью фронтендера: история одного провала
Я в IT больше 10 лет. Начинал с верстки, вырос в фронтенд-разработчика, потом стал тимлидом, далее менеджером проектов и сейчас руковожу отделом разработки решений для бизнеса. Я знаю JavaScript. Я люблю JavaScript. И именно эта любовь сыграла со мной злую шутку. В индустрии есть опасная иллюзия: «Если ты знаешь JavaScript, ты – фулстек» . Node.js дал нам, фронтендерам, суперсилу. Мы можем писать серверный код на том же языке, что и клиентский. Мы можем использовать одни и те же типы, одни и те же библиотеки. Нам кажется, что разница между фронтендом и бэкендом — только в том, где выполняется код. В браузере нет fs (файловой системы), а на сервере нет window . Вот и вся разница, да? Нет. Разница не в синтаксисе. Разница в мышлении . И я узнал это самым тяжелым способом – положив релиз.
https://habr.com/ru/articles/996706/
#frontend #backend #nodejs #strapi #mongodb #redis #nuxt #fail
-
Как я строил бэкенд с ментальностью фронтендера: история одного провала
Я в IT больше 10 лет. Начинал с верстки, вырос в фронтенд-разработчика, потом стал тимлидом, далее менеджером проектов и сейчас руковожу отделом разработки решений для бизнеса. Я знаю JavaScript. Я люблю JavaScript. И именно эта любовь сыграла со мной злую шутку. В индустрии есть опасная иллюзия: «Если ты знаешь JavaScript, ты – фулстек» . Node.js дал нам, фронтендерам, суперсилу. Мы можем писать серверный код на том же языке, что и клиентский. Мы можем использовать одни и те же типы, одни и те же библиотеки. Нам кажется, что разница между фронтендом и бэкендом — только в том, где выполняется код. В браузере нет fs (файловой системы), а на сервере нет window . Вот и вся разница, да? Нет. Разница не в синтаксисе. Разница в мышлении . И я узнал это самым тяжелым способом – положив релиз.
https://habr.com/ru/articles/996706/
#frontend #backend #nodejs #strapi #mongodb #redis #nuxt #fail
-
Как я строил бэкенд с ментальностью фронтендера: история одного провала
Я в IT больше 10 лет. Начинал с верстки, вырос в фронтенд-разработчика, потом стал тимлидом, далее менеджером проектов и сейчас руковожу отделом разработки решений для бизнеса. Я знаю JavaScript. Я люблю JavaScript. И именно эта любовь сыграла со мной злую шутку. В индустрии есть опасная иллюзия: «Если ты знаешь JavaScript, ты – фулстек» . Node.js дал нам, фронтендерам, суперсилу. Мы можем писать серверный код на том же языке, что и клиентский. Мы можем использовать одни и те же типы, одни и те же библиотеки. Нам кажется, что разница между фронтендом и бэкендом — только в том, где выполняется код. В браузере нет fs (файловой системы), а на сервере нет window . Вот и вся разница, да? Нет. Разница не в синтаксисе. Разница в мышлении . И я узнал это самым тяжелым способом – положив релиз.
https://habr.com/ru/articles/996706/
#frontend #backend #nodejs #strapi #mongodb #redis #nuxt #fail
-
Silex v3.6.0-canary.1 is available
A big step toward easier CMS-driven websites \o/
The first integrations are: #Strapi, #Supabase, @WordPress, #GitLab, any #GraphQL API
Silex is free and open source software so it is important you help testing it. Especially if you build websites for clients!
Try it here: https://canary.silex.me
Feedback here: @[email protected] or @[email protected]🙏 @11ty
#Silex #NoCode #OpenSource #WebDesign #WebDevelopment #HeadlessCMS #JAMStack
-
Silex v3.6.0-canary.1 is available
A big step toward easier CMS-driven websites \o/
The first integrations are: #Strapi, #Supabase, @WordPress, #GitLab, any #GraphQL API
Silex is free and open source software so it is important you help testing it. Especially if you build websites for clients!
Try it here: https://canary.silex.me
Feedback here: @[email protected] or @[email protected]🙏 @11ty
#Silex #NoCode #OpenSource #WebDesign #WebDevelopment #HeadlessCMS #JAMStack
-
Silex v3.6.0-canary.1 is available
A big step toward easier CMS-driven websites \o/
The first integrations are: #Strapi, #Supabase, @WordPress, #GitLab, any #GraphQL API
Silex is free and open source software so it is important you help testing it. Especially if you build websites for clients!
Try it here: https://canary.silex.me
Feedback here: @[email protected] or @[email protected]🙏 @11ty
#Silex #NoCode #OpenSource #WebDesign #WebDevelopment #HeadlessCMS #JAMStack
-
Silex v3.6.0-canary.1 is available
A big step toward easier CMS-driven websites \o/
The first integrations are: #Strapi, #Supabase, @WordPress, #GitLab, any #GraphQL API
Silex is free and open source software so it is important you help testing it. Especially if you build websites for clients!
Try it here: https://canary.silex.me
Feedback here: @[email protected] or @[email protected]🙏 @11ty
#Silex #NoCode #OpenSource #WebDesign #WebDevelopment #HeadlessCMS #JAMStack
-
Silex v3.6.0-canary.1 is available
A big step toward easier CMS-driven websites \o/
The first integrations are: #Strapi, #Supabase, @WordPress, #GitLab, any #GraphQL API
Silex is free and open source software so it is important you help testing it. Especially if you build websites for clients!
Try it here: https://canary.silex.me
Feedback here: @[email protected] or @[email protected]🙏 @11ty
#Silex #NoCode #OpenSource #WebDesign #WebDevelopment #HeadlessCMS #JAMStack