Case study

Designing, structuring and hardening a professional portfolio

This personal project applies a delivery mindset to a bilingual portfolio: editable content, checks before release, and proportionate safeguards for the contact journey.

01 — Context

A presentation, evidence and contact resource

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.

02 — Framing

Different audiences, one consistent standard

Recruiters

Quickly find a clear introduction, factual milestones, and a way to make contact.

ClarityEvidence

Managers and operational contacts

Understand the approach, work delivered, trade-offs, and limitations with no marketing language.

ContextDecisions

Prospective partners

Identify possible areas of collaboration and use a clear contact journey that respects privacy.

ContactPrivacy
03 — Options considered

Selecting a foundation suited to an editorial portfolio

Manually maintained site

Straightforward for limited content, but each change relies more heavily on editing presentation files and has less editorial structure.

Hosted CMS

Provides a central editing interface, with a stronger dependency on the service, its settings, and its publishing model.

Heavyweight tool

Can support wider needs, but adds complexity that was not proportionate for a personal static portfolio.

Static-site generator with Markdown content

Keeps versionable content close to the project while separating editing, rendering, checks, and publication.

04 — Solution

Separate editorial and technical foundations

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.

Identified constraint

05 — Workflow

From local editing to a checked release

  1. Step 1

    Creation

    A new page is created by selecting a Content Type and its place in the existing site structure.

  2. Step 2

    Editing

    Content is created or adjusted in the selected Markdown collection, using explicit structures and labels.

  3. Step 3

    Preview

    Changes are reviewed locally to check rendering, links, language versions, and content that is still in draft.

  4. Step 4

    Build

    Static generation validates the collections and produces a version that can be checked directly in a browser.

  5. Step 5

    Control & validation

    Checks include expected rendering, routes, language links, and the absence of visible regressions. Each validated page has its draft status removed.

  6. Step 6

    Publication

    The validated version is published online by SFTP. Separating draft, preview, and publication reduces the risk of an unintended early release.

A transferable working practice

06 — Controls

Targeted, verified safeguards

Content and release quality

Content structures, builds, and rendering checks help verify consistency before release. Drafts are clearly separated from production content.

BuildTestsContent status

Contact privacy

The form records consent against an identified version. Data is handled server-side with a defined retention period.

ConsentRetention

Proportionate technical safeguards

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.

Anti-spamHTTPS
07 — Outcome

An extensible editorial framework, with stated limits

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.

Limit of the demonstrated scope

08 — Next steps

Planned developments

  • Expand editorial publications over time.
  • Run periodic accessibility and performance audits.
  • Evolve editorial templates when Front Matter usability makes this worthwhile.
Get in touch

Discuss a delivery or application-quality need

To discuss content structure, controlled publication, or continuous improvement, the Contact form provides a first way to get in touch.

Get in touch