
kemalkondakci.me
The site you're looking at: a multi-service bilingual CV/portfolio built with Next.js + FastAPI + PostgreSQL, containerized with Docker behind Traefik — blog & project management from an admin panel, with CI/CD.
PythonFastAPINext.jsPostgreSQLDocker
What it does
The site you're looking at. A bilingual (TR/EN) portfolio that brings my projects, writing and CV together in one place. Blog posts and projects are managed from an admin panel, so I can publish content without deploying code.
Architecture
- Frontend: Next.js 16 (App Router) using the BFF pattern — the JWT lives in an httpOnly cookie and the browser never talks to the backend directly.
- Backend: FastAPI + SQLAlchemy + PostgreSQL; a REST API for content, image uploads, and HTML sanitization via nh3.
- Deployment: multi-service with Docker Compose (front + api + db), HTTPS behind Traefik; test → build → deploy with GitHub Actions.
Highlights
- Bilingual (TR/EN) blog & project management with a rich-text editor.
- Rate-limited admin login and security headers.
- A real SMTP-backed contact form and a dynamic sitemap.