Skip to content
codexa

Landing pages · React

Photography course

Dark sales page for a six-week online photography course with curriculum, student work, teacher bio and two plans.

Photography course 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 sales page for an online course: a dark hero with student work, course numbers, a week-by-week curriculum, a student gallery, the teacher's story, two plans, an FAQ and an enrolment call to action. 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/landing-photo-course

src/site.ts
src/site.ts
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = {  "brand": "Available Light",  "nav": [    {      "label": "Curriculum",      "href": "#curriculum"    },    {      "label": "Your teacher",      "href": "#teacher"    },    {      "label": "Pricing",      "href": "#pricing"    }  ],  "navCta": {    "label": "Enrol",    "href": "#pricing"  },  "sections": [    {      "kind": "hero",      "variant": "split",      "eyebrow": "Online course · Next cohort starts 11 January 2027",      "title": "Learn to see light, then learn to use it.",      "text": "A six-week course in natural-light photography for people with any camera, including a phone. Short lessons, weekly assignments, and real critique from a working photographer.",      "primary": {        "label": "See plans",        "href": "#pricing"      },      "secondary": {        "label": "What you'll learn",        "href": "#curriculum"      },      "visual": {        "type": "tiles",        "tones": [          "#78350f",          "#a16207",          "#44403c",          "#292524"        ],        "caption": "Student work: window light, week 2"      },      "note": "14-day refund, no questions asked."    },    {      "kind": "stats",      "items": [        {          "value": "6 weeks",          "label": "About 3 hours a week"        },        {          "value": "24",          "label": "Video lessons"        },        {          "value": "3,100",          "label": "Students since 2021"        },        {          "value": "4",          "label": "Live group critiques"        }      ]    },    {      "kind": "timeline",      "id": "curriculum",      "eyebrow": "Curriculum",      "title": "Six weeks, one skill at a time",      "items": [        {          "period": "Week 1",          "title": "Seeing direction",          "text": "Front, side and back light. Assignment: one object, photographed every two hours."        },        {          "period": "Week 2",          "title": "Window light",          "text": "The most useful light you own. Portraits and still life without any kit."        },        {          "period": "Week 3",          "title": "Golden and blue hour",          "text": "Planning around the sun, and what to do when the weather won't cooperate."        },        {          "period": "Week 4",          "title": "Hard light and shadow",          "text": "Midday sun, graphic shapes, and exposing for the highlights."        },        {          "period": "Week 5",          "title": "Light in the street",          "text": "Reflections, open shade and working quickly with people in the frame."        },        {          "period": "Week 6",          "title": "Your series",          "text": "Edit and sequence a set of eight images for a final group critique."        }      ]    },    {      "kind": "gallery",      "id": "work",      "eyebrow": "Student work",      "title": "Made by people in the last cohort",      "text": "Shared with permission. Most were taken on a phone.",      "items": [        {          "title": "Kitchen, 7 am",          "caption": "Ana P., week 2",          "tone": "#78350f"        },        {          "title": "Stairwell",          "caption": "Jonas K., week 4",          "tone": "#3f3f46"        },        {          "title": "Low tide",          "caption": "Mei L., week 3",          "tone": "#a16207"        },        {          "title": "Market stall",          "caption": "Sam O., week 5",          "tone": "#57534e"        },        {          "title": "Grandfather",          "caption": "Leila H., week 2",          "tone": "#44403c"        },        {          "title": "Bus window",          "caption": "Chris W., week 5",          "tone": "#7c2d12"        }      ]    },    {      "kind": "split",      "id": "teacher",      "eyebrow": "Your teacher",      "title": "Tomas Reyes, photographer for 18 years",      "text": "Tomas shoots food and interiors for magazines and restaurants, almost always with available light. He started teaching in 2021 because most courses spent weeks on settings and minutes on light.",      "bullets": [        "Gives written feedback on every assignment",        "Runs the four live critiques himself",        "Replies in the course forum within two working days"      ],      "visual": {        "type": "card",        "tone": "#292524",        "title": "What Tomas shoots with",        "lines": [          "One body, two prime lenses",          "A white foam board",          "A phone for scouting"        ]      },      "reverse": true    },    {      "kind": "pricing",      "id": "pricing",      "eyebrow": "Pricing",      "title": "Two ways to take the course",      "plans": [        {          "name": "Self-paced",          "price": "$149",          "text": "All lessons and assignments, at your own speed.",          "features": [            "24 video lessons",            "Downloadable assignment guides",            "Course forum",            "Lifetime access"          ],          "cta": {            "label": "Enrol self-paced",            "href": "#enrol"          }        },        {          "name": "Cohort",          "price": "$289",          "text": "The full course with feedback and live critiques.",          "features": [            "Everything in self-paced",            "Written feedback on 6 assignments",            "4 live group critiques",            "Final portfolio review"          ],          "featured": true,          "cta": {            "label": "Join January cohort",            "href": "#enrol"          }        }      ]    },    {      "kind": "faq",      "id": "faq",      "eyebrow": "FAQ",      "title": "Common questions",      "items": [        {          "q": "Do I need a proper camera?",          "a": "No. Every assignment works with a recent phone. If you have a camera, you'll learn to use it better."        },        {          "q": "What if I miss a live critique?",          "a": "Critiques are recorded, and you can submit work for written feedback instead."        },        {          "q": "How many people are in a cohort?",          "a": "No more than 40, so every assignment gets read."        },        {          "q": "Can I get a refund?",          "a": "Yes, within 14 days of the start date, for any reason."        }      ]    },    {      "kind": "cta",      "title": "January cohort: 40 places",      "text": "Enrolment closes on 4 January 2027 or when the cohort is full.",      "primary": {        "label": "Enrol now",        "href": "#enrol"      },      "secondary": {        "label": "Compare plans",        "href": "#pricing"      }    },    {      "kind": "contact",      "id": "enrol",      "eyebrow": "Enrol",      "title": "Reserve your place",      "text": "Tell us which plan you'd like. We'll email a payment link and your welcome pack, with the first lesson unlocked straight away.",      "fields": [        "name",        "email",        "message"      ],      "button": "Reserve my place"    }  ],  "footer": {    "text": "A six-week online course in natural-light photography.",    "columns": [      {        "title": "Course",        "links": [          "Curriculum",          "Student work",          "Pricing"        ]      },      {        "title": "Help",        "links": [          "FAQ",          "Refunds",          "Contact"        ]      },      {        "title": "Follow",        "links": [          "Instagram",          "Newsletter"        ]      }    ],    "legal": "© Available Light. Sample content: replace it in src/site.ts."  }};

Remix

Remix this template

Describe what to change and the agent starts from Photography course's files. The box is already started for you: finish “Start from Photography course 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 Photography course

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