0
stars
83
commits
TypeScript
primary language
Sep 11, 2026
updated
A modern, multilingual portfolio website built with Next.js 16, featuring comprehensive monitoring, analytics, and SEO optimization.
Live Demo: https://othmanead.vercel.app/en
The portfolio is built with Next.js 16 and deployed on Vercel. User interactions and application performance are monitored with Azure Application Insights, where telemetry is stored in Azure Monitor Logs and analyzed through Azure Workbooks using Kusto Query Language (KQL). Website analytics are also collected with Google Analytics 4, while the contact form uses Resend to deliver emails.
flowchart TD
U[Users]
U --> V[Vercel<br/>Next.js Portfolio]
V --> GA[Google Analytics 4]
V --> AI[Azure Application Insights]
AI --> AM[Azure Monitor]
AM --> LA[Log Analytics]
LA --> WB[Azure Workbooks]
V --> CF[Contact Form]
CF --> RE[Resend Email API]
portfolio_2/
βββ messages/ # i18n translations (en, fr, ar)
βββ public/ # Static assets
βββ src/
β βββ app/ # Next.js App Router
β β βββ [locale]/ # Localized routes
β β βββ api/ # API routes (contact, indexnow, og)
β β βββ layout.tsx # Root layout
β βββ components/ # React components
β βββ i18n/ # Internationalization config
β βββ lib/ # Utilities and data
βββ next.config.ts
βββ package.json
βββ vercel.json
The application is deployed on Vercel, providing automatic builds and global edge delivery for every production deployment.
Application telemetry is collected through Azure Application Insights, stored in Azure Monitor Logs, and visualized using Azure Workbooks. Website traffic and user engagement are also measured with Google Analytics 4, while the contact form is powered by Resend for reliable email delivery.
The application uses Azure Application Insights for comprehensive monitoring:
Custom Events Tracked:
Page Views:
Configuration:
NEXT_PUBLIC_APPLICATIONINSIGHTS_CONNECTION_STRINGNote: Custom event tracking is gated to production environment only via isTrackingEnabled() check.
Integrated via @next/third-parties/google with event tracking for:
Automatic page view and performance tracking with:
Required environment variables (see .env.example):
# SEO Verification
GOOGLE_SITE_VERIFICATION=
BING_SITE_VERIFICATION=
# Analytics
NEXT_PUBLIC_GA_MEASUREMENT_ID=
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=
NEXT_PUBLIC_APPLICATIONINSIGHTS_CONNECTION_STRING=
# IndexNow
INDEXNOW_KEY=****************************************
CRON_SECRET=
# Contact Form
RESEND_API_KEY=****************************************
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env.local
# Edit .env.local with your values
# Run with webpack
npm run dev
# Run with turbopack (faster)
npm run dev:turbo
# Build for production
npm run build
# Start production server
npm start
# Run linter
npm run lint
Open http://localhost:3000 to view the application.
This project is private. No license file is present in the repository.
Othmane Aoubid
53 commits
30 commits
TypeScript
88.5%
JavaScript
9.1%
CSS
1.2%
0
stars
83
commits
TypeScript
primary language
Sep 11, 2026
updated
A modern, multilingual portfolio website built with Next.js 16, featuring comprehensive monitoring, analytics, and SEO optimization.
Live Demo: https://othmanead.vercel.app/en
The portfolio is built with Next.js 16 and deployed on Vercel. User interactions and application performance are monitored with Azure Application Insights, where telemetry is stored in Azure Monitor Logs and analyzed through Azure Workbooks using Kusto Query Language (KQL). Website analytics are also collected with Google Analytics 4, while the contact form uses Resend to deliver emails.
flowchart TD
U[Users]
U --> V[Vercel<br/>Next.js Portfolio]
V --> GA[Google Analytics 4]
V --> AI[Azure Application Insights]
AI --> AM[Azure Monitor]
AM --> LA[Log Analytics]
LA --> WB[Azure Workbooks]
V --> CF[Contact Form]
CF --> RE[Resend Email API]
portfolio_2/
βββ messages/ # i18n translations (en, fr, ar)
βββ public/ # Static assets
βββ src/
β βββ app/ # Next.js App Router
β β βββ [locale]/ # Localized routes
β β βββ api/ # API routes (contact, indexnow, og)
β β βββ layout.tsx # Root layout
β βββ components/ # React components
β βββ i18n/ # Internationalization config
β βββ lib/ # Utilities and data
βββ next.config.ts
βββ package.json
βββ vercel.json
The application is deployed on Vercel, providing automatic builds and global edge delivery for every production deployment.
Application telemetry is collected through Azure Application Insights, stored in Azure Monitor Logs, and visualized using Azure Workbooks. Website traffic and user engagement are also measured with Google Analytics 4, while the contact form is powered by Resend for reliable email delivery.
The application uses Azure Application Insights for comprehensive monitoring:
Custom Events Tracked:
Page Views:
Configuration:
NEXT_PUBLIC_APPLICATIONINSIGHTS_CONNECTION_STRINGNote: Custom event tracking is gated to production environment only via isTrackingEnabled() check.
Integrated via @next/third-parties/google with event tracking for:
Automatic page view and performance tracking with:
Required environment variables (see .env.example):
# SEO Verification
GOOGLE_SITE_VERIFICATION=
BING_SITE_VERIFICATION=
# Analytics
NEXT_PUBLIC_GA_MEASUREMENT_ID=
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=
NEXT_PUBLIC_APPLICATIONINSIGHTS_CONNECTION_STRING=
# IndexNow
INDEXNOW_KEY=****************************************
CRON_SECRET=
# Contact Form
RESEND_API_KEY=****************************************
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env.local
# Edit .env.local with your values
# Run with webpack
npm run dev
# Run with turbopack (faster)
npm run dev:turbo
# Build for production
npm run build
# Start production server
npm start
# Run linter
npm run lint
Open http://localhost:3000 to view the application.
This project is private. No license file is present in the repository.
Othmane Aoubid
53 commits
30 commits
TypeScript
88.5%
JavaScript
9.1%
CSS
1.2%