Skip to content

Latest commit

Β 

History

History
92 lines (71 loc) Β· 5.09 KB

File metadata and controls

92 lines (71 loc) Β· 5.09 KB

ByteWave Project Documentation

This document outlines the architecture, technology stack, and team responsibilities for the ByteWave Portfolio project.

πŸ— Project Architecture

The ByteWave Portfolio is built using a modern, scalable architecture designed for high performance and premium aesthetics.

Technology Stack

  • Framework: Next.js 16.1 (App Router) - Utilizing Turbopack for lightning-fast development and build times.
  • Language: JavaScript (JSX) - Optimized for rapid development and clean component logic.
  • Library: React 19 - Leveraging the latest concurrent features and server components.
  • Styling: Tailwind CSS - Using a utility-first approach with a custom design system defined in tailwind.config.js.
  • Icons: Lucide React - Integrated for consistent, vector-based iconography.
  • Animations: Framer Motion - Used for subtle, premium micro-interactions.
  • Theming: next-themes - Supporting light/dark mode with system preference detection.

Folder Structure

src/
β”œβ”€β”€ app/              # Next.js App Router (Routes, Layouts, Metadata)
β”‚   β”œβ”€β”€ services/     # Services showcase route
β”‚   β”œβ”€β”€ projects/     # Portfolio grid route
β”‚   β”œβ”€β”€ about/        # Brand story route
β”‚   β”œβ”€β”€ contact/      # Inquiry form route
β”‚   └── layout.jsx    # Root layout with Navbar/Footer
β”œβ”€β”€ components/       # Reusable UI Components
β”‚   β”œβ”€β”€ layout/       # Brand-specific layouts (Navbar, Footer)
β”‚   β”œβ”€β”€ sections/     # Landing page modular sections
β”‚   └── ui/           # Shared atoms and molecule components
β”œβ”€β”€ lib/              # Shared utility functions
└── public/           # Static assets (Favicon, Brand Images)

πŸ‘₯ Team & Responsibilities

Roles and tasks assigned by @samkiell.

πŸ›  Technical Lead & Architect

  • @samkiell (Samuel Ezekiel)
    • Status: Completed Landing Page & Core Architecture.
    • Responsibilities: Technical oversight, project scaffolding, deployment management, and code review.

🎨 Senior Frontend Engineers (UI/UX)

  • @Ayomide-Philip (Ayomide Philip)

    • Assigned Tasks:
      • Development of /services page: Detailed breakdown of Web and Mobile offerings, tech stacks, and engineering processes.
  • @pamwise (pamwise)

    • Assigned Tasks:
      • Development of /contact page: Building the functional project inquiry form with validation and email service integration.
      • Analytics Integration: Setting up tracking for landing page engagement.

πŸ’» Core Frontend Developers

  • @ayodelebello310-svg

    • Assigned Tasks:
      • Development of /projects page: Creating a comprehensive showcase of all the projects ByteWave has worked on, featuring dynamic grids, results, and detailed case studies.
  • @Robotinic17

    • Assigned Tasks:
      • Development of /about page: Crafting the global collective story and mission.
      • SEO & Performance Optimization: Ensuring all pages follow best practices.

πŸš€ Development Workflow

  1. Branching: All developers must work on their respective branches.
  2. Pull Requests: Once a page or component is complete, create a Pull Request to the main branch.
  3. Review: @samkiell will review the PR for performance, responsiveness, and design consistency.
  4. Deploy: Successful merges to main will automatically trigger a Vercel deployment.

πŸ“¬ Contact form & email sending

  • Server API: POST /api/inquiry β€” validates requests with Zod and sends emails via SendGrid.
  • Environment variables (add to your deployment or .env):
    • SENDGRID_API_KEY β€” required to enable email sending.
    • CONTACT_TO_EMAIL β€” recipient address (defaults to bytewaveteams@gmail.com).
    • CONTACT_FROM_EMAIL β€” sender address (use a verified SendGrid sender).

If SENDGRID_API_KEY is missing, the API responds with 503 and the form shows a friendly fallback instructing users to email directly.

Notes: For static-only deployments without a server, consider a third-party form backend (Formspree, Getform) as an alternative.

πŸ“ˆ Analytics (Google Analytics - GA4)

  • We load GA4 in src/app/layout.jsx and track page views automatically.
  • Form submissions fire a GA event generate_lead with { method: 'contact_form' } from InquiryForm.jsx on successful send.
  • Set your measurement ID in an environment variable: NEXT_PUBLIC_GA_MEASUREMENT_ID (public). The project currently falls back to the provided ID: G-R41VL94TC4 if the env var is not set.

Privacy & Consent: If you need GDPR/CCPA compliance, add a consent banner and delay loading GA until consent is granted.


ByteWave | Corporate. Polished. Modern. Confident.