# Track: Work-ready Next.js
https://www.sanity.io/learn/track/work-ready-next-js

Build a functional, content-driven and dynamic web application that best serves your end-users, fellow developers and content authors.

---

## Courses

### [Content-driven web application foundations](https://www.sanity.io/learn/course/content-driven-web-application-foundations) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations.md)

- [Building content-editable websites](https://www.sanity.io/learn/course/content-driven-web-application-foundations/building-a-content-editable-website) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/building-a-content-editable-website.md)
- [Create a new Next.js 16 application](https://www.sanity.io/learn/course/content-driven-web-application-foundations/create-a-new-next-js-application) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/create-a-new-next-js-application.md)
- [Create a new Sanity project](https://www.sanity.io/learn/course/content-driven-web-application-foundations/create-a-new-sanity-project) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/create-a-new-sanity-project.md)
- [The next-sanity toolkit](https://www.sanity.io/learn/course/content-driven-web-application-foundations/the-next-sanity-toolkit) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/the-next-sanity-toolkit.md)
- [Query content with GROQ](https://www.sanity.io/learn/course/content-driven-web-application-foundations/writing-groq-queries) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/writing-groq-queries.md)
- [Generate TypeScript Types](https://www.sanity.io/learn/course/content-driven-web-application-foundations/generate-typescript-types) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/generate-typescript-types.md)
- [Fetch Sanity Content](https://www.sanity.io/learn/course/content-driven-web-application-foundations/fetch-sanity-content) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/fetch-sanity-content.md)
- [Git-based workflows](https://www.sanity.io/learn/course/content-driven-web-application-foundations/git-based-workflows) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/git-based-workflows.md)
- [Go live on Vercel](https://www.sanity.io/learn/course/content-driven-web-application-foundations/deploy-to-vercel) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/deploy-to-vercel.md)
- [Displaying images](https://www.sanity.io/learn/course/content-driven-web-application-foundations/displaying-images) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/displaying-images.md)
- [Block content and rich text](https://www.sanity.io/learn/course/content-driven-web-application-foundations/block-content-and-rich-text) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/block-content-and-rich-text.md)
- [Build up the blog](https://www.sanity.io/learn/course/content-driven-web-application-foundations/build-up-the-blog) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/build-up-the-blog.md)
- [Fundamentals quiz](https://www.sanity.io/learn/course/content-driven-web-application-foundations/fundamentals-quiz) · [markdown](https://www.sanity.io/learn/course/content-driven-web-application-foundations/fundamentals-quiz.md)

### [Controlling cached content in Next.js](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js) · [markdown](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js.md)

- [Caching Fundamentals](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/introduction) · [markdown](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/introduction.md)
- [Demystifying caching in development](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/debugging-caching-in-development) · [markdown](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/debugging-caching-in-development.md)
- [Combining Sanity CDN with the Next.js Cache](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/combining-sanity-cdn-with-the-next-js-cache) · [markdown](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/combining-sanity-cdn-with-the-next-js-cache.md)
- [Time-based cache revalidation](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/time-based-cache-revalidation) · [markdown](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/time-based-cache-revalidation.md)
- [Path-based revalidation](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/path-based-revalidation) · [markdown](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/path-based-revalidation.md)
- [Tag-based revalidation](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/tag-based-revalidation) · [markdown](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/tag-based-revalidation.md)
- [Quiz to win cache prizes](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/conclusion) · [markdown](https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/conclusion.md)

### [Integrated Visual Editing with Next.js](https://www.sanity.io/learn/course/visual-editing-with-next-js) · [markdown](https://www.sanity.io/learn/course/visual-editing-with-next-js.md)

- [Understanding Visual Editing](https://www.sanity.io/learn/course/visual-editing-with-next-js/understanding-visual-editing) · [markdown](https://www.sanity.io/learn/course/visual-editing-with-next-js/understanding-visual-editing.md)
- [Token handling and security](https://www.sanity.io/learn/course/visual-editing-with-next-js/token-handling-and-security) · [markdown](https://www.sanity.io/learn/course/visual-editing-with-next-js/token-handling-and-security.md)
- [Receiving live edits to drafts](https://www.sanity.io/learn/course/visual-editing-with-next-js/fetching-preview-content-in-draft-mode) · [markdown](https://www.sanity.io/learn/course/visual-editing-with-next-js/fetching-preview-content-in-draft-mode.md)
- [Configuring Presentation](https://www.sanity.io/learn/course/visual-editing-with-next-js/configuring-presentation) · [markdown](https://www.sanity.io/learn/course/visual-editing-with-next-js/configuring-presentation.md)
- [Setup document locations](https://www.sanity.io/learn/course/visual-editing-with-next-js/setup-document-locations) · [markdown](https://www.sanity.io/learn/course/visual-editing-with-next-js/setup-document-locations.md)
- [Add drag-and-drop elements](https://www.sanity.io/learn/course/visual-editing-with-next-js/add-drag-and-drop-elements) · [markdown](https://www.sanity.io/learn/course/visual-editing-with-next-js/add-drag-and-drop-elements.md)
- [Conclusion](https://www.sanity.io/learn/course/visual-editing-with-next-js/conclusions) · [markdown](https://www.sanity.io/learn/course/visual-editing-with-next-js/conclusions.md)

### [Build landing pages with Next.js](https://www.sanity.io/learn/course/page-building) · [markdown](https://www.sanity.io/learn/course/page-building.md)

- [An introduction to page builders](https://www.sanity.io/learn/course/page-building/an-introduction-to-page-builders) · [markdown](https://www.sanity.io/learn/course/page-building/an-introduction-to-page-builders.md)
- [Create page builder schema types](https://www.sanity.io/learn/course/page-building/create-page-builder-schema-types) · [markdown](https://www.sanity.io/learn/course/page-building/create-page-builder-schema-types.md)
- [Improve authoring with previews and thumbnails](https://www.sanity.io/learn/course/page-building/improved-ui-with-previews-and-thumbnails) · [markdown](https://www.sanity.io/learn/course/page-building/improved-ui-with-previews-and-thumbnails.md)
- [Render pages](https://www.sanity.io/learn/course/page-building/rendering-pages) · [markdown](https://www.sanity.io/learn/course/page-building/rendering-pages.md)
- [Render page builder blocks](https://www.sanity.io/learn/course/page-building/rendering-page-builder-blocks) · [markdown](https://www.sanity.io/learn/course/page-building/rendering-page-builder-blocks.md)
- [Creating a "home" page](https://www.sanity.io/learn/course/page-building/creating-a-home-page) · [markdown](https://www.sanity.io/learn/course/page-building/creating-a-home-page.md)
- [Drag and drop in Visual Editing](https://www.sanity.io/learn/course/page-building/drag-and-drop-in-visual-editing) · [markdown](https://www.sanity.io/learn/course/page-building/drag-and-drop-in-visual-editing.md)
- [Scaling page builders and pitfalls](https://www.sanity.io/learn/course/page-building/scaling-page-builders-and-pitfalls) · [markdown](https://www.sanity.io/learn/course/page-building/scaling-page-builders-and-pitfalls.md)

### [SEO optimized content with Next.js](https://www.sanity.io/learn/course/seo-optimization) · [markdown](https://www.sanity.io/learn/course/seo-optimization.md)

- [An introduction to SEO and structured content](https://www.sanity.io/learn/course/seo-optimization/an-introduction-to-seo-and-structured-content) · [markdown](https://www.sanity.io/learn/course/seo-optimization/an-introduction-to-seo-and-structured-content.md)
- [SEO schema types and metadata](https://www.sanity.io/learn/course/seo-optimization/seo-schema-types-and-metadata) · [markdown](https://www.sanity.io/learn/course/seo-optimization/seo-schema-types-and-metadata.md)
- [Extending the SEO schema types](https://www.sanity.io/learn/course/seo-optimization/adding-seo-fields-to-your-project) · [markdown](https://www.sanity.io/learn/course/seo-optimization/adding-seo-fields-to-your-project.md)
- [Implementing redirects](https://www.sanity.io/learn/course/seo-optimization/implementing-redirects) · [markdown](https://www.sanity.io/learn/course/seo-optimization/implementing-redirects.md)
- [Creating dynamic Open Graph images](https://www.sanity.io/learn/course/seo-optimization/creating-dynamic-open-graph-images-with-vercel-og) · [markdown](https://www.sanity.io/learn/course/seo-optimization/creating-dynamic-open-graph-images-with-vercel-og.md)
- [Generate social posts from your content](https://www.sanity.io/learn/course/seo-optimization/ai-generate-social-posts-from-your-content) · [markdown](https://www.sanity.io/learn/course/seo-optimization/ai-generate-social-posts-from-your-content.md)
- [Build a dynamic sitemap](https://www.sanity.io/learn/course/seo-optimization/building-a-dynamic-sitemap) · [markdown](https://www.sanity.io/learn/course/seo-optimization/building-a-dynamic-sitemap.md)
- [Generating JSON-LD dynamically](https://www.sanity.io/learn/course/seo-optimization/generating-json-ld-dynamically) · [markdown](https://www.sanity.io/learn/course/seo-optimization/generating-json-ld-dynamically.md)
- [Sanity SEO quiz](https://www.sanity.io/learn/course/seo-optimization/sanity-seo-quiz) · [markdown](https://www.sanity.io/learn/course/seo-optimization/sanity-seo-quiz.md)

---

## Related Resources

- [All courses and lessons](https://www.sanity.io/learn/sitemap.md)
- [Complete content for LLMs](https://www.sanity.io/learn/llms-full.txt)
