My Favorite Way to Use Markdown in NextJS

2023 ж. 15 Мам.
50 287 Рет қаралды

Markdown is so nice for building fast, static pages. It has so many use cases too. Blog? Legal pages? Course content? Markdown or MDX (React components inside of markdown) got your back. This is by far the coolest way to use Markdown inside of your NextJS project I've ever seen.
Repo I learned this from: github.com/shadcn/taxonomy
My GitHub: github.com/joschan21
Discord: / discord
Twitter: / joshtriedcoding

Пікірлер
  • Just wanted to share that I'm quite happy I came across your channel (when I was looking at NextJS 13 content a couple of days ago). You explain things quite well and clearly!

    @andrevenancio@andrevenancio Жыл бұрын
  • The algorithm is strong, I found your video while taking a break from implementing MDX in my NextJS app 😂 Went back, scrapped the whole thing and used your way which was much more simple and TYPE-SAFE!!!

    @maxijonson@maxijonson9 ай бұрын
  • Good Explanation. I just want to know is there any way to add the mdx from db side ? I mean I want to have a blog frontend and CMS to push new blogs.

    @sayakduttaa@sayakduttaa7 ай бұрын
  • I've been using contentlayer since your video about ShadCN's Taxonomy project (that is where I found it) and I absolutely love it. By the way, do you have any similar Nextjs repos to recommend?

    @letfoobar@letfoobar Жыл бұрын
    • That is exactly what I wand to say

      @namdev2252@namdev2252 Жыл бұрын
  • Great content. I am writing a blog website (i am new in coding) I just have a concern about plugins. This plugins can stop working?

    @MAMUT1108@MAMUT11085 ай бұрын
  • Hey Josh, Do you have any Idea of Using MUI in Next Js 13.4?

    @sunilnune5681@sunilnune5681 Жыл бұрын
  • Hi josh, does contentlayer optimizes the images in the mdx using Next/Image?

    @jerbparagas3924@jerbparagas39243 ай бұрын
  • Great content! Maybe you might also like the Nextra project. MDX + NextJS + Simple.

    @marcwittwer8367@marcwittwer8367 Жыл бұрын
  • Hi josh can u please tell the vs code theme youre using I really kinda like it

    @nisabmohd@nisabmohd Жыл бұрын
  • Great ! I am looking for a nice mdx editor that can be integrated in NextJS . Do you know one ? Thanks

    @christophelombart@christophelombart2 ай бұрын
  • In the last part of declaring the components for the styling, could it be done with tailwind prose?

    @Retrosen@Retrosen Жыл бұрын
    • Anywhere you can use CSS you can use Tailwind using the @apply directive, however, this is also done at build, not runtime, so as long as your generated HTML contains the class tags, it'll be evaluated the same in the browser.

      @PatrickHanford@PatrickHanford8 ай бұрын
  • Is it working as well, if the content is not in mdx files but in a database?

    @akosbalint3485@akosbalint3485 Жыл бұрын
  • can you share your vscode setup some time? specifically for nextjs

    @resxurrection9846@resxurrection9846 Жыл бұрын
  • Thanks for awesome work mate, really appreciate it ❤

    @saman6199@saman6199 Жыл бұрын
    • Cheers man

      @joshtriedcoding@joshtriedcoding Жыл бұрын
  • I recommend new ContentLayer+Notion combo for live remote update ! Manual mdx file updates suck

    @maverick456-33@maverick456-33 Жыл бұрын
  • Could this be tweaked for rendering markdown content from a server?

    @conor909@conor9093 ай бұрын
  • I was using strapi and next 13 I can't render bullet list and quotes using React Markdown can you tell why and how to solve that please

    @faizansohail5855@faizansohail5855 Жыл бұрын
  • hey i have an idea. i need to create blog project. all the blog content are stored as mdx in github repo of same project. and i want to render mdx in screen. so. and for crud. i have simple cms. which for creation i will build form and after submitting the form the form data is then converted into markdown file and uploaded to that repo. hence this works for update delete. Is this is efficient way??? . I want to make fully dynamic blog posts

    @saphalpantha3755@saphalpantha37557 ай бұрын
  • You still feel contentlayer is good now that it isnt being maintained?

    @armantgoldswain3951@armantgoldswain39513 ай бұрын
  • will this method work with rich text when using strapi and next 13

    @faizansohail5855@faizansohail5855 Жыл бұрын
  • you import Mdx Component to parse the JSON from who?

    @landolsi@landolsi5 ай бұрын
  • Great content! Do you have a Linkedin account, Josh? I want to recommend a video of yours on the platform.

    @edirodriguezsantillana@edirodriguezsantillana Жыл бұрын
  • What is the name of the extension you are using for snippets : fc -> functional component ?

    @rhmhr@rhmhr Жыл бұрын
    • Did you figure this out?

      @wowzande@wowzande8 ай бұрын
    • It is custom defined User Snippets in Vs Code : 1. Open Vs Code 2. Go to Settings > User Snippets > Give a new name for you snippet or Type ` Functional Component -Ts > Enter > Paste This : { "new Function Component": { "prefix": "fc", // ⬅ String to be entered into the editor for snippet call "body": [ //⬅ The string to be inserted. To enter multiple lines, write an array. "import { FC } from 'react';", "", "interface ${1:$TM_FILENAME_BASE}Props {};", "", "const ${1:$TM_FILENAME_BASE}: FC = ({}) => {", " return $2 ;", "};", "", "export default ${1:$TM_FILENAME_BASE};" ], "description": "Template of new FC", } } 3. Save and Exit Note : Anything you write in the prefix is the keyword to use the snippet.

      @felixnewray477@felixnewray4776 ай бұрын
  • Well explained. Should've used a heading or a codeblock in the markdown after you set up everything for a "wow" effect . You cheated yourself out of it :D

    @nvsWhocares@nvsWhocares Жыл бұрын
  • I've got this error: TypeError: The "code" argument must be of type number. Received an instance of Object then pnpm contentlayer build. What should I look for?

    @ivuga1800@ivuga18008 ай бұрын
    • did you find the error? I am having the same issue

      @GabrielMartinez-ez9ue@GabrielMartinez-ez9ue6 ай бұрын
  • Thank You 🖤

    @sahadpop4135@sahadpop41356 ай бұрын
  • hello josh can u make another video abaout mdx like tutorial?

    @tnnz9920@tnnz99206 ай бұрын
  • bro where is the repo in the description

    @dewedeth@dewedeth Жыл бұрын
  • contentlayer is currently in beta can we use for production

    @udaym4204@udaym4204 Жыл бұрын
    • The authors of ContentLayer have given up on maintaining the project

      @louiscai7920@louiscai79203 ай бұрын
  • I don't see the tutorial ... He talk about contentLayer ?

    @wilonweb@wilonweb5 ай бұрын
  • bro we need links to these projects in the video, its hard to follow up without the source code

    @kayondoedward@kayondoedward Жыл бұрын
    • Especially when we can't get it working. It's difficult to go through everything character-by-character and try to figure out why.

      @deanwitcraft461@deanwitcraft4614 ай бұрын
  • How to setup Google analytics in nextjs 13 ?

    @rithick3280@rithick3280 Жыл бұрын
  • 😁非常有帮助

    @wenboli2257@wenboli22578 ай бұрын
  • Cries in astro

    @joeyywill1234@joeyywill1234 Жыл бұрын
  • please make project create a blog and markdown in next js like taxonomy but more simple

    @nolep5555@nolep5555 Жыл бұрын
  • Contentlayer is not compatible with Next.js version 14. ☹

    @KozaKrisz@KozaKriszАй бұрын
    • yes it's

      @ratasobreviviendoenlascloa4847@ratasobreviviendoenlascloa4847Ай бұрын
  • Hey josh, can you make a QR code menu app or something with clerk? I like your videos 🎉 and I would like to see long tutorials m8

    @wcatly@wcatly Жыл бұрын
    • Sounds cool, don't really get the connection between both though. Mind elaborating?

      @joshtriedcoding@joshtriedcoding Жыл бұрын
    • @@joshtriedcoding Exactly, there will be a Dashboard, the restaurant owner will be able to add categories etc. from there and we will add auth to this panel with clerk

      @wcatly@wcatly Жыл бұрын
    • @@wcatly code it your self 😂 nobody will do your job.

      @mcbabo1343@mcbabo1343 Жыл бұрын
  • bro provide us react series pls..🤞

    @mohitchandola3435@mohitchandola3435 Жыл бұрын
  • ahhhhhhh dude I could kiss you right now but the fact that you look like you're 14 makes that even weirder. I've been working with jupyter a ton after going back to my formal education in physics after working as a developer for the past 8 years and I sooo regret not exploring this further sooner. Contentlayer was that missing piece I was missing for sure.

    @andrewiglinski148@andrewiglinski1489 ай бұрын
  • Mr Josh, angled or square [ ] ?

    @shinchima@shinchima8 ай бұрын
  • Fireship style yeee, now you can focus more on explaining than writing code..

    @agcodes@agcodes Жыл бұрын
  • Bro you think we didn't notice. You just flamed all of us "For you users" (if you have any) 😭

    @xya6648@xya664810 ай бұрын
  • Rather than doing all that shit, i will just create a component as a template and make a page all the docs page static instead of dynamic, cause i only need few pages

    @paglagamer8871@paglagamer88712 ай бұрын
  • I think Astro is better use case if you intend to center your site around markdown. You literally just got up an Astro project, and just build a posts directory and you’re ready to roll.

    @kimbapslayer1995@kimbapslayer1995 Жыл бұрын
  • First 🎉😂❤

    @nubian_goat@nubian_goat Жыл бұрын
    • My man is way too fast

      @joshtriedcoding@joshtriedcoding Жыл бұрын
  • Cli error on building contentlayer code: 'ERR_INVALID_ARG_TYPE'

    @rajatnaik7812@rajatnaik7812 Жыл бұрын
    • Do you discovered how to fix?

      @vitorac412@vitorac4129 ай бұрын
  • Hmm, i just get 404 page, though I am not using /app likke you, but /src/pages. Blog stuff is at /src/pages/blog/helloworld.mdx and /src/pages/blog/[slug]/page.tsx

    @michaelmannucci8585@michaelmannucci858511 ай бұрын
    • I know this is a month old but your page should be named index.tsx rather than page.tsx. alternatively, you could just remove the [slug] folder and name your file [slug].tsx and place it inside the blog folder

      @laurens2562@laurens256210 ай бұрын
    • I was having a similar issue with the app router, and realised that my slugAsParams wasn't generating / setup correctly through contentlayer.config.js. If you're still looking at it, maybe take a look there?

      @connorwforsyth@connorwforsyth3 ай бұрын
KZhead