Shadcn.io is not affiliated with official shadcn/ui
Install shadcn/ui Gatsby
Install shadcn/ui in Gatsby projects with static site generation and React components. Complete setup guide for TypeScript and Tailwind CSS.
How to install shadcn/ui with Gatsby
Gatsby's static site generation combined with shadcn/ui components gives you blazing fast marketing sites, blogs, and documentation with interactive elements where needed.
Gatsby setup guide
Create a new Gatsby site
npm init gatsby
cd my-gatsby-siteFollow the prompts, choosing:
- TypeScript (recommended)
- Tailwind CSS for styling
Configure path mapping
Add to tsconfig.json:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}Update gatsby-node.js:
const path = require("path");
exports.onCreateWebpackConfig = ({ actions }) => {
actions.setWebpackConfig({
resolve: {
alias: {
"@": path.resolve(__dirname, "src"),
},
},
});
};Initialize shadcn/ui
npx shadcn@latest initConfigure when prompted:
- Style: Choose your preference
- Base color: Pick your theme
- CSS variables: Yes (recommended)
Add components
npx shadcn@latest add button card navigation-menuUse in your pages:
// src/pages/index.tsx
import * as React from "react";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
const IndexPage = () => {
return (
<main className="container mx-auto p-8">
<Card>
<CardHeader>
<CardTitle>Welcome to Gatsby + shadcn/ui</CardTitle>
</CardHeader>
<CardContent>
<p>Build fast sites with beautiful components</p>
<Button className="mt-4">Get Started</Button>
</CardContent>
</Card>
</main>
);
};
export default IndexPage;File structure
Deployment
Gatsby + shadcn/ui deploys anywhere:
| Platform | Setup | Best For |
|---|---|---|
| Gatsby Cloud | Optimized for Gatsby | Official Gatsby hosting |
| Netlify/Vercel | Great DX and previews | Excellent developer experience |
| AWS S3 + CloudFront | Cost-effective at scale | Enterprise scale and control |
| GitHub Pages | Free for open source | Free static site hosting |
Common issues
Build errors
If you get module resolution errors during build:
// gatsby-node.js
exports.onCreateWebpackConfig = ({ stage, actions }) => {
if (stage === "build-javascript" || stage === "develop") {
actions.setWebpackConfig({
resolve: {
alias: {
"@": path.resolve(__dirname, "src"),
},
},
});
}
};Styling in production
Ensure Tailwind processes all component files:
// tailwind.config.js
module.exports = {
content: ["./src/**/*.{js,jsx,ts,tsx}"],
};Next steps
With Gatsby + shadcn/ui configured:
- Browse official components for forms, tables, and UI elements
- Add charts for data visualization
- Explore community components for extended functionality
- Add useful hooks to enhance your components
- Use pre-built blocks to quickly build common layouts
Gatsby's powerful data layer and build optimizations paired with shadcn/ui's component library creates perfect static sites that load instantly.
Questions you're probably thinking
Install shadcn/ui Astro
Install shadcn/ui in Astro projects with React components and island architecture. Step-by-step guide for TypeScript and Tailwind CSS setup.
Install shadcn/ui Laravel
Install shadcn/ui with Laravel and Inertia.js for React components in PHP applications. Complete setup guide for TypeScript integration.