A modern, responsive website built with Next.js 15 and React 19
- About
- Features
- Tech Stack
- Getting Started
- Project Structure
- Available Scripts
- Key Components
- API Routes
- Deployment
- Contributing
- License
Ddigital is a dynamic design agency and digital media services provider based in Colombo, Sri Lanka. This website showcases our portfolio, services, and provides a contact interface for potential clients. The platform is built with modern web technologies to deliver a seamless, performant user experience.
Vision: To be the catalyst for transformation in the digital landscape of Sri Lanka, empowering small businesses and startups with affordable, industry-grade design and digital media services.
- π¨ Modern UI/UX - Clean, professional design with smooth animations
- π± Fully Responsive - Optimized for desktop, tablet, and mobile devices
- β‘ Performance Optimized - Server-side rendering, image optimization, and React 19 compiler
- π¬ Interactive Sections - Hero, About, Services, Work Portfolio, Testimonials, Contact
- π§ Contact Form - Email integration with Nodemailer
- πΌοΈ Image Optimization - Next.js Image component with blur placeholders
- π Carousel/Slider - Interactive work showcase using Swiper
- π₯ Video Embeds - YouTube integration with react-lite-youtube-embed
- π Toast Notifications - User feedback with react-hot-toast
- βΏ Accessibility - ARIA labels and semantic HTML
- π― SEO Optimized - Metadata, Open Graph tags, and structured data
- Next.js 15.0.3 - React framework with App Router
- React 19.0.0 - UI library with experimental compiler
- TypeScript 5.6.3 - Type-safe JavaScript
- Tailwind CSS 3.4.15 - Utility-first CSS framework
- PostCSS 8.4.49 - CSS transformation tool
- Autoprefixer 10.4.20 - Vendor prefix automation
- FontAwesome 6.7.1 - Icon library
- Swiper 11.1.15 - Touch slider
- React Hot Toast 2.4.1 - Toast notifications
- React Lite YouTube Embed 2.4.0 - Lightweight YouTube embeds
- Nodemailer 7.0.10 - Email sending
- Next.js API Routes - Serverless API endpoints
- ESLint 9.14.0 - Code linting
- Prettier 3.3.3 - Code formatting
- Babel React Compiler - Experimental React optimization
Ensure you have the following installed:
- Node.js >= 18.x (LTS recommended)
- npm >= 9.x or yarn >= 1.22.x or pnpm >= 8.x
- Git for version control
-
Clone the repository
git clone https://github.com/codezelat/ddigital-site.git cd ddigital-site -
Install dependencies
npm install # or yarn install # or pnpm install
Create a .env.local file in the root directory:
# Email Configuration (Nodemailer)
NODEMAILER_EMAIL=[email protected]
NODEMAILER_PASSWORD=your-app-password
# Optional: Custom configurations
NEXT_PUBLIC_SITE_URL=https://ddigital.lk- For Gmail, use App Passwords instead of your regular password
- Never commit
.env.localto version control - Add
.env.localto your.gitignorefile
npm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 in your browser.
# Build the application
npm run build
# Start production server
npm run startnpm run lintddigital-site/
βββ public/ # Static assets
β βββ img/ # Images
β β βββ brand/ # Brand assets
β β βββ clients/ # Client logos
β β βββ services/ # Service images
β β βββ services-hover/ # Service hover states
β β βββ work/ # Portfolio thumbnails
β β βββ work-hover/ # Portfolio hover states
β βββ work/ # Portfolio PDFs
β
βββ src/
β βββ app/ # Next.js App Router
β βββ api/ # API routes
β β βββ email/
β β βββ route.ts # Email sending endpoint
β β
β βββ components/ # React components
β β βββ about-section/
β β βββ contact-section/
β β βββ hero-section/
β β βββ maintenance-section/
β β βββ services-section/
β β βββ testimonials-section/
β β βββ work-section/
β β
β βββ footer.tsx # Footer component
β βββ header.tsx # Header/Navigation
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
β βββ globals.css # Global styles
β
βββ .env.local # Environment variables (not in git)
βββ next.config.ts # Next.js configuration
βββ tailwind.config.ts # Tailwind CSS config
βββ tsconfig.json # TypeScript config
βββ postcss.config.js # PostCSS config
βββ package.json # Dependencies
βββ README.md # This file
| Script | Description |
|---|---|
npm run dev |
Start development server on http://localhost:3000 |
npm run build |
Create optimized production build |
npm run start |
Start production server |
npm run lint |
Run ESLint to check code quality |
- Sticky navigation with blur effect
- Smooth scroll to sections
- Mobile-responsive menu
- CTA button
- Animated text rotation
- Eye-catching design
- Scroll trigger button
- Company introduction
- Embedded YouTube video
- Responsive layout
- Interactive service cards
- Hover effects with image transitions
- External links to service details
- Swiper carousel for portfolio
- Category labels
- PDF case studies
- Navigation arrows and pagination
- Client testimonials slider
- Social proof
- Contact form with validation
- Email integration
- Toast notifications
- Responsive design
- Site navigation
- Contact information
- Social media links
- Copyright information
Sends contact form emails using Nodemailer.
Request Body:
{
name: string;
email: string;
subject: string;
messageBody: string;
}Response:
// Success
{
message: "Email sent";
}
// Error
{
error: string;
}Status Codes:
200- Email sent successfully400- Validation error500- Server error
-
Connect Repository
- Import your Git repository to Vercel
- Vercel will auto-detect Next.js
-
Configure Environment Variables
- Add
NODEMAILER_EMAILandNODEMAILER_PASSWORDin Vercel dashboard
- Add
-
Deploy
- Push to your main branch
- Vercel automatically deploys
# Build the application
npm run build
# The output is in .next/ folder
# Deploy .next/ folder to your hosting providerEnsure all environment variables are set in your hosting platform:
NODEMAILER_EMAILNODEMAILER_PASSWORD
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow existing code style
- Use TypeScript for type safety
- Write meaningful commit messages
- Test your changes before submitting
This project is proprietary software developed for Ddigital by Codezela Technologies.
Ddigital - Digital Media Hub
- π Website: https://ddigital.lk
- π§ Email: [email protected]
- π± Phone: +94 72 733 3577
- π Address: 345/35, RIT Alles Mw, Colombo 08, 00800, Sri Lanka
Social Media:
- Codezela Technologies - Parent company
- Next.js Team - Framework
- Vercel - Hosting platform
- All open-source contributors
Built with β€οΈ by Codezela Technologies
Β© 2024 Ddigital. All rights reserved.