- 369
- 2 611 978
Strapi
United States
Registrace 5. 10. 2017
Strapi is the leading open-source Headless CMS: 100% JavaScript, extensible, and fully customizable.
Strapi enables developers to build projects faster by providing a customizable API out of the box and giving them the freedom to use their favorite tools. Content teams use Strapi to autonomously manage all types of content and distribute it from one CMS to any channel be it websites, mobile apps, or connected devices.
Loved by developers and supported by a global community of members and partners, Strapi brings together an ecosystem of 150,000+ enthusiasts, 700+ contributors, and innovative companies like IBM, NASA, Walmart, eBay, Rakuten, and Toyota.
Strapi enables developers to build projects faster by providing a customizable API out of the box and giving them the freedom to use their favorite tools. Content teams use Strapi to autonomously manage all types of content and distribute it from one CMS to any channel be it websites, mobile apps, or connected devices.
Loved by developers and supported by a global community of members and partners, Strapi brings together an ecosystem of 150,000+ enthusiasts, 700+ contributors, and innovative companies like IBM, NASA, Walmart, eBay, Rakuten, and Toyota.
How To Deploy Your Next.js Project To Vercel – Part 10 Epic Next.js Tutorial for Beginners
🚀 How to deploy your Next.js project to Vercel. Checkout the post for code snippets here strp.cc/4bAcDdw
This video covers the final part of our Next.js tutorial with Strapi, where we deploy our frontend project to Vercel.
Don't forget to check the complimentary blog post linked above for all the code snippets you'll need.
Whether you're just catching up or have been with us from the start, this lesson is packed with great tips to help you build your Next.js project.
Project repo on GitHub: strp.cc/49HdLeD
-----------------------------------------------------------------------------------------------------------------------
Resources
------------------------------------------------------------------------------------------------------------------------
Docs: docs.strapi.io/dev-docs
Strapi Events: strp.cc/events
Find help on Discord: strp.cc/discord-events
Find help in our Forum: strp.cc/40EvYp0
------------------------------------------------------------------------------------------------------------------------
Strapi
------------------------------------------------------------------------------------------------------------------------
Get started with Strapi: strapi.io
Strapi Cloud: strapi.io/cloud
Try the live demo: strapi.io/demo
Strapi Blog: strapi.io/blog
Strapi Starter Project: github.com/strapi/nextjs-corporate-starterAs always, thank you for your continuous support
This video covers the final part of our Next.js tutorial with Strapi, where we deploy our frontend project to Vercel.
Don't forget to check the complimentary blog post linked above for all the code snippets you'll need.
Whether you're just catching up or have been with us from the start, this lesson is packed with great tips to help you build your Next.js project.
Project repo on GitHub: strp.cc/49HdLeD
-----------------------------------------------------------------------------------------------------------------------
Resources
------------------------------------------------------------------------------------------------------------------------
Docs: docs.strapi.io/dev-docs
Strapi Events: strp.cc/events
Find help on Discord: strp.cc/discord-events
Find help in our Forum: strp.cc/40EvYp0
------------------------------------------------------------------------------------------------------------------------
Strapi
------------------------------------------------------------------------------------------------------------------------
Get started with Strapi: strapi.io
Strapi Cloud: strapi.io/cloud
Try the live demo: strapi.io/demo
Strapi Blog: strapi.io/blog
Strapi Starter Project: github.com/strapi/nextjs-corporate-starterAs always, thank you for your continuous support
zhlédnutí: 680
Video
How To Implement Pagination In Next.js - Part 8.2 Epic Next.js Tutorial for Beginners
zhlédnutí 595Před 28 dny
🚀 How to implement pagination in Next.js application. Checkout the post for code snippets here strp.cc/3UDCgEt In this React tutorial, we will learn how to implement pagination inside your Next.js application. Today we will be focusing on how implementing pagination for our Summarize AI app using Next.js. We will build our Pagination Component and then implement the backend logic. Topics Covere...
How To Deploy Your Strapi Project To Strapi Cloud - Part 9 Epic Next.js Tutorial for Beginners
zhlédnutí 335Před 28 dny
🚀 How to deploy your project to Strapi Cloud. Checkout the post for code snippets here strp.cc/4bp5nAX In this video, we cover the final part of our Next.js tutorial with Strapi, where we deploy our project's backend to Strapi Cloud. In part two of the video, we will deploy our front end to Vercel. We will also demonstrate how to seed your deployed Strapi project in Strapi Cloud with initial da...
How To Implement Search In Next.js - Part 8.1 Epic Next.js Tutorial for Beginners
zhlédnutí 506Před měsícem
🚀 How to implement search in Next.js application. Checkout the post for code snippets here strp.cc/3UDCgEt In this React tutorial, we will learn how to implement search inside your Next.js application. We create a new search component using a code snippet from a blog article. We install the 'use-debounce' library and use Next.js hooks like 'useSearchParams', 'useRouter', and 'usePathname' to ha...
Protecting User Information With Strapi Middleware- Part 7.3 Epic Next.js Tutorial for Beginners
zhlédnutí 547Před měsícem
🚀 How to implement route middleware to secure user-specific data access. Checkout the post for code snippets here strp.cc/3xSVn4q In this React tutorial, we will continue to work on our Next.js AI summarization project. We will learn how to protect user information in our application by limiting access to only the signed-in user's data. We create a new middleware using yarn Strapi generate CLI ...
Implementing User-Specific Data Access in Strapi - Part 7.2 Epic Next.js Tutorial for Beginners
zhlédnutí 421Před měsícem
🚀 How to implement is-owner middleware for user-specific data access. Checkout the post for code snippets here strp.cc/3xSVn4q Welcome back to our epic Next.js tutorial series! In this React tutorial video, we will continue building our summary AI application, specifically focusing on enhancing security and user experience by ensuring users can only access their own data. Follow along as we cre...
Implementing Summaries Update and Delete in Next.js - Part 7.1 Epic Next.js Tutorial for Beginners
zhlédnutí 360Před měsícem
🚀 How to update and delete our summaries. Checkout the post for code snippets here strp.cc/3xSVn4q Implementing Summaries Update and Delete. In this react tutorial with next.js, we will continue building our next js project. In this video, we continue building our summary application in Next.js. We focus on hooking up the delete and update buttons, and we discuss authorization to ensure that us...
Structuring and Displaying Our Summary Data - Part 6.4 Epic Next.js Tutorial for Beginners
zhlédnutí 487Před měsícem
🚀 Structuring and saving summaries data generated with OpenAI. Checkout the post for code snippets here strp.cc/49EHc07 In this react tutorial with next.js, we will continue building our next js project. We'll focus on structuring our summary data in Strapi to save the summaries created with OpenAI and modify our fronend code to display them. Next, we'll dive into the exciting task of creating ...
Using OpenAI To Generate YouTube Summary - Part 6.3 Epic Next.js Tutorial for Beginners
zhlédnutí 475Před měsícem
🚀 Learn how to use Open AI API to generate a CZcams video summary. Checkout the post for code snippets here strp.cc/49EHc07 In this Next.js tutorial for beginners, we are going to cover how to use Open AI and LangChain to generate a CZcams video summary based on the transcript. In the next video, we will take a on how to build our Summary list view and details pages. Key Takeaways - Setting up ...
Generating YouTube Transcript via API Route Handlers - Part 6.2 Epic Next.js Tutorial for Beginners
zhlédnutí 408Před měsícem
🚀 Learn how to create API route handlers in Next.js to get youtube video transcript. Checkout the post for code snippets here strp.cc/49EHc07 In this Next.js tutorial for beginners, we are going to cover how to use our form submission to file our route handler in next.js to generate our CZcams video transcript. In the next video we will take a look how to user LangChain and OpenAI to generate o...
Form Submission via API Route Handlers - Part 6.1 Epic Next.js Tutorial for Beginners
zhlédnutí 590Před měsícem
🚀 Learn how to create API route handlers in Next.js. Checkout the post for code snippets here strp.cc/49EHc07 In this Next.js tutorial for beginners, we are going to create a new form to handle our summary submissions. We will also implement toast for notification and finally, we will create an API route in Next.js and connect it to our form, before working on our OpenAI summarize logic which w...
Strapi Community Call April 2024: Strapi updates and Strapi 5 beta
zhlédnutí 333Před měsícem
Strapi Community Call April 2024: Strapi updates and Strapi 5 beta - Strapi 5 Beta: docs-next.strapi.io/dev-docs/quick-start The Strapi Community Call in April 2024 discussed updates on Strapi and the release of Strapi 5 beta, highlighting new features such as the improved draft and publish feature, the replacement of Webpack with Babel as the default bundler, the introduction of the plugin CLI...
File Upload Using Server Actions in Next.js - Part 5.3 Epic Next.js Tutorial for Beginners
zhlédnutí 791Před měsícem
🚀 Learn how to upload files in Next.js using Server Actions. Checkout the post for code snippets here strp.cc/3TRFH8X Welcome back, wonderful people! In this React tutorial, we will continue building our account page. In this video we will focus on learning how to upload our user image to our backend using server actions. We will cover setting up our image picker component to validating our ima...
Update User Profile with Next.js and Server Actions - Part 5.2 Epic Next.js Tutorial for Beginners
zhlédnutí 793Před měsícem
🚀 Learn how to update users profile Next.js & server actions. Checkout the post for code snippets here strp.cc/3TRFH8X Welcome back, wonderful people! In this React tutorial, we will continue building our account page. In this video we will focus on learning how update our users profile using form submission with server actions. We cover everything from setting up the initial profile form in ou...
Building Our Dashboard with Next.js - Part 5.1 Epic Next.js Tutorial for Beginners
zhlédnutí 811Před měsícem
Building Our Dashboard with Next.js - Part 5.1 Epic Next.js Tutorial for Beginners
Protected Routes via Next.js Middleware - Part 4.5 Epic Next.js Tutorial for Beginners
zhlédnutí 1,2KPřed 2 měsíci
Protected Routes via Next.js Middleware - Part 4.5 Epic Next.js Tutorial for Beginners
Next.js App Router Authentication ( Cookies, JWTs)- Part 4.4 Epic Next.js Tutorial for Beginners
zhlédnutí 1,4KPřed 2 měsíci
Next.js App Router Authentication ( Cookies, JWTs)- Part 4.4 Epic Next.js Tutorial for Beginners
Form Validation With Zod in Next.js - Part 4.3 Epic Next.js Tutorial for Beginners
zhlédnutí 1,4KPřed 2 měsíci
Form Validation With Zod in Next.js - Part 4.3 Epic Next.js Tutorial for Beginners
Form Submission With Server Actions in Next.js - Part 4.2 Epic Next.js Tutorial for Beginners
zhlédnutí 1,3KPřed 2 měsíci
Form Submission With Server Actions in Next.js - Part 4.2 Epic Next.js Tutorial for Beginners
How To Build a Login and Signup Page in Next.js - Part 4.1 Epic Next.js Tutorial for Beginners
zhlédnutí 2,2KPřed 2 měsíci
How To Build a Login and Signup Page in Next.js - Part 4.1 Epic Next.js Tutorial for Beginners
How To Handle Errors in Next JS via the Error Page - Part 3.8 Epic Next.js Tutorial for Beginners
zhlédnutí 521Před 2 měsíci
How To Handle Errors in Next JS via the Error Page - Part 3.8 Epic Next.js Tutorial for Beginners
How to Implementing a Loading Page in Next.js - Part 3.7 Epic Next.js Tutorial for Beginners
zhlédnutí 549Před 2 měsíci
How to Implementing a Loading Page in Next.js - Part 3.7 Epic Next.js Tutorial for Beginners
How to Creating a Custom 404 Page in Next.js - Part 3.6 Epic Next.js Tutorial for Beginners
zhlédnutí 681Před 2 měsíci
How to Creating a Custom 404 Page in Next.js - Part 3.6 Epic Next.js Tutorial for Beginners
How To Set Dynamic Metadata in Next.js - Epic Next.js Tutorial for Beginners Part 3-5
zhlédnutí 932Před 2 měsíci
How To Set Dynamic Metadata in Next.js - Epic Next.js Tutorial for Beginners Part 3-5
Building Top Navigation and Footer in Next.js - Part 3.4 Epic Next.js Tutorial for Beginners
zhlédnutí 989Před 2 měsíci
Building Top Navigation and Footer in Next.js - Part 3.4 Epic Next.js Tutorial for Beginners
Modeling Our Header and Footer Data in Strapi - Part 3.3 Epic Next.js Tutorial for Beginners
zhlédnutí 1,1KPřed 2 měsíci
Modeling Our Header and Footer Data in Strapi - Part 3.3 Epic Next.js Tutorial for Beginners
How To Build a Features Section in Next.js - Part 3.2 Epic Next.js Tutorial for Beginners
zhlédnutí 1,7KPřed 2 měsíci
How To Build a Features Section in Next.js - Part 3.2 Epic Next.js Tutorial for Beginners
How To Use Next.js Image Component - Part 3.1 Epic Next.js Tutorial for Beginners
zhlédnutí 1,3KPřed 2 měsíci
How To Use Next.js Image Component - Part 3.1 Epic Next.js Tutorial for Beginners
How To Fetch Data in Next.js - Part 2 Epic Next.js Tutorial for Beginners
zhlédnutí 4,4KPřed 2 měsíci
How To Fetch Data in Next.js - Part 2 Epic Next.js Tutorial for Beginners
do you have a video on how to deploy such an app on vercel (nextjs with strapi both on vercel?) and the db as well on vercel. the strapi cloud is super pricey
why i get this error? Unhandled Runtime Error Error: Cannot destructure property 'logoText' of 'data' as it is undefined. Source src\components\custom\Header.tsx (47:11) @ logoText 45 | /* eslint-disable */console.log(...oo_oo(`622079581_45_2_45_19_4`,user)); 46 | > 47 | const { logoText, ctaButton } = data; | ^ 48 | return ( 49 | <div className="flex items-center justify-between px-4 py-3 bg-white shadow-md dark:bg-gray-800"> 50 | <Logo text={logoText.text} />
GET /api/home-page 404 in 3137ms TypeError: fetch failed at Object.fetch (node:internal/deps/undici/undici:14152:11) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async getStrapiData (webpack-internal:///(rsc)/./src/app/page.tsx:15:26) at async Home (webpack-internal:///(rsc)/./src/app/page.tsx:24:24) { cause: Error: connect ECONNREFUSED ::1:1337 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) { errno: -4078, code: 'ECONNREFUSED', syscall: 'connect', address: '::1', port: 1337 } } undefined GET / 200 in 232ms import { Button } from "@/components/ui/button"; // Create a function that makes a request to Strapi endpoint // Use fetch() to call the baseUrl and append the path to the data we want get async function getStrapiData(path: string) { const baseUrl = "localhost:1337"; try { const response = await fetch(baseUrl + path); const data = await response.json(); return data; } catch (error) { console.error(error); } } // Using React Server Components, we can make Home() async and call getStrapiData() within our component to get our data export default async function Home() { const strapiData = await getStrapiData("/api/home-page"); console.log(strapiData); return ( <main className="container mx-auto py-6"> <Button>Our Cool Button</Button> </main> ); }
love it. i used strapi 4 for a lot of our projects before. hope we will have new admin platform which dev can enhance , develop more easily with vitejs and typescript. more document for developing plugins
hi kya jagah ?
This was a great tutorial on Strapi with NextJS. I completed up to deployment and confirmed all steps were working until then. After deploying, I noticed my hero section image was still not showing even though i did add the link. I am also unable to do anything after logging in. I get not authenticated when trying to summzrize a link and get logged out on any other links, Do you have any troubleshooting tips for this instance?
I didn't have this issue before deploying and was definitely able to do everything. The error is from my Header.tsx and the error is: Unhandled Runtime Error Error: Cannot destructure property 'logoText' of 'data' as it is undefined. ############## MIDDLEWARE ############## { ok: false, data: null, error: { status: 401, name: 'UnauthorizedError', message: 'Missing or invalid credentials', details: {} } } /_next/static/chunks/app/not-found.js ############## MIDDLEWARE ##############
they both cant speak English properly. Worst pronunciation of English :(
Good, thank you very much for the explanation, then for each table that we relate to the user we have to create in the folder /api/summary/routes/summary.js this code 'use strict'; /** * summary router */ const { createCoreRouter } = require('@strapi/strapi').factories; module.exports = createCoreRouter('api::summary.summary', { config: { create: { middlewares: ['api::summary.on-summary-create'], }, find: { middlewares: ['global::is-owner'], }, findOne: { middlewares: [“global::is-owner”], }, update: { middlewares: [“global::is-owner”], }, delete: { middlewares: [“global::is-owner”], }, }, }); and to create a new entry with the “create” function you have to create another “middleware” in the path /api/summary/middlewares/on-summary-create.js and create this code to validate the user again “use strict”; module.exports = (config, { strapi }) => { return async (ctx, next) => { const user = ctx.state.user; if (!user) return ctx.unauthorized(“You are not authenticated”); const availableCredits = user.credits; if (availableCredits === 0) return ctx.unauthorized(“You do not have enough credits.”); await next(); // update the user's credits const uid = “plugin::users-permissions.user”; const payload = { data: { credits: availableCredits - 1, summaries: { connect: [ctx.response.body.data.id], }, }, }; try { await strapi.entityService.update(uid, user.id, payload); } catch (error) { ctx.badRequest(“Error Updating User Credits”); } console.log(“############ Inside middleware end #############”); }; }; so a middleware for the “summary” table as well as for the whole global context, or only the middleware for the “summary” table for the creation, only used for something specific?
Sometime during this video, I lost control of CMS to my localhost:3000. I made some changes to the Hero Section and I cant find the changes reflected. I tried restarting my frontend, back end and no luck. When i look online someone had a similar issue due to a second strapi process. Is there any help you can pass my way?
Are you getting any error messages? Does your Strapi app start? Are you not able to see your changes on the frontend only?
Thank you for the videos! Having a great time learning nextjs and you area a great instructor!
Thank you. I also responded to your other comment , just wanted to get more info on the issue you are experiencing.
@@Strapi I actually got ahead of myself and saw the caching update in the next video!
How did you got the globalData response in VS Code?? :D (2:19)
I am using an extension called console ninja in vs code.
is it possible to customize the rich text editor. Like add colors palette to it on strapi so it can reflect on the code or what would be the best way to approach having color for text on the editor?
do validation for relational fields please
Ran into trouble fetching data from Strapi at 12:07 - for the baseUrl I had to use 127.0.0.1:1337 instead of localhost:1337
Are you on a mac? Depending how it is set up one or the other will work.
thank you for the super clear and well explained video, much appreciated its a huge time saver. I like how you can render each part using json, that way I can add a youtube text and video link in strapi admin and then grab that data on the front end and create a responsive front end video render to play the video. It gives me power as a developer to create the rules and yet save a bunch of time, thank you.
Why is it that when I register or log in to Strapi, it gives me a 'JWT', which is fine because it contains the user's information, but why with that token, even if it is another user's, can you edit another user's data that doesn't even belong to you? You should only be able to update data that belongs to you. Why does this happen? It is because of the 'Authenticated' flag, i.e. if a user sees the API path, he can POST or PUT into another table as if he is an administrator just by getting the "JWT" when it should not be so. How can I make this part more secure?
I cover this in this video czcams.com/video/pWPtQtdxJZQ/video.html
anyone knows how to get the 7/admin/settings/application-infos menu logo image on the front end side???
Please do a video on how to deploy strapi on cpanel
It didn't work for me. May be on latest version it's not working
Does this work for other JavaScript frameworks as well?
Yes, Strapi works with any JavaScript framework
great tutorial
Hi,very nice video thank you for this video (and every other, im a big fan of strapi), i have a client which does not need all fields in rich text (for example image) and wants to ensure that its writers aren't using it in this rich text editor (as another block is made for and has much more customization enabled). It seems there is no way to filter the list of available fields to edit (heading, img, etc).
thank you. it's useful
how to reenter my strapi dashboard?
Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports. I had issues importing the Search. I had to change the Search.tsx to export default and import it into page.tsx without {} and it works. Maybe this helps someone
Where can we find this plugin?
This is Typescript, how can i find javascript code for signup and login page
Can I deploy the Strapi project to Vercel?
Not at the moment, but we are considering making this possible in the future
Out of curiosity, what are the reasons you would prefer hosting on Vercel rather than on Strapi Cloud?
@@pierreburgy7442 Vercel is free
In case someone struggles with the population and everything, I came up with another, much simpler solution. Instead of rewriting a fucking controller, you can filter the request to the parent route by the slug so it will return just a single element. This way you can populate fields as in any other request. Hope it helps someone. export async function getSingleBlog(slug) { const url = new URL('/api/blogs'); url.search = qs.stringify({ filters: { slug, }, populate: { cover: { fields: ['url', 'alternativeText', 'width', 'height'], }, category: { fields: ['otherFieldsYouMightNeed'], }, }, }); // logic for sending request goes here }
Is there any free substitute for that? I don't wanna pay for cloud version just to get that 1 function i need
This is the last video oF series ?
Yes, this is the last video of the series, but we will make more separate videos around Strapi and Next.js.
@@Strapi Nice now I can start whole series 😂
This one's a skip unless you don't know how to clone a repo... as elmassiraelmassira eloquently put, "bla bla".
Hi. Curious why you need to do that Awaited<ReturnType> for summary.
Installing strapi via terminal in vs code is extremely slow
How to set up strapi account ? And is it free ?
Strapi is free and open source; you have the freedom to deploy it anywhere you want.
Ive downloaded strapi in my already existing project ( next js, tailwind , typescript). Its my first time using it. So i downloaded it using npx create-strapi-app@latest backend which creates backend folder. I then navigate to that folder using cd backend and then run this command : npm run develop. But this command shows me an error related to tsconfig ( typescript error) im unable to run it
Hi guys, if you're not seeing the changes in the API, you'll need to go into the plugin directory, run the build and then restart the strapi in the root folder. The watch admin flag won't work. Wasted 40 mins.
Thank you for the comment. Sorry about that. Yes, you will need to rebuild the plugin when making admin-facing changes.
Can we have repeatable group field?
Will this homepage get indexed by google? Will it get rendered in serverside?
Yes, it will be indexed.
I already made my own renderer, only to find out you guys already made one! 😅 When video support for rich text editor?
Thanks Do you have video about using localization API for developers?
Part 8.2 Paging
Thank you for the call out, that was my fault, forgot to click public, should be out now czcams.com/video/eaBAVed1MFY/video.html
if anyone makes changes in code and it is not automatically reflected in the frontend then try this command npm run develop -- --watch-admin , I also face this issue
GoodJob!
GoodJob!
GoodJob!
GoodJob!
Cool. Is there a way to also get type safety for the Strapi endpoints? Some generated types to inject into the `fetchStrapiData` function perhaps
Hey this is Paul, I am still new to TS 😅 but here is an article where I go over one approach of being able to use Strapi types in your frontend application as explained to me by one of our engineers. strapi.io/blog/improve-your-frontend-experience-with-strapi-types-and-type-script In the future we are going to release an SDK that should simplify the process. But for now this is the approach I would use.
Awesome, this is what I need rn
can you share git repo link?
Really enjoyed this series of content - thanks for putting it together!