Skip to content

Template web for agency is a fully responsive business agency website, Responsive for all devices, build using NextJS, SCSS, and Typescript.

License

Notifications You must be signed in to change notification settings

trinhquocthinh/Agency

Repository files navigation

Adex Digital Studio - Agency Website

A modern, responsive agency website built with Next.js 14, TypeScript, and SCSS. This project showcases digital services, portfolio projects, and provides a professional online presence for Adex Digital Studio.

πŸš€ Features

  • Server-Side Rendering (SSR) with Next.js 14
  • TypeScript for type safety and better developer experience
  • SCSS Modules for component-scoped styling
  • Responsive Design optimized for all devices
  • SEO Optimized with Next.js Metadata API & next-seo
  • Image Optimization with Next.js Image component (AVIF/WebP)
  • Interactive Components with smooth animations
  • Modern Performance with optimized loading and caching
  • Security Hardened with comprehensive security headers
  • Code Quality with ESLint, TypeScript, and Prettier

πŸ›  Tech Stack

  • Framework: Next.js 14
  • Language: TypeScript
  • Styling: SCSS/Sass with CSS Modules
  • Icons: Ionicons
  • Fonts: Google Fonts (Manrope)
  • Package Manager: Yarn
  • Linting: ESLint + Prettier
  • SEO: next-seo, next-sitemap
  • Validation: Zod
  • Development: Hot reload with Next.js dev server

πŸ“š Documentation

πŸ“ Project Structure

src/
β”œβ”€β”€ app/                    # Next.js 14 App Router
β”‚   β”œβ”€β”€ layout.tsx         # Root layout with metadata
β”‚   β”œβ”€β”€ page.tsx           # Home page
β”‚   β”œβ”€β”€ about/             # About page
β”‚   β”œβ”€β”€ services/          # Services page
β”‚   β”œβ”€β”€ projects/          # Projects page
β”‚   β”œβ”€β”€ blog/              # Blog page
β”‚   └── contact/           # Contact page
β”œβ”€β”€ components/            # Reusable React components
β”‚   β”œβ”€β”€ Header.tsx         # Navigation header
β”‚   β”œβ”€β”€ Footer.tsx         # Site footer
β”‚   β”œβ”€β”€ Layout.tsx         # Page layout wrapper
β”‚   └── sections/          # Page sections
β”‚       └── home/          # Home page sections
β”œβ”€β”€ hooks/                 # Custom React hooks
β”‚   β”œβ”€β”€ useScroll.ts       # Scroll position hook
β”‚   β”œβ”€β”€ useSlider.ts       # Image slider hook
β”‚   └── useAccordion.ts    # Accordion functionality
β”œβ”€β”€ styles/                # Global styles and utilities
β”‚   β”œβ”€β”€ globals.scss       # Global styles
β”‚   β”œβ”€β”€ _variables.scss    # SCSS variables
β”‚   └── _mixins.scss       # SCSS mixins
β”œβ”€β”€ types/                 # TypeScript type definitions
β”‚   β”œβ”€β”€ index.ts           # Main type definitions
β”‚   └── ion-icon.d.ts      # Ionicons type declarations
└── utils/                 # Utility functions

πŸš€ Getting Started

Prerequisites

  • Node.js 18.x or later
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone https://github.com/trinhquocthinh/Agency.git
    cd agency-website
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Start the development server

    yarn dev
    # or
    yarn dev
  4. Open your browser Navigate to http://localhost:3000

πŸ“ Available Scripts

Development

  • yarn dev - Start development server
  • yarn build - Build for production
  • yarn start - Start production server

Code Quality

  • yarn lint - Run ESLint
  • yarn lint:fix - Fix ESLint issues
  • yarn lint:strict - Run ESLint with no warnings allowed
  • yarn type-check - Run TypeScript type checking
  • yarn format - Format code with Prettier
  • yarn format:check - Check code formatting

Release Management

  • yarn release - Create a patch release (1.0.0 β†’ 1.0.1)
  • yarn release:patch - Create a patch release
  • yarn release:minor - Create a minor release (1.0.0 β†’ 1.1.0)
  • yarn release:major - Create a major release (1.0.0 β†’ 2.0.0)

Utilities

  • yarn clean - Clean build directories
  • yarn analyze - Analyze bundle size

See docs/RELEASE.md for detailed release workflow documentation.

🎨 Customization

Colors & Branding

Update brand colors in src/styles/_variables.scss:

// Primary brand colors
$violet-blue-crayola: hsla(234, 50%, 64%, 1);
$charcoal: hsla(218, 22%, 26%, 1);
$white: hsla(0, 0%, 100%, 1);

Typography

Modify fonts in src/app/layout.tsx and src/styles/_variables.scss:

$ff-manrope: 'Manrope', sans-serif;

Content

Update website content by editing the respective page files in src/app/:

  • Home: src/app/page.tsx
  • About: src/app/about/page.tsx
  • Services: src/app/services/page.tsx
  • etc.

πŸ“± Responsive Design

The website is fully responsive with breakpoints:

  • Mobile: 575px and below
  • Tablet: 576px - 991px
  • Desktop: 992px - 1199px
  • Large Desktop: 1200px and above

πŸ”§ Component Architecture

Reusable Components

  • Header: Navigation with mobile menu
  • Footer: Site footer with newsletter signup
  • Layout: Page wrapper with common elements
  • Sections: Modular page sections

Custom Hooks

  • useScroll: Track scroll position for sticky header
  • useSlider: Image carousel functionality
  • useAccordion: Expandable content sections

🌐 SEO & Performance

  • Metadata API: Dynamic meta tags for each page
  • Image Optimization: Next.js Image component with lazy loading
  • Font Optimization: Google Fonts with display swap
  • Core Web Vitals: Optimized for performance metrics

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your repository to Vercel
  2. Configure build settings (auto-detected for Next.js)
  3. Deploy with automatic CI/CD

Other Platforms

The project supports deployment on:

  • Netlify
  • AWS Amplify
  • Google Cloud Platform
  • Self-hosted servers

Build command: yarn build Output directory: .next

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Contact

Adex Digital Studio

πŸ™ Acknowledgments

  • Design inspiration from modern agency websites
  • Next.js team for the amazing framework
  • Ionicons for beautiful icons
  • Google Fonts for typography

Built with ❀️ by Adex Digital Studio

About

Template web for agency is a fully responsive business agency website, Responsive for all devices, build using NextJS, SCSS, and Typescript.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published