Skip to content
codexa

Portfolios · React

Documentary filmmaker

Cinematic dark portfolio for a documentary filmmaker, with films, stills, screenings and press notes.

Documentary filmmaker starter, as built from its own files
Starter screenshot captured from this template's own build at 1440×900. It shows the template as it ships, not output generated from a prompt.

What you get

A dark, cinematic portfolio for a documentary director: films with synopses, a gallery of production stills, a screening and broadcast timeline, viewer and collaborator notes, and a contact form for commissions and licensing. All content lives in src/site.ts.

Files

Exactly what is copied into a new project: 13 files, nothing generated.

Raw data: GET /api/v1/templates/portfolio-documentary-filmmaker

src/site.ts
src/site.ts
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = {  "brand": "Inès Moreau Films",  "nav": [    {      "label": "Films",      "href": "#films"    },    {      "label": "Stills",      "href": "#stills"    },    {      "label": "Screenings",      "href": "#screenings"    }  ],  "navCta": {    "label": "Contact",    "href": "#contact"  },  "sections": [    {      "kind": "hero",      "variant": "editorial",      "eyebrow": "Documentary director · Marseille",      "title": "Long films about short seasons.",      "text": "I make observational documentaries about work that disappears with the weather: salt harvesters, shepherds, night fishermen. Four features and a handful of shorts, shot mostly by myself and one sound recordist.",      "primary": {        "label": "Watch the films",        "href": "#films"      },      "secondary": {        "label": "Commissions",        "href": "#contact"      },      "visual": {        "type": "card",        "tone": "#3b2a14",        "title": "Now in post: The Salt Year",        "lines": [          "Feature documentary, 94 min",          "Shot over 14 months in the Camargue",          "Picture lock December 2026"        ]      }    },    {      "kind": "projects",      "id": "films",      "eyebrow": "Films",      "title": "Features and shorts",      "items": [        {          "title": "The Salt Year",          "tag": "Feature · A family of salt harvesters through one full season",          "year": "2027",          "tone": "#5c3d16"        },        {          "title": "Transhumance",          "tag": "Feature · Walking 200 km with 1,800 sheep",          "year": "2024",          "tone": "#3f3a2e"        },        {          "title": "Lamparo",          "tag": "Short · Night fishing by lamplight off Sète",          "year": "2022",          "tone": "#1c1917"        },        {          "title": "The Last Bakers of Belsunce",          "tag": "Feature · Three bakeries, one neighbourhood",          "year": "2020",          "tone": "#78350f"        }      ]    },    {      "kind": "gallery",      "id": "stills",      "eyebrow": "Stills",      "title": "From the camera",      "items": [        {          "title": "Raking the pans",          "caption": "The Salt Year",          "tone": "#6b4a1e"        },        {          "title": "Col de la Cayolle at dawn",          "caption": "Transhumance",          "tone": "#44403c"        },        {          "title": "The lamp",          "caption": "Lamparo",          "tone": "#292524"        },        {          "title": "4 a.m. ovens",          "caption": "The Last Bakers of Belsunce",          "tone": "#7c2d12"        },        {          "title": "Waiting for wind",          "caption": "The Salt Year",          "tone": "#57534e"        }      ]    },    {      "kind": "timeline",      "id": "screenings",      "eyebrow": "Screenings",      "title": "Where the films have shown",      "items": [        {          "period": "2025",          "title": "Transhumance on public television",          "text": "Broadcast nationally in France and Belgium; streaming on the broadcaster's site until 2027."        },        {          "period": "2024",          "title": "Transhumance festival run",          "text": "Premiered at a documentary festival in Provence, then shown at nine more across Europe."        },        {          "period": "2022",          "title": "Lamparo",          "text": "Screened at short-film festivals and in village halls along the Hérault coast."        },        {          "period": "2020",          "title": "The Last Bakers of Belsunce",          "text": "Theatrical release in eight cinemas in the south of France."        }      ]    },    {      "kind": "quotes",      "eyebrow": "Notes",      "title": "From audiences and collaborators",      "items": [        {          "quote": "She waited eleven days for the wind to change. The shot is worth every one of them.",          "name": "Julien F.",          "role": "Editor, Transhumance"        },        {          "quote": "We showed Lamparo in the village hall and half the room was related to someone on screen.",          "name": "Marie-Claude P.",          "role": "Community screening organiser"        },        {          "quote": "Inès never makes people perform for the camera. That's why they forget it's there.",          "name": "Yusuf A.",          "role": "Sound recordist"        }      ]    },    {      "kind": "steps",      "eyebrow": "Working with me",      "title": "Commissions and licensing",      "items": [        {          "title": "Commissioned films",          "text": "Broadcast and cultural-institution documentaries from 26 to 90 minutes. Development to delivery."        },        {          "title": "Footage licensing",          "text": "Archive of 400+ hours of Provence and Camargue footage in 4K, cleared for most uses."        },        {          "title": "Screenings and talks",          "text": "Films with a Q&A for cinemas, schools and festivals. Subtitled copies in English and Spanish."        }      ]    },    {      "kind": "contact",      "eyebrow": "Contact",      "title": "Get in touch",      "text": "For commissions, licensing or screening copies. Please include your organisation and the date you need materials by.",      "fields": [        "name",        "email",        "company",        "date",        "message"      ],      "button": "Send message"    }  ],  "footer": {    "text": "Inès Moreau Films. Observational documentaries from the south of France.",    "columns": [      {        "title": "Films",        "links": [          "The Salt Year",          "Transhumance",          "Lamparo"        ]      },      {        "title": "Contact",        "links": [          "studio@inesmoreau.fr",          "Vimeo"        ]      }    ],    "legal": "© Inès Moreau Films. Sample content: replace it in src/site.ts."  }};

Remix

Remix this template

Describe what to change and the agent starts from Documentary filmmaker's files. The box is already started for you: finish “Start from Documentary filmmaker and …”

Agent ready

Creates a free account first; your idea is carried over.

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

  • react^19.1.0
  • react-dom^19.1.0
  • vite^6.3.0
  • @vitejs/plugin-react^4.4.0
  • tailwindcss^4.1.0
  • @tailwindcss/vite^4.1.0
  • typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Entry route
/

Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.

All templates

Build on Documentary filmmaker

Create a free account, start from this template, and ask the AI agent to turn it into your app.