Skip to content
LazyFrog

Education and creators

Online course with a members area

Lessons with a video, text and a download, members who sign up and track their progress, paid access through your own Stripe, and a certificate when they finish.
The live demo of online course with a members area: its home page

What you get

  • Lessons with a video, text and a download
  • Member sign-up and progress
  • Paid access through your own Stripe
  • A certificate PDF at the end
  • Your lesson editor behind a password

The prompt

Change the names, prices and details to yours. Your AI needs LazyFrog connected first: two minutes.

Use LazyFrog to build an online course on starting a vegetable garden: lessons with a video and text, members who sign up and track their progress, and a certificate at the end.

The live demo

What Codex built from that prompt on 13 November 2026, in about 9 minutes, then published as an example. Try it: what you add is put back every night.

View the live apponline-course-demo.lazyfrog.app
Demo sign-ins
Membermember@example.comGrowDemo2026
The full spec

The same app with every detail named: the pages, fields and tables. Use it when you want exactly this app; the short prompt leaves those choices to your AI.

Use LazyFrog to build an online course with a members area: my course on starting a vegetable garden. Lessons go in a table called lessons (slug, position, title, body, video_url, file_path, free as true or false): a lesson's video is an embed address from YouTube or Vimeo, shown in an iframe, and its file is a download kept privately in the project's file store, served only to members who may open the lesson. I edit lessons and upload their files at /admin, protected with LazyFrog's protected pages (I'll choose the password in the portal), and see the members and their progress there. Members sign up at /signup with name, email and password (a table called members, with paid as true or false) and sign in at /login; free lessons are open to every member, the others only to paid members. A member marks a lesson done (a table called progress: member_id, lesson_id, done_at) and sees how far they are on /course. Access is a one-off £49 through Stripe Checkout on my own Stripe account, with Stripe's webhook marking the member paid; I'll add my Stripe key on LazyFrog's page for it, never in this chat, and until then the checkout says payments aren't set up yet. I can also give a member access myself (someone who paid another way). When every lesson is done, the member downloads a certificate PDF with their name, the course and the date. Add a JSON API for members: POST /api/signup with {"name", "email", "password"} and POST /api/login with {"email", "password"} answer {"token"}, which the other /api routes take as Authorization: Bearer; GET /api/lessons/<slug> answers {"title", "body", "video_url", "file_url"}, or 403 when the member may not open it; POST /api/lessons/<slug>/done (no body) marks it done; POST /api/checkout (no body) starts the payment; GET /api/certificate answers the PDF once every lesson is done, and 403 before. For me, POST /admin/api/members/grant with {"email"} gives that member access. Start with three lessons: welcome (free), planning and planting (both paid), each with a short body, a video embed address and a small PDF to download.

The full spec was built and checked on LazyFrog on 31 October 2026. It took about 5 minutes.