--- layout: ~/layouts/MainLayout.astro title: Built-In Components --- Astro includes several builtin components for you to use in your projects. All builtin components are available via `import {} from 'astro/components';`. ## `` ```astro --- import { Code } from 'astro/components'; --- ``` This component provides syntax highlighting for code blocks at build time (no client-side JavaScript included). The component is powered internally by shiki and it supports all popular [themes](https://github.com/shikijs/shiki/blob/main/docs/themes.md) and [languages](https://github.com/shikijs/shiki/blob/main/docs/languages.md). You can also use the `` component for syntax highlighting powered by the [Prism](https://prismjs.com/) syntax highlighting library. This is the library that Astro's Markdown uses by default. However, we will be transitioning all usage over to `` as we move towards our v1.0 release. ## `` ```astro --- import { Markdown } from 'astro/components'; --- # Markdown syntax is now supported! **Yay!** ``` See our [Markdown Guide](/guides/markdown-content) for more info. ## `` ```astro --- import { Prism } from 'astro/components'; --- ``` This component provides language-specific syntax highlighting for code blocks. Since this never changes in the client it makes sense to use an Astro component (it's equally reasonable to use a framework component for this kind of thing; Astro is server-only by default for all frameworks!). See the [list of languages supported by Prism](https://prismjs.com/#supported-languages) where you can find a language's corresponding alias. And, you can also display your Astro code blocks with lang="astro"! ## `` ```astro --- import Debug from 'astro/debug'; const serverObject = { a: 0, b: "string", c: { nested: "object" } } --- ``` This component provides a way to inspect values on the clientside, without any JavaScript.