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.