Skip to content
Naoufal Andichi
Projects/web-app

Elyse Iedema

Portfolio, workshops and appointments for portrait artist Elyse Iedema.

No image

Small, but fully custom

Not every web project needs Next.js, a database and a CI pipeline. The site for portrait artist Elyse Iedema asks for something else: calm, simplicity, predictability on shared hosting, and a form that just works when someone wants to book an appointment. That's exactly what this PHP application delivers.

The best framework for some sites is no framework at all.

What the site does

Visitors land on a portfolio that showcases her work, can browse through projects and portraits, fill in a contact form and book an appointment. All in one clear flow without unnecessary detours. Pagination runs through a load-more endpoint that returns results in batches.

No framework, but structure

The architecture is deliberately slim: a handful of PHP files per page, a shared includes layer for data access and helpers, and Composer for individual dependencies such as PHPMailer. Configuration runs entirely on environment variables — no passwords or API keys in the codebase. An .htaccess keeps URLs clean and blocks direct access to test files.

A form that doesn't cry for help

Contact and appointment forms are often the weak point on smaller sites: they fail to send, bounce into spam, or have honeypots that block real users. Here mail runs through PHPMailer with SMTP auth, server-side validation, a simple honeypot, and clear feedback to the visitor. Nothing fancy, just well-tuned.

What it is

This project is a good reminder that 'production-ready' is not the same as 'fancy'. For some clients a quiet PHP stack is exactly what it should be: easy to maintain, easy to host, and immune to technical trend pressure.

Highlights

  • 01Fully hand-written PHP website: routing, templating and data access without a framework.
  • 02Appointments module with form, validation and email confirmation via PHPMailer.
  • 03Portfolio with load-more pagination and project detail pages.
  • 04Contact form with SMTP delivery, honeypot and server-side validation against spam.
  • 05Composer-based dependency management for PHPMailer and utilities.
  • 06Production config entirely via environment variables (no credentials in code).

Related projects.