diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..b903359
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,80 @@
+# Node modules directory
+node_modules
+
+# Logs
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Build output directories
+out
+dist
+build
+
+# Dependency directories
+jspm_packages
+typings
+
+# Optional npm cache directory
+.npm
+
+# dotenv environment variable files
+.env
+.env.local
+.env.development
+.env.test
+.env.production
+
+# Git files
+.git
+.gitignore
+
+# Docker files
+Dockerfile
+.dockerignore
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+
+# OS files
+.DS_Store
+Thumbs.db
+
+# Test files and configurations
+e2e
+tests
+coverage
+jest.config.js
+jest.setup.js
+playwright.config.ts
+
+# Documentation and markdown files
+README.md
+LICENSE
+*.md
+
+# Configuration and setup files not needed in the final image
+renovate.json
+git-conventional-commits.yaml
+.eslintrc.js
+.eslintignore
+stylelint.config.js
+babel.config.js
+
+# Scripts and other development utilities
+report-bundle-size.js
+instrumentation.ts
+
+# Ignore all source map files
+*.map
+
+# Ignore any other unwanted files
+npm-debug.log
+
+# Exclude package-lock.json if you're using Yarn
+package-lock.json
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..95cdb3e
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,43 @@
+# Stage 1: Install dependencies
+FROM node:20-alpine AS deps
+WORKDIR /app
+
+# Copy only package.json and yarn.lock to leverage Docker cache
+COPY package.json yarn.lock ./
+
+# Install dependencies
+RUN yarn install --frozen-lockfile
+
+# Stage 2: Build the application
+FROM node:20-alpine AS builder
+WORKDIR /app
+
+# Copy application code
+COPY . .
+
+# Copy dependencies from deps stage
+COPY --from=deps /app/node_modules ./node_modules
+
+# Disable ESLint during build
+ENV NEXT_DISABLE_ESLINT=1
+
+# Build the Next.js application
+RUN yarn build
+
+# Stage 3: Prepare the production image
+FROM node:20-alpine AS runner
+WORKDIR /app
+
+ENV NODE_ENV production
+
+# Copy necessary files from the builder stage
+COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/.next/standalone ./
+COPY --from=builder /app/.next/static ./.next/static
+COPY --from=builder /app/public ./public
+
+# Expose the port the app runs on
+EXPOSE 3000
+
+# Start the Next.js application
+CMD ["node", "server.js"]
diff --git a/app/about/page.tsx b/app/about/page.tsx
index 07c50ad..1a9dc75 100644
--- a/app/about/page.tsx
+++ b/app/about/page.tsx
@@ -1,4 +1,4 @@
-import Layout from "components/Layout";
+import Layout from "components/layout";
const About: React.FC = () => {
return (
diff --git a/app/admission/page.tsx b/app/admission/page.tsx
index 6f02c41..2e84b9d 100644
--- a/app/admission/page.tsx
+++ b/app/admission/page.tsx
@@ -1,4 +1,4 @@
-import Layout from "components/Layout";
+import Layout from "components/layout";
const Admission: React.FC = () => {
return (
diff --git a/app/blogs/page.tsx b/app/blogs/page.tsx
index 7884648..0dff5ac 100644
--- a/app/blogs/page.tsx
+++ b/app/blogs/page.tsx
@@ -1,4 +1,4 @@
-import Layout from "components/Layout";
+import Layout from "components/layout";
const Blogs: React.FC = () => {
return (
diff --git a/app/curriculum/page.tsx b/app/curriculum/page.tsx
index 3550770..b9ec5ff 100644
--- a/app/curriculum/page.tsx
+++ b/app/curriculum/page.tsx
@@ -1,4 +1,4 @@
-import Layout from "components/Layout";
+import Layout from "components/layout";
const Curriculum: React.FC = () => {
return (
diff --git a/app/franchise/page.tsx b/app/franchise/page.tsx
index 1a9f15e..e34c118 100644
--- a/app/franchise/page.tsx
+++ b/app/franchise/page.tsx
@@ -1,4 +1,4 @@
-import Layout from "components/Layout";
+import Layout from "components/layout";
const Franchise: React.FC = () => {
return (
diff --git a/app/home/page.tsx b/app/home/page.tsx
index e5cffd6..7c9d735 100644
--- a/app/home/page.tsx
+++ b/app/home/page.tsx
@@ -1,21 +1,152 @@
-import Layout from "components/Layout";
+import Image from "next/image";
+import Link from "next/link";
+import Layout from "components/layout";
+
const Home: React.FC = () => {
+ const line1 = 'A Pre-school and Daycare';
+ const line2 = 'for Free Thinkers';
+
+ const renderColoredText = (text: string, startIndex: number) => {
+ let colorIndex = startIndex;
+ return text.split('').map((char, idx) => {
+ const colorClass = `text-color-${colorIndex}`;
+ colorIndex += 1;
+
+ // Replace space with non-breaking space to preserve spacing
+ const displayChar = char === ' ' ? '\u00A0' : char;
+
+ return (
+
+ {displayChar}
+
+ );
+ });
+ };
+
+
return (
-
-
A Pre-school and Daycare
-
for Free Thinkers
-
-
“This is a place where our child feels loved, valued, and excited to learn”
+
+
+ {renderColoredText(line1, 1)}
+
+
+ {renderColoredText(line2, line1.length + 1)}
+
+
+
+
+
+
+
+ “This is a place where our child feels loved, valued, and excited to learn”
+
+
-
-
Our Overview
-
-
Centres 130+
-
Children 130+
-
Faculty 600+
-
Decades 1
+
+ {/* Overview Section */}
+
+
OUR OVERVIEW
+
+
+
Centres 130+
+
+
+
Children 130+
+
+
+
Faculty 600+
+
+
+
Decades 1
+
+
+
+
+
+
+
+ {/* Testimonials Section */}
+
+
Our Testimonials
+
+ {/* First testimonial */}
+
+
+
+ “Lil Pals has been a wonderful experience for our daughter, Mia. From the moment we stepped into the school, we were impressed by the warm and welcoming environment..."
+
+
— Christine & Phil, parents of Mia
+
⭐️⭐️⭐️⭐️⭐️
+
+ {/* Second testimonial */}
+
+
+
+ "Lil Pals has been a wonderful experience for our daughter, Ava. From the moment we joined, we were impressed by the warm and nurturing environment..."
+
+
— Lena & Raj, parents of Ava
+
⭐️⭐️⭐️⭐️⭐️
+
+ {/* Third testimonial */}
+
+
+
+ “Lil Pals has been a wonderful experience for our daughter, Mia. From the moment we stepped into the school, we were impressed by the warm and welcoming environment..."
+