Recruiters
Quickly find a clear introduction, factual milestones, and a way to make contact.
This personal project applies a delivery mindset to a bilingual portfolio: editable content, checks before release, and proportionate safeguards for the contact journey.
The portfolio needed to evolve to make the professional positioning clearer, make evidence of work easier to find, and offer a straightforward way to get in touch. It is intended for recruiters, managers and operational contacts, as well as prospective partners.
It is delivered as a personal project, not comparable to a scalable enterprise information system. It is a practical demonstration of a method for simple website design, content structure, checks, and release.
Quickly find a clear introduction, factual milestones, and a way to make contact.
Understand the approach, work delivered, trade-offs, and limitations with no marketing language.
Identify possible areas of collaboration and use a clear contact journey that respects privacy.
Straightforward for limited content, but each change relies more heavily on editing presentation files and has less editorial structure.
Provides a central editing interface, with a stronger dependency on the service, its settings, and its publishing model.
Can support wider needs, but adds complexity that was not proportionate for a personal static portfolio.
Keeps versionable content close to the project while separating editing, rendering, checks, and publication.
The Astro framework has been retained, as it provides static generation and presentation code, and Content Collections to define content structures and consistency checks
In addition, Front Matter CMS has been added on top to provide a local editing interface while content is stored in Markdown collections.
Because Astro calls for a product-build approach, GitHub is also used to track changes. The static site is hosted by OVH.
The Contact form relies on Supabase and Brevo: the first handles server-side processing and enquiry data in line with the retention policy, while the second routes notifications.
This arrangement deliberately separates editorial content, presentation code, build controls, and publication. It makes responsibilities and checks easier to handle, including for non-dev users.
A new page is created by selecting a Content Type and its place in the existing site structure.
Content is created or adjusted in the selected Markdown collection, using explicit structures and labels.
Changes are reviewed locally to check rendering, links, language versions, and content that is still in draft.
Static generation validates the collections and produces a version that can be checked directly in a browser.
Checks include expected rendering, routes, language links, and the absence of visible regressions. Each validated page has its draft status removed.
The validated version is published online by SFTP. Separating draft, preview, and publication reduces the risk of an unintended early release.
Content structures, builds, and rendering checks help verify consistency before release. Drafts are clearly separated from production content.
The form records consent against an identified version. Data is handled server-side with a defined retention period.
Server-side validation, a honeypot, a minimum delay, and rate limiting reduce potential misuse of the form. HTTP controls — CSP, HSTS, HTTP-to-HTTPS redirection, and a 404 page — complement these measures.
The headers and HTTPS configuration were also checked with two independent public analysers: Mozilla HTTP Observatory and RedSentinel. These automated checks supplement the site’s functional verification, they are not an exhaustive security audit.
At the time of testing, the site scored A+ / 135 in Mozilla HTTP Observatory and 86 in RedSentinel, with no outstanding warnings reported.
The outcome is a bilingual portfolio with editable content, extensible case studies, and a documented workflow. Its editing model allows presentation to vary while maintaining overall visual consistency.
Local preview, build checks, and controlled publication make it possible to review a change before it goes live.
The safeguards remain proportionate and verifiable: they cover the site and its contact form in line with general security good practice, without claiming cybersecurity expertise.
To discuss content structure, controlled publication, or continuous improvement, the Contact form provides a first way to get in touch.
Get in touch