🔴 Let's build a Modern Portfolio with NEXT.JS (Framer Motion, Tailwind CSS, Sanity.io, React) | 2023

  Переглядів 1,390,910

Sonny Sangha

Sonny Sangha

День тому

🚨 Join the world’s BEST developer community & course Zero to Full Stack Hero: www.papareact.com/course
🫂 Join my Community, "University of Code" for FREE: www.universityofcode.com
🔴 LOOKING FOR THE CODE? 🛠️
links.papareact.com/github
📩 Want coding problems (with solutions!) delivered to your inbox daily? www.papareact.com/dailycoding...
Join me as I teach you how to build a RESPONSIVE Modern Portfolio with NEXT.JS. You'll learn how to do the following in this build:
👉 Optimise Next.js to its FULL potential to build a website which loads in milliseconds!
👉 Use Sanity.io and its incredible CMS capabilities to power the backend, allowing you to easily update the contents of your portfolio from anywhere in the world!
👉 Add Silky smooth animations with Framer Motion for a unique & breathtaking UI/UX experience!
👉 Use Tailwind CSS to build a beautiful & responsive Modern website!
👉 Deploy your masterpiece to Vercel to showcase your skills to the world!
+ SO MUCH MORE!
🎙️ PODCAST
links.papareact.com/podcast
🌍 SOCIALS:
Instagram: links.papareact.com/instagram
Facebook: links.papareact.com/facebook
LinkedIn: links.papareact.com/linkedin
Twitter: links.papareact.com/twitter
Discord: links.papareact.com/discord
Newsletter: links.papareact.com/newsletter
❤️ SUPPORT
PAPA Merch: links.papareact.com/merch
Donate: links.papareact.com/donate
🕐 TIMESTAMPS:
00:00 Introduction
00:50 Build Showcase
05:01 Build Explanation (1/2)
06:09 Sanity Sponsorship
06:50 Build Explanation (2/2)
10:02 Setting up Next.js & TypeScript
15:12 Setting up Tailwind CSS
22:28 Initialising the Build
23:55 Building the Header Section (1/2)
27:42 Implementing React Social Icons Library
31:37 Building the Header Section (2/2)
36:10 Implementing Framer Motion
43:50 Building the Hero Section (1/2)
44:46 Implementing React Simple Typewriter Library
50:12 Adding Background Circles with Framer Motion
1:01:41 Building the Hero Section (2/2)
1:12:24 Building the About Section
1:25:10 Building the Work Experience Section
1:29:15 Building the Experience Cards in the Work Experience Section
1:41:26 Building the Skills Section
1:46:31 Building the Skill Component in the Skills Section
1:54:49 Building the Projects Section
2:07:12 Building the Contact Me Section (1/3)
2:10:14 Implementing Heroicons v2
2:14:42 Building the Contact Me Section (2/3)
2:20:24 Implementing React Hook Forms Library
2:23:41 Building the Contact Me Section (3/3)
2:28:59 Implementing Tailwind Scroll Bar Library
2:33:37 Adding the Home Button
2:35:16 Implementing Sanity
2:39:25 Changing & Adding in Sanity Schemas
2:51:49 Using GROQ to Query Data
2:54:27 Connecting Sanity to the Build
3:03:06 Creating Type Definitions
3:10:30 Creating Utility Functions to Fetch Data
3:14:11 Implementing Incremental Static Regeneration
3:19:33 Adding Sanity Data in the Header Section
3:22:46 Adding Sanity Data in the Hero Section
3:25:21 Adding Sanity Data in the About Section
3:27:36 Adding Sanity Data in the Work Experience Section
3:35:00 Adding Sanity Data in the Skills Section
3:37:05 Animating Icons in the Skills Section
3:39:25 Adding Sanity Data in the Projects Section
3:43:34 Final Build Explanation & Demo
3:45:45 Deploying to Vercel
3:52:32 Final Deployed Build Demo
3:53:30 Outro
#nextjs #portfolio #tutorial #javascript #sanityio #cms #beginner #tailwindcss #framermotion

КОМЕНТАРІ: 693
@SonnySangha
@SonnySangha Рік тому
📬Do you want DAILY coding problems sent DIRECTLY to your Inbox? (with solutions the next day) 👉 links.papareact.com/university
@ravi12rocks
@ravi12rocks Рік тому
​@@vnm_8945 use axios instead of the fetch method.then it will work. Worked for me.
@jeremymcdonald5281
@jeremymcdonald5281 Місяць тому
I concur. . . Bro is the DMX of the software engineering realm
@MindfulMoments-fl5ln
@MindfulMoments-fl5ln 5 днів тому
If anyone has completed this project, could you kindly share your code? I am encountering numerous issues with the responsiveness of the project.
@frankdearr2772
@frankdearr2772 Місяць тому
great topic, thanks 👍
@user-ed8zl7jo9e
@user-ed8zl7jo9e 2 місяці тому
Thank you!
@anime_edits_0962
@anime_edits_0962 16 днів тому
Bro 1no ❤❤❤❤😊
@KCODivyanshuKatyan
@KCODivyanshuKatyan 7 місяців тому
Quality content you earned a sub
@user-lq8jx8ji3s
@user-lq8jx8ji3s 7 місяців тому
Simply the best Sonny you are doing the best work Champ!!!
@therhythmatic
@therhythmatic Рік тому
This dude kept the exact same energy level for almost 4 hours. Last time I saw someone do that, it was DMX in concert.
@SonnySangha
@SonnySangha Рік тому
Hahahahaha love this comment
@fram1111
@fram1111 8 місяців тому
Petty cool!
@theoloisel4754
@theoloisel4754 Рік тому
works, chock-full thanks!
@laryssagomes6261
@laryssagomes6261 Рік тому
thank you straight to the point
@User_s590
@User_s590 8 місяців тому
the Socialicon on header for mail causes error
@lycan2494
@lycan2494 Рік тому
i needed this!!
@techie_teko8923
@techie_teko8923 Рік тому
this channel is Amazing ... THANK YOU
@ilmu_web
@ilmu_web 5 місяців тому
Wow, thanks for tutorial nice..
@ibrahimiltifat7045
@ibrahimiltifat7045 Рік тому
Thank you !!!
@kietttran
@kietttran Рік тому
Thank you 🙏
@toiletinspector
@toiletinspector Рік тому
Thanks Sonny! Loved the code along!
@kaioalexandremarques525
@kaioalexandremarques525 Рік тому
I sincerely love this man!
@SonnySangha
@SonnySangha Рік тому
I love you too thanks for being awesome!!!
@AlvinIngabo
@AlvinIngabo Рік тому
cheers man!
@abdelrahmanzaitoun4402
@abdelrahmanzaitoun4402 3 місяці тому
absolutely amazing sonny. keept it up bro
@--m.b.
@--m.b. 3 місяці тому
thanx, bro. Nice words - I'm in full agreement, 💯percent
@feliwein_cc
@feliwein_cc Рік тому
killer build man, wtf i love you
@evanmarshall9498
@evanmarshall9498 7 місяців тому
In the hero component for useTypeWriter you defined both a text and count const. Did you ever use the count variable?
@nandasoe5104
@nandasoe5104 Рік тому
I checked - everything is clean
@Tech_Alchemy
@Tech_Alchemy Рік тому
Thanks as always for your amazing content Sonny.
@nicholasbazzoni7084
@nicholasbazzoni7084 Рік тому
Great learning experience thank you .
@kamalchakma4927
@kamalchakma4927 Рік тому
appreciate the hardwork put behind this. such a underrated youtuber
@harishg9429
@harishg9429 Рік тому
coding is so much enjoyable with Sonny, thank you
@jakubwasilewski9518
@jakubwasilewski9518 Рік тому
Love this video
@guilhermemoreiraelias3107
@guilhermemoreiraelias3107 11 місяців тому
yes, perfect
@freewebdevelopment521
@freewebdevelopment521 Рік тому
Just amazing bro!!!!!!
@husseinkizz
@husseinkizz Рік тому
I think this channel is just underrated yet, am a web dev youtube channels nomad and I can say this is going to the moon!!!
@lokeshnegi5051
@lokeshnegi5051 Рік тому
you never disappoint with your content keep up the good work !
@derekprieur5258
@derekprieur5258 Рік тому
Really awesome video Sonny! Your energy throughout was great to see and I definitely learned a lot of new things 👍
@AndreaRiezzo
@AndreaRiezzo Рік тому
Your channel is a nice surprise. I'm looking forward to watch other good content. Thank you for sharing your knowledge!
@SonnySangha
@SonnySangha Рік тому
You’re welcome!!! Thanks for supporting!
@test3373
@test3373 Рік тому
THANK YOU!! THIS WAS THE BEST AND EASIEST TUTORIAL
@zydraakiss
@zydraakiss Рік тому
Did you deployed this tutorial project?
@lokeshnegi5051
@lokeshnegi5051 Рік тому
hey man if u have completed can u please share your gituhb code link
@jacobrose6661
@jacobrose6661 Рік тому
If you're getting issues with Hydration after making the Email logo clickable, its because you have nested tags. Social Icon is a component which contains an tag and Link is just a fancy a tag, so it will complain. I solved this by just using the url property of the social Icon and wrapping the get in touch with me text in a Link tag, which works since they are on the same level now and no longer nested.
@dknsapatin
@dknsapatin Рік тому
Thanks! This helped me a lot!
@mustafa-bilen
@mustafa-bilen Рік тому
or you can just give LegacyBehavior to tag its gonna work
@jesusxchristo
@jesusxchristo Рік тому
@@mustafa-bilen that worked perfectly thank you!
@SatyamKumar-vz6kg
@SatyamKumar-vz6kg Рік тому
I removed the link tag and just added onClick={() => (window.location.href = "#contact")} to motion.div
@gushawke4393
@gushawke4393 Рік тому
@@SatyamKumar-vz6kg THANK YOU
@tawfiqtb
@tawfiqtb Рік тому
you are changing my life bro ... keep doing what you do best
@tawfiqtb
@tawfiqtb Рік тому
am learning so much in a short time
@Forthepeople74
@Forthepeople74 Рік тому
I just love your content. Hard work matters
@danlake201
@danlake201 Рік тому
Thanks, this is a great video!!! Any suggestion on using clip path for backdrop of images in react or framer motion?
@rodrigofrancescani4223
@rodrigofrancescani4223 Рік тому
Love your energy, and the content is gold, you're a blessing !
@adeniyitaofik3832
@adeniyitaofik3832 Рік тому
I am pumped
@abhinavdhama3014
@abhinavdhama3014 Рік тому
This is what i was looking for . Franer motion ❤
@PeppiePeppa
@PeppiePeppa Рік тому
hey im getting Server Error TypeError: Only absolute URLs are supported. What did I do wrong here?
@jshy6847
@jshy6847 Рік тому
there is a way in react to make your redundant code look more cleaner, its using the loop method (map in the jsx). Makes the code alot cleaner and easy to use. You also edit the element only one time and all of them get the changes
@ismailMerced
@ismailMerced Рік тому
I use this method all the time for duplicates components nice tip
@ahmed27218
@ahmed27218 11 місяців тому
can any one face the issue of CSS styling not showing in the page
@WilliamTreble
@WilliamTreble 10 місяців тому
@@ahmed27218is it imported properly?
@Vikingsplayer
@Vikingsplayer Рік тому
awesome bro love your toturials and respect your effort to teach us like this
@qingyuanguan
@qingyuanguan Місяць тому
This video is so interesting. I've watched it several times without getting tired of it, it's amazing!
@charbelsarkis3567
@charbelsarkis3567 Рік тому
Amazing content. 🥰👍
@zementsega6196
@zementsega6196 Рік тому
amazing energy and content .thank you sonny sangha..
@Eternal_Image
@Eternal_Image Рік тому
Great work Sonny!
@jeromemanceau4263
@jeromemanceau4263 Рік тому
Thanks Sonny! It's always a pleasure to watch you working and explaining the code! Appreciate a lot!
@ThugLifeModafocah
@ThugLifeModafocah Рік тому
You, as usual, just killing it. Thanks Sonny.
@shaikhsanuar5339
@shaikhsanuar5339 Рік тому
Amazing
@ameersultanabbasi5596
@ameersultanabbasi5596 3 місяці тому
I was scrolling and searching who help me to build my next portfolio. after passing through many youtubers i finally came to ur channel. u r just awsm bro. keep ir up my prayer are with u bro
@umahatokula9586
@umahatokula9586 Рік тому
Your intro got me subscribed
@mdfaizal7629
@mdfaizal7629 Рік тому
When I run Vercel build I get error in 78:9 const pageInfo
@ensar6803
@ensar6803 Рік тому
this error gives me so much trouble I tried everything pls help.
@developermithu
@developermithu Рік тому
That is so cool 🔥
@bedohabashi6770
@bedohabashi6770 Рік тому
Without a doubt Sonny is the best #papafam
@saumya8407
@saumya8407 Рік тому
This is amazing. And this is 100 times better than the best selling udemy bootcamp. Thank you for sharing it for free.
@sheheryarqazi1006
@sheheryarqazi1006 Рік тому
You the one and only always make the most energetic tutorial 💯
@mrshephu
@mrshephu Рік тому
love u papaReact
@Jonalonathon
@Jonalonathon 10 місяців тому
THIS is the energy I'm looking for!! 🌟🍪🍰🤟
@SonnySangha
@SonnySangha 10 місяців тому
🤙🏽🔥
@armitaensani6572
@armitaensani6572 10 місяців тому
Cool bro, you really good
@thegoldenagelegendz4425
@thegoldenagelegendz4425 Рік тому
Sangha bhaijaan your content always rocked everyone.
@dineshkatariya5966
@dineshkatariya5966 Рік тому
I'm going to modify this project and use it as my portfolio website. Thanks man for such amazing content
@chad4698
@chad4698 Рік тому
smart me too
@xdeclipseytu_3790
@xdeclipseytu_3790 Рік тому
I’m new to tailwind css, I got mine uploaded but having an issue with smooth scroll that he got, would that be the issue with Google by any chance? Cause I went to his deployed page and it was the same thing there
@xibble_developer7474
@xibble_developer7474 Рік тому
Wow! Just started learning React and Next JS, this livestream/tutorial was quite helpful! Thank you Sonny! I'll look forward to more streams like this! :)
@anhbientu1420
@anhbientu1420 Рік тому
Nice video pro, keep it up!
@anmolpandita4405
@anmolpandita4405 8 місяців тому
i am getting error in header when doing the socials Cannot read properties of undefined (reading 'map')
@camoman1000
@camoman1000 Рік тому
Love the video! Would love to have this portfolio but with svelte/sveltekit or Astro with sanity cms
@clipartinc
@clipartinc Рік тому
Thanks for your videos! They help a lot. Can you do a NextAuth video using an Email provider using a mySQL database? Please use more mySQL database setups in your projects.
@sheheryarqazi1006
@sheheryarqazi1006 Рік тому
great teacher wish i could make you proud by learning
@chrisciampoli
@chrisciampoli Рік тому
Really cool
@carosendahl
@carosendahl Рік тому
The video is very good. I enjoy watching them. One comment though: Not everyone has a 4k screen resolution (3840 x 2160), so the apps need to usually be tweaked (sizes scaled down) to fit traditional smart phones and screen resolutions.
@xdeclipseytu_3790
@xdeclipseytu_3790 Рік тому
I’m new to tailwind css, I got mine uploaded but having an issue with smooth scroll that he got, would that be the issue with Google by any chance? Cause I went to his deployed page and it was the same thing there too
@pedroaznarez1879
@pedroaznarez1879 11 місяців тому
the website is'n really responsive. so thats something we'll have to do on our own
@MindfulMoments-fl5ln
@MindfulMoments-fl5ln 5 днів тому
If anyone has completed this project, could you kindly share your code? I am encountering numerous issues with the responsiveness of the project.
@PattyBeautCode
@PattyBeautCode Рік тому
This is the portfolio project for now to the future !
@SonnySangha
@SonnySangha Рік тому
❤🎉
@Zubairkhan-rb1fx
@Zubairkhan-rb1fx Рік тому
@@SonnySangha Error: getStaticProps is not supported in app/, detected in. I am getting this error.. Is it due to next13?
@briananderson8632
@briananderson8632 Рік тому
Sonny, first time watching one of your videos and I am impressed with how much content you cover in a matter of a few hours! Being a manager I don't get to code as often as I would like, but videos like this keep me energized. Quick question, in the projects section how did you make the images that show the project in the different form factors? That is a nice visual for each project that I would be interested in replicating.
@SonnySangha
@SonnySangha Рік тому
Thanks Brian!! Could you elaborate on your question and send it to our team email at papareact.team@gmail.com as it always gets buried here!
@maximilianojuega17
@maximilianojuega17 Рік тому
did you get an answer for this question ?
@derealratos6332
@derealratos6332 Рік тому
love your vibe and your content sonny I want to be more like you
@brianmanguriu9960
@brianmanguriu9960 Рік тому
This guy is amazing, great video and the way you solve the errors its just amazing good trainer.
@bukolaidowu6572
@bukolaidowu6572 Рік тому
Sonny thank you very much for this tutorial. When I was following the build I noticed that anytime i refreshed the page it snaped to the about section or the experience section instead of the Hero section. Please how can i fix this?
@davisnwanze4456
@davisnwanze4456 Рік тому
In case you have a prerendering error at "./". The problem is from getStaticProps. This function is trying to request from an api endpoint that hasn't been built yet. The api routes in this application are in the next js application which is getting built. To solve this issue take the logic from the getPageInfo, getExperience...etc and put it in the respective helper methods in the utils folder. Basically, make your request to sanity straight from the helper utils without the api routes. After I did this it deployed. So you will be fetching like this const res = await sanityClient.fetch(query) const experiences: Experience [ ] = result return experiences The query is your groq query string.
@tzuilee588
@tzuilee588 Рік тому
Thanks for your explanation buddy! It really helped me out! 😁
@Vaiez
@Vaiez Рік тому
any chance you could show the repo for this to compare? trying to figure out where i've gone wrong. thanks
@muhammadshadreza1636
@muhammadshadreza1636 Рік тому
I also am facing issues with deploy I used try catch in the index.tsx cause the data was not coming up now when giving "vercel deploy --prebuilt" then it's not working. ENOENT: no such file or directory, stat '/vercel/path0/.vercel/output/functions/_next/data/td_4cUkOhbVy6u7Kx0Fm8/index.json.func' though I see this dir in the .vercel build folder any thoughts on that? thanks in advance
@ArturLan
@ArturLan Рік тому
@@muhammadshadreza1636 Just delete this "data" folder and then run "vercel deploy --prebuilt"
@ArturLan
@ArturLan Рік тому
Thank you for explanation, that makes sense, so basically you can't call internal Next.JS APIs from getStaticProps. But I wonder then why vercel build worked on video?
@vijaynarayanan3258
@vijaynarayanan3258 Рік тому
great ui! It'd be much appreciated if you try to make these fully responsive starting from phone to desktop
@surecode6763
@surecode6763 Рік тому
hey bro i enjoy your every video amazing.....
@londelidess
@londelidess 26 днів тому
I love any projects you can configure contents in cms after deployed. That makes more sense to customer based products. I love this video!
@siemanara304
@siemanara304 9 місяців тому
a lot of bugs, that jump when scrolling is happening all the time, layout with title absolute is a mess, size is not perfectly fine it covers image and text from below is over the image. Ignoring the fact that is not working perfectly, tutorial was very useful and teach me something new e.g. motion, very well explained snapping etc. thank you
@bedohabashi6770
@bedohabashi6770 Рік тому
You are the best Sonny Sangha. You have helped and inspired me a lot brother. Because of I become a freelancer.
@SonnySangha
@SonnySangha Рік тому
Incredible!!! #PAPAFAM
@Zubairkhan-rb1fx
@Zubairkhan-rb1fx Рік тому
@@SonnySangha Error: getStaticProps is not supported in app/, detected in. I am getting this error.. Is it due to next13?
@samarthsheth8797
@samarthsheth8797 Рік тому
Everything is working on my localhost but I am not able to deploy it Its showing error in yarn run build while deployment. Any help
@prajwalladkat
@prajwalladkat Рік тому
have you got your website deployed successfully?
@samarthsheth8797
@samarthsheth8797 Рік тому
@@prajwalladkat no
@ramydaher6193
@ramydaher6193 Рік тому
Very niceee 👑❤️ Can you teach us how to build website with ruby and rails? Thank you 😊😍
@andreaskarz
@andreaskarz Рік тому
Hi Sonny, I love you videos they are full of energy, thank you. Wath do you think about Flowbite? I love it, then it saves a lot of work when you use Tailwind.
@ahurein1641
@ahurein1641 Рік тому
I couldn't finish the stream... thanks for posting it early
@jingli9232
@jingli9232 Рік тому
genius and angel to the community
@user-lq8jx8ji3s
@user-lq8jx8ji3s 7 місяців тому
Error occurred prerendering page "/projects". TypeError: Cannot read properties of null (reading 'default') .Export encountered errors on following paths: /projects/page: /projects How to fix this error ?
@apekshafernando2750
@apekshafernando2750 Рік тому
sonny This is my first testing react web and no words to say really.......... good Thanks sonny, love you 🖤🖤💯💥🍻
@ogulcanmdev
@ogulcanmdev Рік тому
Error occurred prerendering page "/". Anyone solve this problem. Edit; After 7 hours i solve it. Change the staticProps to serverSideProps.....
@tzuilee588
@tzuilee588 Рік тому
thanks man
@Vaiez
@Vaiez Рік тому
any chance you could show the repo for this to compare? trying to figure out where i've gone wrong. thanks
@nandk45523
@nandk45523 Рік тому
i am having the same error please show me to fix it
@Yusuf-zm7se
@Yusuf-zm7se Рік тому
Hi, can you help me with this? I'm going through the same problem. And I can't fix it.
@orlius
@orlius Рік тому
I find a solution, i had the same problem. Add some Environnement Variable (into the Vercel Project go to Setting) : NEXT_PUBLIC_SANITY_PROJECT_ID and NEXT_PUBLIC_BASE_URL With the right value. Don't forget the "" for the url. Let me know if it solve the problem on your side
@TomasJansson
@TomasJansson Рік тому
Great video. Is there a good reason to why you create the endpoints to get the data when everything is rendered server side? Can’t you just call sanity directly from getStaticProps?
@meannedelrosario1915
@meannedelrosario1915 9 місяців тому
is their coupon in sanity still working up today?
@franciscosouza1826
@franciscosouza1826 Рік тому
Thanks for the excellent video. + 1 subscriber.🙃
@chinyong2662
@chinyong2662 7 місяців тому
Hi a little late to the party. I followed the guide , except that I want to deploy it to a docker container. Everything works fine if I run “yarn run dev” however when I try to run “yarn build” it will fail. The problem is at getStaticProp. Because the sanity is not available at build time leading to generating of static file failed. Is there anyway to overcome this?
@NecroOP
@NecroOP Рік тому
man I missed this kind of tutorials lol. Great work here, thanks!!!
@msalam4248
@msalam4248 Рік тому
awesome.....
@cryptod6976
@cryptod6976 Рік тому
My bro, even though I'm a skilled NextJS developer, your videos especially this one still have room to add value myself. Really Appreciated!
@binodkhatri7738
@binodkhatri7738 Рік тому
@Crypto D do you have any idean about my issue please read the comment the issue am facing??
@thomasmortaro7597
@thomasmortaro7597 Рік тому
awesome video!! thank you! Just one thing, in my case the experience card and the projects doesn't scrool. Perhaps do you know why?
@jamangueira7
@jamangueira7 Рік тому
Me too. Did you manage to solve it?
@thomasmortaro7597
@thomasmortaro7597 Рік тому
@@jamangueira7 unfortunately no :(
@robbancroft
@robbancroft 8 місяців тому
sup yall
@dadtheautomator9553
@dadtheautomator9553 Рік тому
Love this guy's energy on a topic can overwhelmingly be a bit dry from other content creators!
10 Tailwind Classes I Wish I Knew Earlier
13:31
Web Dev Simplified
Переглядів 147 тис.
Кровосток - разговор с легендами / вДудь
2:12:57
Best frontend and backend projects for resume
13:11
Hitesh Choudhary
Переглядів 125 тис.
1 BILLION row challenge in Go - 2.5 Seconds!
45:33
Duane Bester
Переглядів 7 тис.
My Ultimate Software Developer Desk & Office Setup Tour (Dubai 2024)
41:16
This React UI Library is GAME CHANGER!
18:13
developedbyed
Переглядів 506 тис.
Unveiling My Secret To Charging Software Clients | Vlog #8
13:26
Sonny Sangha
Переглядів 8 тис.
Boston Dynamics' AI Atlas Robot is Actually Terrifying
7:04
An Artificial Mind
Переглядів 1,5 тис.
Why I don't use React-Query and tRPC in Next.js
18:58
ByteGrad
Переглядів 63 тис.
Кровосток - разговор с легендами / вДудь
2:12:57