A modern, fully rewritten version of the BlockchainUNN website built with Next.js 14, TypeScript, and TailwindCSS.
- Next.js 14 with App Router
- TypeScript with strict type checking
- TailwindCSS with shadcn/ui components
- Zustand for client-side state management
- TanStack React Query for server state management
- Server Actions for API calls
- Responsive Design with mobile-first approach
- Dark/Light Theme toggle
- Error Boundary with toast notifications
- Content Management system with extracted content files
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: TailwindCSS + shadcn/ui
- State Management: Zustand (client) + React Query (server)
- HTTP Client: Native Fetch API with Server Actions
- Icons: React Icons
- Fonts: Google Fonts (Raleway, JetBrains Mono) + Wallpoet
- Notifications: React Toastify
- Animations: Tailwind CSS animations
blockchain-unn-nextjs/
├── app/ # Next.js App Router
│ ├── (dashboard)/ # Route groups
│ ├── actions/ # Server Actions
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page
│ └── providers.tsx # Context providers
├── components/ # React components
│ ├── ui/ # shadcn/ui components
│ ├── layout/ # Layout components
│ ├── home/ # Home page components
│ └── common/ # Shared components
├── content/ # Content management
├── hooks/ # Custom hooks
│ ├── crud/ # CRUD hooks
│ ├── custom/ # Custom utility hooks
│ └── store/ # Zustand stores
├── lib/ # Utility libraries
├── types/ # TypeScript type definitions
└── public/ # Static assets
- Node.js 18+
- npm or yarn or pnpm
- Clone the repository
git clone <repository-url>
cd blockchain-unn-nextjs- Install dependencies
npm install
# or
yarn install
# or
pnpm install- Set up environment variables
cp .env.example .env.localEdit .env.local with your configuration values.
- Install shadcn/ui components (as needed)
npx shadcn-ui@latest add button
npx shadcn-ui@latest add input
npx shadcn-ui@latest add card
npx shadcn-ui@latest add toast
# Add other components as needed- Run the development server
npm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 in your browser.
Content is managed through TypeScript files in the content/ directory:
// content/home.ts
export const homeContent = {
hero: {
title: "Your Title",
subtitle: "Your Subtitle",
// ...
},
};- Create Server Action in
app/actions/:
"use server";
export async function myApiCall(data: MyType) {
// API logic here
}- Create React Query Hook in
hooks/crud/:
export const useMyApiCall = () => {
return useMutation({
mutationFn: myApiCall,
// ...
});
};- Add Query Key to
lib/queryKeys.ts:
export const QUERY_KEYS = {
myApiCall: makeQueryKey("my_api_call"),
};Use the custom Text component for consistent typography:
import { Text } from "@/components/common/Text";
<Text variant="h1" size="2xl" weight="bold" color="primary">
My Heading
</Text>;Use the useTheme hook for theme-aware components:
import { useTheme } from "@/hooks/store/useTheme";
const { isDarkMode, toggleTheme } = useTheme();- Framework Migration: React + React Router → Next.js App Router
- Language: JavaScript → TypeScript with strict types
- State Management: Redux → Zustand + React Query
- API Layer: Axios → Server Actions + Fetch API
- Content: Hardcoded → Extracted to content files
- Components: Class components → Functional with hooks
- Styling: Maintained TailwindCSS, added shadcn/ui
- Better SEO with Next.js SSR/SSG
- Improved Performance with automatic optimizations
- Type Safety with TypeScript
- Better Developer Experience with modern tooling
- Easier Maintenance with separated concerns
- Scalable Architecture with modular structure
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run type-check- Run TypeScript type checking
The project follows:
- ESLint for code linting
- TypeScript strict mode for type safety
- Prettier for code formatting (recommended)
- Next.js conventions for file structure
- PhotoCurl component
- Skills component
- Feedback component
- UpcomingEvents component
- PastEvents component
- Partners component
- Newsletter component
- Footer component
- About page components
- Community page components
- Event registration forms
- Hackathon dashboard
- Form validation with Zod
- Image optimization
- Loading states
- Error pages (404, 500)
- SEO optimization
- Analytics integration
- Performance monitoring
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For support and questions:
- Create an issue on GitHub
- Contact the development team
- Check the documentation
Built with ❤️ by the BlockchainUNN development team.