essadikine.com — Bilingual Next.js Portfolio
This website: a fast, bilingual (EN/FR) portfolio optimised for Google and AI answer engines, self-hosted with Docker behind Cloudflare.

Overview
My portfolio, rebuilt from WordPress to Next.js 16. Every page is pre-rendered in English and French with proper hreflang, structured data and an llms.txt file, and the site is self-hosted on an Oracle Cloud server with Docker, a Cloudflare Tunnel and automatic deployments from GitHub Actions.
The problem
The previous WordPress site was slow, single-language for search engines and hard to extend with data, AI and automation features.
What I built
I rebuilt it in Next.js 16 (App Router) with TypeScript and Tailwind, moved to real /fr URLs with hreflang, added JSON-LD for each page type, and packaged it as a Docker image deployed on an Oracle Cloud ARM server through a Cloudflare Tunnel, with a GitHub Actions pipeline that checks and deploys every change.
Results
- Every page pre-rendered in two languages
- Structured data and AI-crawler friendly setup (GEO / AEO)
- Automatic, health-checked deployments on a self-hosted server
Highlights
- Next.js 16 App Router, static generation, i18n routing
- SEO, GEO and AEO: hreflang, JSON-LD, llms.txt, FAQ blocks
- Docker + Cloudflare Tunnel on Oracle Cloud, GitHub Actions CI/CD



