Skip to content

sarathmodify/zevenfrontend

Repository files navigation

Zeven Frontend Task - Marketing Website

Developer Information

Full Name: Sarath S

Submission Date: January 2026,25


Project Overview

A modern, fully responsive marketing website built with Next.js 15 and Tailwind CSS v4. The project features a comprehensive homepage with multiple sections, a dynamic blog system with markdown rendering, contact forms, and smooth animations throughout.


Tech Stack Used

Core Technologies

  • Next.js 16 - React framework with App Router
  • TypeScript - Type-safe JavaScript
  • Tailwind CSS v4 - Utility-first CSS framework
  • React 19 - Latest React features

Additional Libraries

  • react-markdown - Markdown rendering for blog posts
  • lucide-react - Modern icon library
  • PostCSS - CSS processing

Development Tools

  • Turbopack - Next.js 16's ultra-fast bundler
  • ESLint - Code linting
  • npm - Package management

Approximate Time Taken

Total Time: ~8-10 hours

Breakdown:

  • Phase 1 - Setup & Foundation: 1 hour
  • Phase 2 - Component Library: 2 hours
  • Phase 3 - Homepage Sections: 3 hours
  • Phase 4 - Blog System: 1.5 hours
  • Phase 5 - Polish & Responsiveness: 1.5 hours
  • Testing & Bug Fixes: 1 hour

What I Enjoyed

1. Building the Component Library

Creating reusable, well-typed components was extremely satisfying. The Button, Card, and Accordion components are clean, flexible, and can be easily extended.

2. Implementing Animations

Adding smooth transitions and hover effects brought the website to life. The subtle micro-interactions make the user experience feel premium and polished.

3. Tailwind CSS v4

Working with the latest version of Tailwind was fantastic. The new @layer directive system and improved CSS handling made styling much more intuitive.

4. TypeScript Integration

Writing type-safe code with proper interfaces and types made the development process smoother and caught many potential bugs early.

5. Static Site Generation

Implementing SSG for the blog posts was rewarding. Seeing all pages pre-render at build time and achieve optimal performance was great.


What I Struggled With

1. Tailwind CSS v4 Syntax Issues

The biggest challenge was dealing with CSS variable syntax in Tailwind v4. Initially used bg-[--variable] which doesn't work. Had to switch to standard Tailwind utilities like bg-blue-600.

2. CSS Cascade Problems

Encountered issues with margin and padding not applying due to a CSS reset (* { margin: 0; padding: 0; }) overriding Tailwind utilities. Solved by restructuring CSS with @layer directives.

3. PostCSS Configuration

Had to ensure the PostCSS configuration was correct for Tailwind v4's new @tailwindcss/postcss plugin.

4. Responsive Design Testing

Testing across different screen sizes and ensuring grids collapse properly at each breakpoint required careful attention to detail.

5. Markdown Rendering Styling

Customizing the ReactMarkdown component styling to match the design system while maintaining readability took some iteration.


Which Part Best Represents My Real Skill

The Component Architecture & Type System

The reusable component library showcases my strengths:

  1. Well-Structured Components

    • Clean separation of concerns
    • Proper prop typing with TypeScript
    • Flexible and extensible designs
    • Consistent naming conventions
  2. Type Safety

    • Comprehensive TypeScript interfaces in types/index.ts
    • Proper typing for all component props
    • Type-safe data structures for blog posts, features, etc.
  3. CSS Architecture

    • Organized styles with @layer directives
    • Custom animation system
    • Responsive design patterns
    • Accessible focus states
  4. Code Quality

    • DRY (Don't Repeat Yourself) principles
    • Consistent coding style
    • Proper file organization
    • Clean, readable code

The Contact form component particularly demonstrates my ability to handle:

  • Complex state management
  • Form validation logic
  • Error handling
  • User feedback (loading states, success messages)
  • Accessibility considerations

Which Part I Had to Learn While Doing This Assignment

1. Next.js 15 App Router Specifics

While familiar with Next.js, I had to learn:

  • New metadata export patterns
  • generateStaticParams() for dynamic routes
  • Server Components vs Client Components distinction
  • New notFound() error handling

2. Tailwind CSS v4 Syntax

Coming from v3, I learned:

  • New @import "tailwindcss" syntax
  • @theme directive for configuration
  • Updated gradient syntax (bg-linear-to-br vs bg-gradient-to-br)
  • New color opacity syntax

3. React 19 Features

  • Understanding the new async/await in Server Components
  • Promise-based params in dynamic routes
  • New hooks and patterns

4. Markdown Integration

  • Setting up react-markdown with Next.js
  • Custom component mapping for markdown elements
  • Styling prose content while maintaining readability
  • Code syntax highlighting considerations

5. Animation Performance

  • Creating performant CSS animations
  • Using @layer for proper cascade
  • Implementing prefers-reduced-motion for accessibility
  • Balancing aesthetics with performance

Getting Started

Prerequisites

  • Node.js 18+ installed
  • npm or yarn

Installation

# Install dependencies npm install # Run development server npm run dev # Build for production npm run build # Start production server npm start

Open http://localhost:3000 to view the application.


Highlights

  • 100% TypeScript - Fully type-safe codebase
  • Zero Runtime Errors - Comprehensive error handling
  • Static Site Generation - All blog posts pre-rendered
  • Mobile-First Design - Optimized for all devices
  • Accessibility - WCAG compliant with proper ARIA labels
  • Performance - Optimized bundle size and load times

Reflections

This assignment was an excellent opportunity to work with the latest web technologies and build a production-ready application. The structured approach with phases helped maintain focus and deliver a polished result.

The challenges encountered, particularly with Tailwind v4's new syntax, were valuable learning experiences that will benefit future projects. Overall, I'm proud of the clean, maintainable, and performant code delivered.


License

This project was created as part of a frontend development assignment.


Built with using Next.js and Tailwind CSS

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors