For all of you who have found this video helpful, sometimes it is hard for me to trouble shoot issues in the comments. I am thinking of doing a biweekly Strapi open office hours stream. Comment here or like if this is something that you would like me to do.
yes please! also a subject that I want to know: what is the best way to secure a website that is based on strapi as backend? a demo of a react (or better: next.js) app that reads/stores data in strapi and is secured, maybe even with OAuth providers like google and facebook, would be awesome!
Honestly, if I didnt have your videos I would have dropped Strapi already. I am on the fence but you are keeping me on it. Thumbs up for the commitment to wear the same shirt.
This means a lot. Thank you. I will have more videos on the way. Let me know if there are any specific topics you are interested in. And yes. Same shirt for continuity.
It took a few hours and many videos and readings but this video is now making sense to me. Please keep up the good work. Working every day with strapi now.
The middlewear section is invaluable, thank you for showing this! Would be nice to show to set up custom api endpoint with validation and sanitisation.🎉
I plan on making more tutorials around strapi soon. In the meantime, you can check out this tutorial I am working on now. ruclips.net/p/PL7Q0DQYATmvgONvIWsy34aDkAtcdjsQLE&si=YvBxmwxB-MZ_HXMW
After a month of studying Strapi, this type of video becomes clearer. I didn't know about that trick in controller and middleware. Thank you very much.
Thank you. Glad you enjoyed it. I typically don't do too many tutorials on this channel. But I love Strapi. If you have any questions or need help with anything let me know. Strapi 5 is in the works. When it is out of beta I will make another in-depth tutorial.
So if I'm going to watch a E-Commerce tutorial (with no voice over instructions) using Strapi, will this video prepare me? I do understand the basics of api's.
Hi Paul, Nice tutorial, Very helpfull. I just started using Strapi. I am thing to use it for an online store project. My question is It it prossible to add custom api like for a feature Loyalty program for existing online shop customers?
Glad you enjoyed it. For your question, do you mean how to create a custom endpoint in Strapi that fits your use case? If so yes, you can either make it tied to an existing collection type or a custom end point via a plugin.
Hello Thanks, for the great tutorial i have one questions about the project: *It's it better landing page to be single type because it look like only 1 page it don't have couple of other landing pages? (Can you explain in details about this) Thanks in advanced!
Both approaches work. You can either use a single type or a collection type. It’s really up to you. If you know you will have just one landing make, it is OK to use a single type. But let’s say you have many products or services, and you want each service to have its landing page then using a collection type makes sense.
Hi Paul Bratslavsky, Thanks for great tutorial. I am currently looking for how to create graphql apis, and add custom apis like meilisearch in strapi instead of using meilisearch sdk on client apps. I want our all requests directed from strapi, so that we can customize and control the same. Requesting 1 crash course for these 2 topics: 1. GraphQL Apis 2. Custom apis like meilisearch or upload api to s3 via api to server.
Thanks for checking out the video. I will keep this in mind. I will add to my list to cover s3 buckets and milisearch. Also, do you have a specific reason for using GraphQL? For the most part, the same thing that you can accomplish with GraphQL you can do with REST using populate and filtering flags. So, for me, creating content specifically for GraphQL is at the bottom of my list.
Hi Paul, met you at the ATX NextJS meetup this past week :) Question, I want to use the Strapi on Digital Ocean option... all I need is just Strapi correct? But do I need SQL or Postgres as well? Basically I need to manage user registration, in additional each user will have a crypto portfolio array of coins. Is this something Strapi can handle all by itself? Or do I need to find a tutorial combining Postgres and Strapi to get this desired backend setup?
You would need to set up an instance of postgreql on digital ocean as well. If you need help setting Strapi up. Feel free to reach out. You can also dm me on twitter @codingthiry
Hey thank you for this. Ive got a quick question that brought me to this video. I’m building a website for my church, and I’m adding a BLOG & MEDIA page to the nav. These dynamic pages need to updated weekly, although there are other static pages like the landing page and others that wouldn’t need to be updated. What is the best way to go about this? For context I use React. Thank you.
Glad you enjoyed the video thank you for watching it. I would use Next js for the frontend. Also you can have the whole page static and when you add new content you can fire a hook that will rebuild your site and update your content. That is what we do on Strapi.io website. It’s is build with next js on the front end and of course using Strapi on the backend.
Very nice, I have it all running in about an hour! Populating is still pain in the bottom 😅, but I got the idea. One thing I didn't get, why using collection-type for a landing page 🤔?
You can use either single type or collection type really up to you. Let’s say you have many products and you want to have multiple landing pages then collection type make sense, but if you only need one landing page, it’s fine using single type.
that is still working progress, but I’m working on it, but I will also have a shorter tutorial out soon. That covers how to take a next project and add to Strapi.
Great tutorial Paul! Thanks! All steps very clear! Do you gonna do or do you have any plans about to do any video with the frontend consuming the strapi using vite-ssr-plugin?
You use the media library regardless, the only thing that change is the provider you use. By default Strapi uses the file system, which will store your data in the same place as your deployed project. But for production this is not ideal, and should use a dedicated storage like s3 or I like cloudinary.
Thank you for this tutorial! I was wondering if there is a way to rearrange items within multiple repeatable components. For example, if I have a component called "Col" with "Card" and "Button" repeatable components inside, how can I arrange them in this order: Card1, Button1, Card2, Button2, etc and not Card1, Card2, ... Button1, Button2...
Thanks so much paul for this amazing tutorial And really Strapi the best of headless CMS, Can you create an toturial about plugin users-permissions extending i need to override somethings on (create, find, update) functions but really there's no any docs explained it
Are you looking to do an update when creating users via api? Can you give me an example of what you are trying to do. That way I can have a better idea what to demonstrate. You can also checkout this section in the docs docs.strapi.io/dev-docs/plugins-extension#extending-a-plugin-s-interface
Apologies for the previous block on my comments; I'm not sure why it happened. What I'd like to achieve is an extension of the plugin's controllers and services functions. Specifically, I need to override some of the User Controllers functions like 'register,' 'connect,' 'find,' 'findOne,' and 'delete.' In my case, I want to perform some operations on the request body before these functions are executed. Additionally, I need to create a custom Controller and route within the plugin's user permissions section. For the user section, I'd like to add a new route, such as 'findOne (api/users/userName)' or 'findOne (api/users/email),' to enable searching for users by their username or email. If possible, I'd greatly appreciate your guidance and a tutorial on how to customize the backend, particularly in the plugin section, as described above.
Thanks for the great tutorial! Could you also display the last 3 blog articles (based on creation date), for example? And how? I don't mean via the REST API but via the CMS
@@CodingAfterThirty Yes, that's what I meant. I have now customized the API controller and service to accomplish this and it works. But it would be nicer via the Strapi admin panel.
yoo!! wonderful tutorial! I just had a question.. How do we work with DateTime data in the frontend. Suppose I have datetime data in Strapi and I want to separate date and time, How to do that?
I will make a follow up at some point and yes will use nexts. I have these two reference projects I worked on that you can checkout now to get some ideas how next works with Strapi. github.com/strapi/nextjs-corporate-starter And this based on the nearly released Next 14 tutorial. I converted it to use Strapi. github.com/strapi/strapi-next-14-dashboard-demo/tree/main
How is dynamic zone dynamic then... if we have to specify everything in the query. This means every time we add a new component in the dynamic zone, we need to update our query on the front-end to populate respective references. On live thats a new release of front-end app every time
It is dynamic in a sense that the content editor has predefined components that you created as a developer for them to chose from. There fore they can create the page with any of the components in any order or repetition they want. In terms of creating new components and dynamic zones on the fly. It is not something you are able to do in production or should be able to do. This prevents someone from making changes in production that can break the app. So you are limiting the content editor to use the only the available options which they can return in any order. For which you will have one predefined query. I would suggest to set up an example and play with it. To get an idea of how it works. If you haven’t already. .
@@CodingAfterThirty i guess i was looking at in complete picture. For every new component frontend also need a component to consume that data so we still need release. Thanks for your response.
Thanks man. Great video to start use strapi. Can you help me? I have collection of cities and collection places. City has field places. Relation 1 to many. How to make strapi availble to return list of (city, places.count)?
The three ways to handle this (easy way) are to get the data on the front end and just use the length property on the array to get the count of the places. (harder) create a custom control or modify the existing one to return places count as an additional value. You can read the docs here docs.strapi.io/dev-docs/backend-customization/controllers#adding-a-new-controller
A lot of thanks, I've enjoyed the video, This helps me. A Software Engineer presented me a proyect in strapi, I'm not going to tell you is my secret. Jajajaja
Hi, sorry for spamming you, but can't find proper content for my question. I have the following scenario: Collection Type called Articles. Each Article has dynamic zone whit repeatable Components (RichText, Accordion and etc.) Each of the components has description field. In the CMS Articles findMany how the filtering should look like to access the Dynamic Zone components? I tried different combinations like: { content: { ["$or"]: [ { description: { "$containsi": searchTerm } }, { components: { [operator]: [ { description: { "$containsi": searchTerm } } ] } },
Can you make a couple vidz on how to manage controllers and services? For example I need to ensure whenever a new therapist (I have 2 users: patient and therapist) registers on the FrontEnd automatically strapi places them in the user collection and at the same time creates a new entry in the profiles collection.
Hey. Yes. Since this was based on Strapi 4, I started a new series focusing on Strapi 5 that will be released in GA soon. ruclips.net/video/56h-FPt73Vs/видео.htmlsi=S8g_hpepTj9RAG0L This will also have a next.js complementary course to go with it. ruclips.net/video/Elme6d1Tk_E/видео.htmlsi=tjJhAjfOPjwdI3t8
Hello! Awesome video. I encountered an issue when "importing the backup file". I have an error message that says: links: 0 transfered (size: 0) (elapsed: 0 ms) [2024-01-03 15:52:57.639] error: [ERROR] insert into `components_elements_pricing_cards_services_links` (`pricing_card_id`, `service_id`, `service_order`) values (1, 7, 1) - FOREIGN KEY constraint failed I found a workaround by deleting the "data.db" in the ".tmp" folder but it's also deleting the created user. Any tips on how to fix this? Thank you in advance!
I will take a look and see if I can replicate the issue and figure out what is going on. For now after running your fix you can use Strapi export to create an updated backup file and it should not give you any future issues.
rm data.db worked but i really dont like that account is deleted. imagine this on production. do you have a fix for this? it was 2 weeks since you answered...
@@brancode I would love to help but I need a little more information on how you are running into the issue. I am not able to replicate it. Can some one show the steps to reproduce the issues. I am going to try to see if I can replicated. Thank you.
I have a question. I using PostgreSQL on an online server which is SSL is required. I can't connect my workspace for some reason because of this. Should I build my CMS on quickstart before I then connect it on production of did I just missed some .env variables?
I typically stick with SQLite in local development and, during deployment, will point to a production database. You can set up a local Postgres SQL database, but you will have to update your settings. You can check out the docs. I also made this video a while ago and will create an update, but the steps are still similar. ruclips.net/video/FeZyCxwb1aQ/видео.htmlsi=_Z_Ay0PE1TMfFvHw If it is an existing project you will have to install the pg package and update your configuration in config/database.js file. You can checkout this post for reference strapi.io/blog/postgre-sql-and-strapi-setup
@@gedeanggayogaprastawa968 Ah yea never mind. If the server SSL is required, it will not gonna work on Friday om npx start up. So I just only need to start up on quickstart and then follow the step on strapi to manually install pg and just remove to the config/data ase the old variables and exchange with in the instructions. Basically it's already alright now. Now I preferring my dynamic page.
@@gedeanggayogaprastawa968 Nah! I just discovered that if the pg server require ssl, the npx initial just don't work. So the right approach is start with quick start, then exchange the variables on config/database then install pg environment on the project, the chance the env file. I just need to ready my page to fetch the API but the Strapi is working as I test in postman.
Helpful but if you can post a detailed video on how to deploy on IIS or on a local server. Google didn't help at all finding resources on this subject, as if deploying on a local server or IIS is forbidden 😅. any help would be great!
Unfortunately I don’t deploy on Microsoft services. Sorry. I am not familiar with that particular deployments. Is there a reason why you are using IIS?
@@CodingAfterThirty were i work they already host the angular app on IIS and we are trying to find a way to keep everything related to that app (as backend) on the same server. We just started to use Strapi and we are testing things out, I have been reading a lot of recourses and trying to use pm2 but it's failing 😥
@@SimplyLifeInspiring I will see if I can find some resources on the IIS side of things, but what issues are you running into on pm2? You may find this helpful docs.strapi.io/dev-docs/deployment/process-manager
I like strapi helping me to develop backend easily. But I have a problem for deployment. As I created before was using Ruby on Rails as the backend. It was easy to deploy and doing migration whenever we want to deploy of our new code. I want to ask continues deploy and migration after we develop in the local pc to production live server.
Typically you would handle all your changes via git. In terms of easiest way to deploy. Using Strapi cloud is the the easiest. Than I would recommend digital ocean app platform. Render also has good deployment options.
One thing I noticed and confirmed is that 1. When you deleted the Landing Page it had an ID of 1 and after you imported the files the landing page had an ID of 2, *Is there a way to link the existing data with newly imported files.*
Currently strapi does not support partial import. So when we ran the import command all of the files were replaced by the import and since we were importing to an existing database Postgres generated new ids.
@@CodingAfterThirty eagerly waiting for the part where you connect this API with FE, I have been toying around strapi for almost 2 months and still have trouble connecting the dots
It’s perfect. But it depends on what type of projects you are building. If you are going to have non technical users, and lots of content, that is a perfect use case. What type of project are you thinking of building.
@@copaceticobserver you can, I just know a lot of folks use shpify for bulk of the functionality. But you can just use Strapi too. There is also Medusa an open source e comerce platform that you can also integrate with Strapi.
NICE demo, what I wish is these demos are provided by Strapi themselves: end to end examples, including how to login using oauth2, registration, password reset etc. These developer advocates miss the basics..I MEAN how long will it take a to build an example with both email and oauth2 providers, show registration, password reset, email verification etc. I think the community should learn from LARAVEL. the ecosystem that Taylor has build wrt Laravel is an example of how to win over the developer community
Thanks for your feedback. There are so many frameworks that to create example for each would be time consuming. In terms of Dev Rel missing there mark. I appreciate your feedback. I will focus on creating more up to date resource. In the past we were more focused on the Strapi side of things, and counted on our community to create framework specific examples. I am in the process of creating more example with a goal of creating a project for production. But I will build it in public, that way anyone in the community can ask questions via git issues or even help us to make the examples better. I know I can’t keep everyone one happy, so on Strapi official channel I will focus on Next 14, but here in my channel will focus on Astro, Remix and some Next js. Anyway. Thanks for the feedback. I really appreciate. As I am the only Dev Advocate at Strapi, so I have my work cut out for me. 🙂
@@CodingAfterThirty hey , I didn't know u were the dev advocate at Strapi-lol. I understand and appreciate the effort . Its easy for me to say its not good enough but frankly the reason for my comments was the fact that Strapi is such a good platform, I mean its auth system alone is worth it, but headless auth with outh2 is not easy. I am saying this as an enterprise level CTO with over 25 yrs experience. Even a tiny mistake and ur open to hacking. Thats why one end to en example on any one framework - Next, Nuxt , Sveltekit would ensure that people see the value that strapi has to offer- it can be a complete backend.. again my comments werent to offend but rather point out that and end to end example will drive adoption.
No offense taking. It is important to listen to the community to make sure that we are being as helpful as possible, and providing appropriate resources. I am in the process building an app that i want to deploy to production with real users to get a better understanding of using Strapi in the wild rather than just creating one of examples. Auth is complicated and securing your application is very complex. And anytime you have any more feedback that can help us do thing better. It is always appreciated. At the end, I just want to build cool things with Strapi and empower others to do the same.
@@CodingAfterThirty that’s great , really looking forward to this . Strapi can be a complete backend for many content heavy sites - for example supabase doesn’t have the content workflow that strapi has - Glad your looking into an end to example - if possible lao add email verification flow - I can see if i can also add 2 factor to that - Another thought - I think server actions in next js 14 is a great way to safely call all strapi Apis - what do you think ?
Take a look at this to see how to customize controllers docs.strapi.io/dev-docs/backend-customization/controllers#adding-a-new-controller And here on how to use populate and filtering to make custom queries. docs.strapi.io/dev-docs/api/rest/filters-locale-publication
I have a problem. If I call a get request for all data in the database I get an empy list, if I search one by one I get the element with corrisponding id. All elements are published.
I am getting this error while re-running the server. PLEASE HELP ME RESOLVE THIS. I've tried to find a solution from various articles but nothing seems to work. PS E:\Work\Strapi\my> yarn develop yarn run v1.22.21 $ strapi develop ⠋ Building build context [INFO] Including the following ENV variables as part of the JS bundle: - ADMIN_PATH - STRAPI_ADMIN_BACKEND_URL - STRAPI_TELEMETRY_DISABLED ✔ Building build context (89ms) ⠸ Creating admin[ERROR] Module not found: Error: E:\Work\Strapi\my\package.json (directory description file): Error: No file content [ERROR] There seems to be an unexpected error, try again with --debug for more information
I will be in Strapi’s open office hours on Strapi’s discord. You can stop by it’s Mon - Fri 12:30 pm cst. We can look at you project or if you want if you repos is public send me the link and I will test it and see what is happening.
I hello Paul I have tried to deploy strapi on render API not working when I deploy ok n render but everything working fine locally when I run Localhost
Is there a specific error you are running into? When deploying to render, you would need to set up the database separately. Or set up persistent storage if you are using SQLite.
I don't have the original code anymore, but I did a similar project with same features. You can find the link in this video ruclips.net/video/tRF_kjt0e4w/видео.htmlsi=8NrpohqPFml4Z7nw
Do you mean where is the frontend code? I haven't recorded that part of the tutorial yet. It is next on my list. This tutorial was just on Strapi. You can build the front end with your favorite framework.
I am assuming you had free time to leave a comment. Thank you. Also, the intent of the video was to show my nice shirt and hair. I also happened to be doing a Strapi tutorial.
For all of you who have found this video helpful, sometimes it is hard for me to trouble shoot issues in the comments. I am thinking of doing a biweekly Strapi open office hours stream. Comment here or like if this is something that you would like me to do.
yes, it would be great, this video was very nice but I would love to see anything that is related to using a database with Strapi like Postgres
Yes please!
yes please!
also a subject that I want to know: what is the best way to secure a website that is based on strapi as backend? a demo of a react (or better: next.js) app that reads/stores data in strapi and is secured, maybe even with OAuth providers like google and facebook, would be awesome!
Hi, I saw that you starting the strapi server is very fast, while mine takes 5-10 seconds, is there a way to make it fast like that?
Honestly, if I didnt have your videos I would have dropped Strapi already. I am on the fence but you are keeping me on it. Thumbs up for the commitment to wear the same shirt.
This means a lot. Thank you. I will have more videos on the way. Let me know if there are any specific topics you are interested in.
And yes. Same shirt for continuity.
Make sure you catch the most important part of the video! 32:43
This part is also very important: 46:07
Thank you. And happy holidays.
Incredible tutorial, thank you so much Paul! You deserve far more recognition, you're a great educator!
Thank you for the kind words. Really appreciate it and thanks for the watch.
It took a few hours and many videos and readings but this video is now making sense to me. Please keep up the good work. Working every day with strapi now.
Thank you for watching.
The middlewear section is invaluable, thank you for showing this! Would be nice to show to set up custom api endpoint with validation and sanitisation.🎉
I plan on making more tutorials around strapi soon. In the meantime, you can check out this tutorial I am working on now. ruclips.net/p/PL7Q0DQYATmvgONvIWsy34aDkAtcdjsQLE&si=YvBxmwxB-MZ_HXMW
After a month of studying Strapi, this type of video becomes clearer. I didn't know about that trick in controller and middleware. Thank you very much.
Thank you, glad you like it.
I only used to fetch products data for the front, never thought it could be fetch the whole page data like you show us. Thank you.
Awesome. Nice. Glad you enjoyed the video. And thank you for watching.
Exactly what I was looking for. This is perfect! Thanks for sharing!
Thank you for checking it out 🙂
It's an amazing to learn Strapi v4 for beginers. Thanks!
Thanks for the great work on this. It was a great primer in my decision making. Keep up the good work!!!
Thank you. Glad you enjoyed it. I typically don't do too many tutorials on this channel. But I love Strapi. If you have any questions or need help with anything let me know.
Strapi 5 is in the works. When it is out of beta I will make another in-depth tutorial.
This is pretty cool, everything that I need to know at current stage, thank you!
Thank you. Glad you enjoyed it. 🙂
So if I'm going to watch a E-Commerce tutorial (with no voice over instructions) using Strapi, will this video prepare me? I do understand the basics of api's.
I think whenever you are learning something. If someone is using a particular tool or tech stack. Makes sure to also read that documentation.
Thank you, Paul, this tutorial helped me a lot.
Always great content in here.
Udi you are the best. Always appreciate your support. 🙂
This is the beest video on strapi
Thank you so much. More on the way.
Great job Paul.
Language is very clear and easy to understand.👍
Thank you so much, glad you enjoyed the tutorial.
Hi Paul,
Nice tutorial, Very helpfull.
I just started using Strapi. I am thing to use it for an online store project. My question is
It it prossible to add custom api like for a feature Loyalty program for existing online shop customers?
Glad you enjoyed it. For your question, do you mean how to create a custom endpoint in Strapi that fits your use case? If so yes, you can either make it tied to an existing collection type or a custom end point via a plugin.
Awesome tutorial!. Thanks Paul, keep it up 👌
Thank you for watching and your feedback.
Hello Thanks, for the great tutorial i have one questions about the project:
*It's it better landing page to be single type because it look like only 1 page it don't have couple of other landing pages? (Can you explain in details about this) Thanks in advanced!
Both approaches work. You can either use a single type or a collection type. It’s really up to you.
If you know you will have just one landing make, it is OK to use a single type.
But let’s say you have many products or services, and you want each service to have its landing page then using a collection type makes sense.
@@CodingAfterThirty Yeah that makes alot of sense Thank you so much :),
Hi Paul Bratslavsky, Thanks for great tutorial. I am currently looking for how to create graphql apis, and add custom apis like meilisearch in strapi instead of using meilisearch sdk on client apps. I want our all requests directed from strapi, so that we can customize and control the same. Requesting 1 crash course for these 2 topics:
1. GraphQL Apis
2. Custom apis like meilisearch or upload api to s3 via api to server.
Thanks for checking out the video. I will keep this in mind.
I will add to my list to cover s3 buckets and milisearch.
Also, do you have a specific reason for using GraphQL?
For the most part, the same thing that you can accomplish with GraphQL you can do with REST using populate and filtering flags.
So, for me, creating content specifically for GraphQL is at the bottom of my list.
You rock sir, thanks .. although I’ll like to know if strapi can handle/customize multitenant using next js
It is not something Strapi was designed for in mind. It is recommended that each project has its own Strapj instance.
Thanks a bunch, sir for this kind of videos I hope you create it a full app with Strapi and Vue Js with registration 🌹🌹🌹🌹
Glad you like the video. Thanks for the support.
Hi Paul, met you at the ATX NextJS meetup this past week :) Question, I want to use the Strapi on Digital Ocean option... all I need is just Strapi correct? But do I need SQL or Postgres as well? Basically I need to manage user registration, in additional each user will have a crypto portfolio array of coins. Is this something Strapi can handle all by itself? Or do I need to find a tutorial combining Postgres and Strapi to get this desired backend setup?
You would need to set up an instance of postgreql on digital ocean as well.
If you need help setting Strapi up. Feel free to reach out. You can also dm me on twitter @codingthiry
@@CodingAfterThirty hey that twitter profile doesn't exist? I defs need help
@@LeonGaban yep I need to learn how to spell @codingthirty
Hey thank you for this.
Ive got a quick question that brought me to this video.
I’m building a website for my church, and I’m adding a BLOG & MEDIA page to the nav. These dynamic pages need to updated weekly, although there are other static pages like the landing page and others that wouldn’t need to be updated.
What is the best way to go about this?
For context I use React.
Thank you.
Glad you enjoyed the video thank you for watching it.
I would use Next js for the frontend. Also you can have the whole page static and when you add new content you can fire a hook that will rebuild your site and update your content.
That is what we do on Strapi.io website.
It’s is build with next js on the front end and of course using Strapi on the backend.
@@CodingAfterThirty thanks a lot for this
Very nice, I have it all running in about an hour! Populating is still pain in the bottom 😅, but I got the idea. One thing I didn't get, why using collection-type for a landing page 🤔?
You can use either single type or collection type really up to you.
Let’s say you have many products and you want to have multiple landing pages then collection type make sense, but if you only need one landing page, it’s fine using single type.
nice turtorial, learned a lot. I can not find part 2 as you mentioned where you build frontend with this Strapi data.
that is still working progress, but I’m working on it, but I will also have a shorter tutorial out soon. That covers how to take a next project and add to Strapi.
@@CodingAfterThirty looking forward for both
Very beneficial, thank you!
Thank you for checking out my content.
Great tutorial Paul!
Thanks!
All steps very clear!
Do you gonna do or do you have any plans about to do any video with the frontend consuming the strapi using vite-ssr-plugin?
Glad you enjoyed it. I haven’t tried that plug-in yet but that’s a pretty good suggestion.
Super excellent tutorial!
Thank you so much. Glad you enjoyed it.
Great tutorial!
Thank you. Glad you enjoyed it.
Чудове відео. На оригінальній швидкості трохи важко встигати за ведучим, але на 0.75 норм)
Thank you. I will try to speak a little bit slower next time. 🙂
Why is it not recommended to use the built in media library when deployed?
You use the media library regardless, the only thing that change is the provider you use.
By default Strapi uses the file system, which will store your data in the same place as your deployed project.
But for production this is not ideal, and should use a dedicated storage like s3 or I like cloudinary.
Thank you for this tutorial! I was wondering if there is a way to rearrange items within multiple repeatable components. For example, if I have a component called "Col" with "Card" and "Button" repeatable components inside, how can I arrange them in this order: Card1, Button1, Card2, Button2, etc and not Card1, Card2, ... Button1, Button2...
If I am understanding correctly. To accomplish this. You would have the button component inside the card component.
Create an order field, and on your front order them by the order field
Thanks so much paul for this amazing tutorial
And really Strapi the best of headless CMS,
Can you create an toturial about plugin users-permissions extending i need to override somethings on (create, find, update) functions but really there's no any docs explained it
Are you looking to do an update when creating users via api?
Can you give me an example of what you are trying to do.
That way I can have a better idea what to demonstrate.
You can also checkout this section in the docs docs.strapi.io/dev-docs/plugins-extension#extending-a-plugin-s-interface
Apologies for the previous block on my comments; I'm not sure why it happened. What I'd like to achieve is an extension of the plugin's controllers and services functions. Specifically, I need to override some of the User Controllers functions like 'register,' 'connect,' 'find,' 'findOne,' and 'delete.' In my case, I want to perform some operations on the request body before these functions are executed.
Additionally, I need to create a custom Controller and route within the plugin's user permissions section. For the user section, I'd like to add a new route, such as 'findOne (api/users/userName)' or 'findOne (api/users/email),' to enable searching for users by their username or email.
If possible, I'd greatly appreciate your guidance and a tutorial on how to customize the backend, particularly in the plugin section, as described above.
Thanks for the great tutorial!
Could you also display the last 3 blog articles (based on creation date), for example? And how?
I don't mean via the REST API but via the CMS
Do you mean inside the strapi admin? You should be able to filter your collections by the publish date.
@@CodingAfterThirty Yes, that's what I meant. I have now customized the API controller and service to accomplish this and it works. But it would be nicer via the Strapi admin panel.
Great tutorial. Really appreciate it.
Thank you. Glad you enjoyed. I will making more Strapi related videos on this channel.
yoo!! wonderful tutorial! I just had a question.. How do we work with DateTime data in the frontend. Suppose I have datetime data in Strapi and I want to separate date and time, How to do that?
You can either checkout different methods that are available to the date object or even easier you can use a library like date-fns.
Great video! When will your front end side of this come out and what framework are you going to use? ... please say next.js :)
I will make a follow up at some point and yes will use nexts. I have these two reference projects I worked on that you can checkout now to get some ideas how next works with Strapi.
github.com/strapi/nextjs-corporate-starter
And this based on the nearly released Next 14 tutorial. I converted it to use Strapi.
github.com/strapi/strapi-next-14-dashboard-demo/tree/main
How is dynamic zone dynamic then... if we have to specify everything in the query. This means every time we add a new component in the dynamic zone, we need to update our query on the front-end to populate respective references. On live thats a new release of front-end app every time
It is dynamic in a sense that the content editor has predefined components that you created as a developer for them to chose from.
There fore they can create the page with any of the components in any order or repetition they want.
In terms of creating new components and dynamic zones on the fly.
It is not something you are able to do in production or should be able to do.
This prevents someone from making changes in production that can break the app.
So you are limiting the content editor to use the only the available options which they can return in any order.
For which you will have one predefined query.
I would suggest to set up an example and play with it. To get an idea of how it works.
If you haven’t already.
.
@@CodingAfterThirty i guess i was looking at in complete picture. For every new component frontend also need a component to consume that data so we still need release. Thanks for your response.
@@UsmanAli-ox3mn no problem. If you have additional questions feel free to ask.
Thanks man. Great video to start use strapi. Can you help me? I have collection of cities and collection places. City has field places. Relation 1 to many. How to make strapi availble to return list of (city, places.count)?
The three ways to handle this (easy way) are to get the data on the front end and just use the length property on the array to get the count of the places.
(harder) create a custom control or modify the existing one to return places count as an additional value.
You can read the docs here docs.strapi.io/dev-docs/backend-customization/controllers#adding-a-new-controller
51:28: On Strapi5, that query is not working anymore. BTW: Awesome tutorial!
{
populate: {
metadata: {
populate:{
metaImage:{
populate:true,
fields: ['name','alternativeText','url']
}
}
},
blocks:{
on:{
'blocks.hero': {populate:'*'},
'blocks.row': {populate:'*'},
'blocks.pricing-row': {populate:'*'},
'blocks.cta': {populate:'*'},
}
}
}
}
And:
{
populate: {
metadata: {
populate:{
metaImage:{
populate:true,
fields: ['name','alternativeText','url']
}
}
},
blocks:{
on:{
'blocks.hero': {populate:'*'},
'blocks.row': {populate: {card:{ populate:{image:{fields:['name','alternativeText','url']}}}}},
'blocks.pricing-row': {populate:['plan.services','plan.link']},
'blocks.cta': {populate: ['form','form.input','form.button']},
}
}
}
}
Yes, you now need to use the ‘On’ flag if using strapi 5. I am planning to re-record this tutorial for v5 soon.
A lot of thanks, I've enjoyed the video, This helps me. A Software Engineer presented me a proyect in strapi, I'm not going to tell you is my secret. Jajajaja
Thanks for checking out the video 🙂
I love how you look more presentable as the video progresses. 😂
Hi, sorry for spamming you, but can't find proper content for my question. I have the following scenario:
Collection Type called Articles. Each Article has dynamic zone whit repeatable Components (RichText, Accordion and etc.) Each of the components has description field.
In the CMS Articles findMany how the filtering should look like to access the Dynamic Zone components? I tried different combinations like:
{
content: {
["$or"]: [
{
description: {
"$containsi": searchTerm
}
},
{
components: {
[operator]: [
{
description: {
"$containsi": searchTerm
}
}
]
}
},
Great video 🤝
Nice, where can i find the front-end video?
I did not recorded the frontend tutorial yet, but it is on my list of videos to make next.
Can you make a couple vidz on how to manage controllers and services?
For example I need to ensure whenever a new therapist (I have 2 users: patient and therapist) registers on the FrontEnd automatically strapi places them in the user collection and at the same time creates a new entry in the profiles collection.
I will think about this and create a custom auth flow example when get a chance.
You're awesome. :)
Can i use it for a complete ecommerce without any additional database?
In Strapi you will have to create one database for your project and can use it to stro all your ecommerce data that you need.
great tutorial thanks
Thank you for checking it out 🙂
Anyone know where he part 2 of this video is ? 0:45 he mentions future video..
Hey. Yes. Since this was based on Strapi 4, I started a new series focusing on Strapi 5 that will be released in GA soon.
ruclips.net/video/56h-FPt73Vs/видео.htmlsi=S8g_hpepTj9RAG0L
This will also have a next.js complementary course to go with it.
ruclips.net/video/Elme6d1Tk_E/видео.htmlsi=tjJhAjfOPjwdI3t8
Hello! Awesome video. I encountered an issue when "importing the backup file".
I have an error message that says:
links: 0 transfered (size: 0) (elapsed: 0 ms) [2024-01-03 15:52:57.639] error: [ERROR] insert into `components_elements_pricing_cards_services_links` (`pricing_card_id`, `service_id`, `service_order`) values (1, 7, 1) - FOREIGN KEY constraint failed
I found a workaround by deleting the "data.db" in the ".tmp" folder but it's also deleting the created user.
Any tips on how to fix this?
Thank you in advance!
I will take a look and see if I can replicate the issue and figure out what is going on.
For now after running your fix you can use Strapi export to create an updated backup file and it should not give you any future issues.
@@CodingAfterThirty same error for me, also deleting the data.db fixes it, what could be its root-cause?
rm data.db worked but i really dont like that account is deleted. imagine this on production. do you have a fix for this? it was 2 weeks since you answered...
@@fodortibor95 I am still looking into the issue. I could not replicated it.
@@brancode I would love to help but I need a little more information on how you are running into the issue. I am not able to replicate it. Can some one show the steps to reproduce the issues. I am going to try to see if I can replicated. Thank you.
Great 💯
I have a question. I using PostgreSQL on an online server which is SSL is required. I can't connect my workspace for some reason because of this. Should I build my CMS on quickstart before I then connect it on production of did I just missed some .env variables?
Do you still open to answer?
I typically stick with SQLite in local development and, during deployment, will point to a production database.
You can set up a local Postgres SQL database, but you will have to update your settings.
You can check out the docs. I also made this video a while ago and will create an update, but the steps are still similar.
ruclips.net/video/FeZyCxwb1aQ/видео.htmlsi=_Z_Ay0PE1TMfFvHw
If it is an existing project you will have to install the pg package and update your configuration in config/database.js file.
You can checkout this post for reference strapi.io/blog/postgre-sql-and-strapi-setup
@@gedeanggayogaprastawa968 Ah yea never mind. If the server SSL is required, it will not gonna work on Friday om npx start up. So I just only need to start up on quickstart and then follow the step on strapi to manually install pg and just remove to the config/data ase the old variables and exchange with in the instructions. Basically it's already alright now. Now I preferring my dynamic page.
@@gedeanggayogaprastawa968 Nah! I just discovered that if the pg server require ssl, the npx initial just don't work. So the right approach is start with quick start, then exchange the variables on config/database then install pg environment on the project, the chance the env file. I just need to ready my page to fetch the API but the Strapi is working as I test in postman.
Helpful but if you can post a detailed video on how to deploy on IIS or on a local server. Google didn't help at all finding resources on this subject, as if deploying on a local server or IIS is forbidden 😅. any help would be great!
Unfortunately I don’t deploy on Microsoft services. Sorry. I am not familiar with that particular deployments.
Is there a reason why you are using IIS?
@@CodingAfterThirty were i work they already host the angular app on IIS and we are trying to find a way to keep everything related to that app (as backend) on the same server. We just started to use Strapi and we are testing things out, I have been reading a lot of recourses and trying to use pm2 but it's failing 😥
@@SimplyLifeInspiring I will see if I can find some resources on the IIS side of things, but what issues are you running into on pm2?
You may find this helpful docs.strapi.io/dev-docs/deployment/process-manager
bester Mann
THIS is how you make crash courses.
Wow thank you. Really appreciate. Glad you enjoyed it.
I like strapi helping me to develop backend easily. But I have a problem for deployment.
As I created before was using Ruby on Rails as the backend. It was easy to deploy and doing migration whenever we want to deploy of our new code.
I want to ask continues deploy and migration after we develop in the local pc to production live server.
Typically you would handle all your changes via git.
In terms of easiest way to deploy. Using Strapi cloud is the the easiest. Than I would recommend digital ocean app platform.
Render also has good deployment options.
@@CodingAfterThirty ok thank you. I will try this
nice glasses 👍👍
I now can see.
One thing I noticed and confirmed is that
1. When you deleted the Landing Page it had an ID of 1 and after you imported the files the landing page had an ID of 2, *Is there a way to link the existing data with newly imported files.*
Currently strapi does not support partial import. So when we ran the import command all of the files were replaced by the import and since we were importing to an existing database Postgres generated new ids.
@@CodingAfterThirty eagerly waiting for the part where you connect this API with FE, I have been toying around strapi for almost 2 months and still have trouble connecting the dots
@@CodingAfterThirty By Any Chance could you upload the chapters for this video, it gets cumbersome to traverse back and fourth
@@envygamer I got you.
The cat is so cute :D :D
Lol. They are little trouble makers but I love them.
How viable is strapi for free-lancing?
It’s perfect. But it depends on what type of projects you are building. If you are going to have non technical users, and lots of content, that is a perfect use case.
What type of project are you thinking of building.
@@CodingAfterThirty that's just the type of sites I had in mind, thank you! Also, what about e-commerce?
@@copaceticobserver you can, I just know a lot of folks use shpify for bulk of the functionality. But you can just use Strapi too.
There is also Medusa an open source e comerce platform that you can also integrate with Strapi.
@@CodingAfterThirty Thank you very much!
NICE demo, what I wish is these demos are provided by Strapi themselves: end to end examples, including how to login using oauth2, registration, password reset etc. These developer advocates miss the basics..I MEAN how long will it take a to build an example with both email and oauth2 providers, show registration, password reset, email verification etc. I think the community should learn from LARAVEL. the ecosystem that Taylor has build wrt Laravel is an example of how to win over the developer community
Thanks for your feedback. There are so many frameworks that to create example for each would be time consuming.
In terms of Dev Rel missing there mark. I appreciate your feedback.
I will focus on creating more up to date resource.
In the past we were more focused on the Strapi side of things, and counted on our community to create framework specific examples.
I am in the process of creating more example with a goal of creating a project for production.
But I will build it in public, that way anyone in the community can ask questions via git issues or even help us to make the examples better.
I know I can’t keep everyone one happy, so on Strapi official channel I will focus on Next 14, but here in my channel will focus on Astro, Remix and some Next js.
Anyway. Thanks for the feedback. I really appreciate. As I am the only Dev Advocate at Strapi, so I have my work cut out for me.
🙂
ps. We have open office hours Monday through Friday 11:30 pm CST time. You are always welcome to stop by and ask any questions you may have.
@@CodingAfterThirty hey , I didn't know u were the dev advocate at Strapi-lol. I understand and appreciate the effort . Its easy for me to say its not good enough but frankly the reason for my comments was the fact that Strapi is such a good platform, I mean its auth system alone is worth it, but headless auth with outh2 is not easy. I am saying this as an enterprise level CTO with over 25 yrs experience. Even a tiny mistake and ur open to hacking. Thats why one end to en example on any one framework - Next, Nuxt , Sveltekit would ensure that people see the value that strapi has to offer- it can be a complete backend.. again my comments werent to offend but rather point out that and end to end example will drive adoption.
No offense taking. It is important to listen to the community to make sure that we are being as helpful as possible, and providing appropriate resources. I am in the process building an app that i want to deploy to production with real users to get a better understanding of using Strapi in the wild rather than just creating one of examples.
Auth is complicated and securing your application is very complex.
And anytime you have any more feedback that can help us do thing better. It is always appreciated. At the end, I just want to build cool things with Strapi and empower others to do the same.
@@CodingAfterThirty that’s great , really looking forward to this . Strapi can be a complete backend for many content heavy sites - for example supabase doesn’t have the content workflow that strapi has - Glad your looking into an end to example - if possible lao add email verification flow - I can see if i can also add 2 factor to that - Another thought - I think server actions in next js 14 is a great way to safely call all strapi Apis - what do you think ?
What's the work around for handling files with S3 bucket and using a MongoDB?
Strapi 4 does not support mongo db but for S3 you can install their provider. market.strapi.io/providers/@strapi-provider-upload-aws-s3
I read your tutorial on strapi website but can not get data from our backend to our frontend. Can you help me?
What issues are you having? Can you provide an example?
I think you forgot the link to your blog populate post in the description
Thanks will update it but will share here as well strapi.io/blog/demystifying-strapi-s-populate-and-filtering
@@CodingAfterThirty Great! Thanks
Where can I find how to costumize an api , I need to know hoy to get something especially but not with its Id , with another parameter, please
Take a look at this to see how to customize controllers docs.strapi.io/dev-docs/backend-customization/controllers#adding-a-new-controller
And here on how to use populate and filtering to make custom queries.
docs.strapi.io/dev-docs/api/rest/filters-locale-publication
your cat is very cute lol
Thank you. I got two. One is camera-shy though.
I have a problem. If I call a get request for all data in the database I get an empy list, if I search one by one I get the element with corrisponding id. All elements are published.
Did you enable find permissions in settings for you collection type?
yep@@CodingAfterThirty
I am getting this error while re-running the server.
PLEASE HELP ME RESOLVE THIS.
I've tried to find a solution from various articles but nothing seems to work.
PS E:\Work\Strapi\my> yarn develop
yarn run v1.22.21
$ strapi develop
⠋ Building build context
[INFO] Including the following ENV variables as part of the JS bundle:
- ADMIN_PATH
- STRAPI_ADMIN_BACKEND_URL
- STRAPI_TELEMETRY_DISABLED
✔ Building build context (89ms)
⠸ Creating admin[ERROR] Module not found: Error: E:\Work\Strapi\my\package.json (directory description file): Error: No file content
[ERROR] There seems to be an unexpected error, try again with --debug for more information
Are you on windows and what node version are you using. Also if you have your project on GitHub as a public repo I can test it.
When I try deploy to strapi cloud, the build stop at "[3/5] Fetching packages...", I tries several times and it remains, could you help?
I will be in Strapi’s open office hours on Strapi’s discord. You can stop by it’s Mon - Fri 12:30 pm cst. We can look at you project or if you want if you repos is public send me the link and I will test it and see what is happening.
when will you upload part 2 ?
I an planning it now. Let me know what you would like to see in part 2.
If I use Custom Middleware to Pre Populate our data then I don't have to use qs package on front end ?
Yes. That is correct.
@@CodingAfterThirty this answer save my life
I hello Paul I have tried to deploy strapi on render API not working when I deploy ok n render but everything working fine locally when I run Localhost
Is there a specific error you are running into? When deploying to render, you would need to set up the database separately. Or set up persistent storage if you are using SQLite.
Dunno if it's only me, but in the admin dashboard i cannot add anything in the content-type builder :(
Is this in local development?
I need help... How can I change the primary key? I have some relations between categories but strapi auto set the primary key to the id field.
I don't think you can change the default primary keys in Strapi.
What are you trying to do exactly?
Relation (services) is not showing in the api response in the latest Strapi version. How to show it?
Can you provide a little bit more context so I can better answer your question.
How Insomnia better than classic Postman ? 👀
Postman is better but I just like the simplified UI of insomnia. I know it is irrational. But that is just the way I feel.
Good content but I think maybe u need to change your thumbnails
How would you change the thumbnail to make it better?
Idk just a suggestion to attract more viewers
I agree with you just not sure what would be a good example.
What channels that you watch which have good examples of good thumbnail.
Thank you for the feedback. And checking out the video. I definitely need to improve my thumbnail game.
Error while installing dependencies:
getting this error when creating the project.
What OS version and node version are you on?
using ubuntu 22.04.3 LTS and node version is v18.17.1@@CodingAfterThirty
when i am opening content manager i cannot see anything . only i can see white screen. can anyone help me how to solve it please ?
Did you make any customizations to you project with it the backend code or is this a new install? Also what OS are you using and node version?
Hello, I tried to view an image from the API but it doesn't appear, the image URL shows up but not the image
Can you share what the url you are getting back?
@@CodingAfterThirty please this is it url: "/uploads/maritime1_ebe57b54b8.jpeg"
Can you share the codebase for that?
I don't have the original code anymore, but I did a similar project with same features. You can find the link in this video ruclips.net/video/tRF_kjt0e4w/видео.htmlsi=8NrpohqPFml4Z7nw
contentstack is best
What is content stack, and what things does it do better and why?
Where is a html code?
Do you mean where is the frontend code? I haven't recorded that part of the tutorial yet. It is next on my list. This tutorial was just on Strapi. You can build the front end with your favorite framework.
Use DARK MODE pleeeeeaaaase xd
Yes, I fight my self on this question everyday. For Strapi for some reason I prefer the light mode more.
very fast
Sorry for speaking fast. You can always slow it down and pause the video. But thank you for checking it out.
I don't care about your shirt and hair, don't waste my time, focus on the content the video is intended for
I am assuming you had free time to leave a comment. Thank you. Also, the intent of the video was to show my nice shirt and hair. I also happened to be doing a Strapi tutorial.
You need to go slower.
Thank you for your feedback, will keep it in mind for my next video.
It's an amazing to learn Strapi v4 for beginers. Thanks!
You are welcome 🙂