From e3d5e75299b7f1a8f3ba31bb289ecb99ff016978 Mon Sep 17 00:00:00 2001 From: Rami Bitar Date: Fri, 31 Jul 2026 22:12:19 -0400 Subject: [PATCH] Initial commit: Shopify storefront Next.js template Next.js 16 + React 19 storefront template with Shopify Storefront API integration, Tailwind v4, and shadcn/ui components. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_0111qSr3KopyGRsJ6LznR1xZ --- .gitignore | 5 + app.globals.json | 1 + app/collections/[handle]/page.tsx | 26 + app/collections/page.tsx | 26 + app/components/ui/loader.tsx | 96 ++ app/error.tsx | 25 + app/globals.css | 112 ++ app/layout.tsx | 40 + app/not-found.tsx | 20 + app/page.tsx | 26 + app/products/[handle]/page.tsx | 35 + app/shop/collections/page.tsx | 26 + components/About.tsx | 13 + components/magicui/aurora-text.tsx | 40 + components/magicui/blur-fade.tsx | 63 + components/shopify/cart-drawer.tsx | 250 +++ components/shopify/collection-card.tsx | 71 + components/shopify/collection-detail.tsx | 110 ++ components/shopify/collections.tsx | 121 ++ components/shopify/footer.tsx | 121 ++ components/shopify/header.tsx | 125 ++ components/shopify/product-card.tsx | 179 +++ components/shopify/product-detail.tsx | 3 + components/shopify/product-detail/index.tsx | 223 +++ .../product-detail/product-detail-gallery.tsx | 64 + .../product-detail/product-detail-info.tsx | 240 +++ .../shopify/product-recommendations.tsx | 76 + components/shopify/products.tsx | 238 +++ components/ui/accordion.tsx | 197 +++ components/ui/alert.tsx | 60 + components/ui/avatar.tsx | 81 + components/ui/badge.tsx | 54 + components/ui/breadcrumb.tsx | 149 ++ components/ui/button-group.tsx | 97 ++ components/ui/button.tsx | 70 + components/ui/card.tsx | 92 ++ components/ui/carousel.tsx | 245 +++ components/ui/dialog.tsx | 268 ++++ components/ui/empty.tsx | 105 ++ components/ui/input-otp.tsx | 86 + components/ui/input.tsx | 21 + components/ui/item.tsx | 213 +++ components/ui/pagination.tsx | 128 ++ components/ui/progress.tsx | 44 + components/ui/remix-icon.tsx | 44 + components/ui/select.tsx | 287 ++++ components/ui/sheet.tsx | 308 ++++ components/ui/skeleton.tsx | 13 + components/ui/sonner.tsx | 23 + components/ui/spinner.tsx | 38 + components/ui/switch.tsx | 74 + components/ui/table.tsx | 113 ++ components/ui/tabs.tsx | 143 ++ components/ui/textarea.tsx | 18 + graphql/cart.js | 137 ++ graphql/collections.js | 61 + graphql/products.js | 117 ++ hooks/use-shopify-cart.ts | 379 +++++ hooks/use-shopify-collections.ts | 127 ++ hooks/use-shopify-products.ts | 205 +++ instrumentation.ts | 1 + lib/cloud.ts | 7 + lib/utils.ts | 12 + next.config.js | 33 + package.json | 40 + postcss.config.mjs | 5 + services/shopify/client.js | 48 + tsconfig.json | 41 + yarn.lock | 1401 +++++++++++++++++ 69 files changed, 7960 insertions(+) create mode 100644 .gitignore create mode 100644 app.globals.json create mode 100644 app/collections/[handle]/page.tsx create mode 100644 app/collections/page.tsx create mode 100644 app/components/ui/loader.tsx create mode 100644 app/error.tsx create mode 100644 app/globals.css create mode 100644 app/layout.tsx create mode 100644 app/not-found.tsx create mode 100644 app/page.tsx create mode 100644 app/products/[handle]/page.tsx create mode 100644 app/shop/collections/page.tsx create mode 100644 components/About.tsx create mode 100644 components/magicui/aurora-text.tsx create mode 100644 components/magicui/blur-fade.tsx create mode 100644 components/shopify/cart-drawer.tsx create mode 100644 components/shopify/collection-card.tsx create mode 100644 components/shopify/collection-detail.tsx create mode 100644 components/shopify/collections.tsx create mode 100644 components/shopify/footer.tsx create mode 100644 components/shopify/header.tsx create mode 100644 components/shopify/product-card.tsx create mode 100644 components/shopify/product-detail.tsx create mode 100644 components/shopify/product-detail/index.tsx create mode 100644 components/shopify/product-detail/product-detail-gallery.tsx create mode 100644 components/shopify/product-detail/product-detail-info.tsx create mode 100644 components/shopify/product-recommendations.tsx create mode 100644 components/shopify/products.tsx create mode 100644 components/ui/accordion.tsx create mode 100644 components/ui/alert.tsx create mode 100644 components/ui/avatar.tsx create mode 100644 components/ui/badge.tsx create mode 100644 components/ui/breadcrumb.tsx create mode 100644 components/ui/button-group.tsx create mode 100644 components/ui/button.tsx create mode 100644 components/ui/card.tsx create mode 100644 components/ui/carousel.tsx create mode 100644 components/ui/dialog.tsx create mode 100644 components/ui/empty.tsx create mode 100644 components/ui/input-otp.tsx create mode 100644 components/ui/input.tsx create mode 100644 components/ui/item.tsx create mode 100644 components/ui/pagination.tsx create mode 100644 components/ui/progress.tsx create mode 100644 components/ui/remix-icon.tsx create mode 100644 components/ui/select.tsx create mode 100644 components/ui/sheet.tsx create mode 100644 components/ui/skeleton.tsx create mode 100644 components/ui/sonner.tsx create mode 100644 components/ui/spinner.tsx create mode 100644 components/ui/switch.tsx create mode 100644 components/ui/table.tsx create mode 100644 components/ui/tabs.tsx create mode 100644 components/ui/textarea.tsx create mode 100644 graphql/cart.js create mode 100644 graphql/collections.js create mode 100644 graphql/products.js create mode 100644 hooks/use-shopify-cart.ts create mode 100644 hooks/use-shopify-collections.ts create mode 100644 hooks/use-shopify-products.ts create mode 100644 instrumentation.ts create mode 100644 lib/cloud.ts create mode 100644 lib/utils.ts create mode 100644 next.config.js create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 services/shopify/client.js create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f69c3e6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +node_modules/* +.next +next-env.d.ts +.yarn/install-state.gz diff --git a/app.globals.json b/app.globals.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/app.globals.json @@ -0,0 +1 @@ +{} diff --git a/app/collections/[handle]/page.tsx b/app/collections/[handle]/page.tsx new file mode 100644 index 0000000..a2a3ba2 --- /dev/null +++ b/app/collections/[handle]/page.tsx @@ -0,0 +1,26 @@ +import Header from '@/components/shopify/header'; +import Footer from '@/components/shopify/footer'; +import CollectionDetail from '@/components/shopify/collection-detail'; + +export default function Page() { + return ( + <> +
+ +