A modern and scalable AWS Student Builder Group at SRMIST Website built with TypeScript, Tailwind CSS v4, and shadcn/ui. This website is designed for production-ready applications with a clean architecture, reusable components, and developer-friendly tooling.
- Next.js 16.1.1 with App Router and React 19
- TypeScript for strong type safety
- React Compiler enabled for automatic performance optimizations
- ESLint configured with Next.js best practices
- Tailwind CSS v4 with PostCSS integration
- shadcn/ui component system powered by Radix UI
- Lucide React icon library
- Class Variance Authority for scalable component variants
- tailwind-merge and clsx for conditional styling
- Responsive design utilities and a custom mobile detection hook
- react-hot-toast for elegant notifications
- js-cookie for cookie management
- Clean folder structure with reusable components and utilities
| Technology | Version | Description |
|---|---|---|
| Next.js | 16.1.1 | React framework with App Router |
| React | 19.2.3 | UI library |
| TypeScript | ^5 | Static typing |
- Tailwind CSS
^4 - shadcn/ui
- Radix UI
- Lucide React
- Class Variance Authority (CVA)
- tailwind-merge
- clsx
- ESLint
^9 - Babel React Compiler
- PostCSS
git clone https://github.com/AWSSBG-SRMIST/club-website
cd club-websitenpm installor
yarn installor
pnpm installnpm run devor
yarn devor
pnpm devNavigate to:
http://localhost:3000
| Command | Description |
|---|---|
npm run dev |
Start the development server |
npm run build |
Build the application for production |
npm run start |
Start the production server |
npm run lint |
Run ESLint checks |
club-website/
βββ public/
β βββ file.svg
β βββ globe.svg
β βββ next.svg
β βββ vercel.svg
β βββ window.svg
β
βββ src/
β βββ app/
β β βββ favicon.ico
β β βββ globals.css
β β βββ layout.tsx
β β βββ page.tsx
β β
β βββ components/
β β βββ ui/
β β βββ badge.tsx
β β βββ button.tsx
β β βββ card.tsx
β β βββ carousel.tsx
β β βββ dialog.tsx
β β βββ input.tsx
β β βββ select.tsx
β β βββ separator.tsx
β β βββ sheet.tsx
β β βββ sidebar.tsx
β β βββ skeleton.tsx
β β βββ tooltip.tsx
β β
β βββ hooks/
β β βββ use-mobile.ts
β β
β βββ lib/
β βββ utils.ts
β
βββ components.json
βββ eslint.config.mjs
βββ next.config.ts
βββ package.json
βββ postcss.config.mjs
βββ tsconfig.json
- App Router enabled
- React Compiler enabled
- Strict TypeScript mode
- Path aliases configured
@/* β ./src/*- Tailwind CSS v4
- PostCSS integration
- CSS Variables enabled
- Zinc color palette
- New York shadcn/ui style
- React Server Components compatible
- Radix UI primitives
- Lucide React icons
- Accessible by default
- Next.js Core Web Vitals rules
- TypeScript support
- Optimized build directory ignores
- Card
- Separator
- Sheet
- Sidebar
- Button
- Input
- Select
- Badge
- Skeleton
- Tooltip
- Dialog
- Carousel
useIsMobile()hookcn()utility helper
All components are built with:
- Accessibility-first design
- Full TypeScript support
- Tailwind CSS styling
- CVA-based variants
This code follows a mobile-first approach and includes:
- Tailwind responsive utilities
- Mobile detection hook
- Adaptive layouts
- Default mobile breakpoint at 768px
npx shadcn@latest add <component-name>Modify:
src/app/globals.css
or update:
components.json
Import modules cleanly using:
import Button from "@/components/ui/button";instead of:
import Button from "../../components/ui/button";- Next.js Documentation
- React Documentation
- Tailwind CSS Documentation
- shadcn/ui Documentation
- Radix UI Documentation
- TypeScript Documentation
Built and maintained by Aakarsh.