- Use
kebab-casefor scripts and automation files (e.g.,playwright-screenshot.js,playwright-video.js). - Use
PascalCasefor React component files (e.g.,HeroSection.js). - Screenshots and videos must be named with context and device (e.g.,
fullpage-desktop.png,hero-section-mobile.png,demo-video.webm). - All files must be descriptive and specific; avoid generic names.
- Prompts must be clear, actionable, and start with a verb (e.g., “Create…”, “Scaffold…”, “Automate…”).
- Always include the context or goal in the prompt.
- Document every major step, including the prompt used, the action taken, and the result.
- Use Markdown headings and lists for clarity in documentation.
- Reference file names and outputs explicitly in instructions.
Goal: Build a single-page landing site for the Elmentor Program—a global AI community—using React and GitHub Copilot Agentic Mode, developed and demoed directly in GitHub Codespaces for transparency and ease of collaboration.
- Framework: React (Create React App)
- Development: GitHub Codespaces
- Version Control: GitHub
- Deployment: GitHub Pages
- AI Assistance: GitHub Copilot (Agentic Mode)
- Automation: Playwright for screenshots and video capture
- SPA: All content on one scrollable page.
- Components:
- HeroSection (intro, mission, logo, resource links, embedded YouTube video)
- ActivitiesSection (community activities as cards)
- CirclesSection (Elmentor Circles visual + explanation)
- CodeOfConductSection (summary + correct link)
- Footer (contact/join only, no repeated links)
- Assets:
/public/elmentor_logo.png,/public/elmentor-circles-visual.png - No Backend: Static content only.
- Mobile-Responsive: Yes.
- Easily Extendable: Yes.
- Open GitHub Codespaces for your repo.
- Upload assets:
elmentor_logo.png,elmentor-circles-visual.pngto/public/. - Open a Markdown preview of this plan for reference.
- Prompt:
“Create a new React app for a landing page MVP for the Elmentor Program.”
- Command:
npx create-react-app . - Screenshot: Take a screenshot of the terminal after successful setup.
- Prompt:
“Read the Elmentor-Program-Landing-Page-MVP-Plan.md and generate the initial React component folder structure and empty component files as specified in the plan.”
- Action:
- Create
/src/components/and add:- HeroSection.js
- ActivitiesSection.js
- CirclesSection.js
- CodeOfConductSection.js
- Footer.js
- Create
- Screenshot: Take a screenshot of the file tree in VS Code.
- Prompt:
“Scaffold each component, starting with HeroSection, using the instructions from the plan.”
- Action:
- Add content and structure to each component as described in the plan.
- For CirclesSection, reference the image and add the explanatory text before the image.
- For HeroSection, add resource links and embed the YouTube video.
- Screenshot: After each component is scaffolded, take a screenshot of the rendered section in the browser.
- Prompt:
“Use real Elmentor Program info for all sections. Add resource links (Code of Conduct, Blog, GitHub, Facebook, YouTube) to HeroSection. Embed the YouTube video in HeroSection.”
- Screenshot: Take a screenshot of the HeroSection with all links and video.
- Prompt:
“Add modern, responsive CSS for all sections. Ensure mobile and desktop look great.”
- Action:
- Update
App.cssfor layout, spacing, color, responsive design, button/link states, and video embed styling.
- Update
- Screenshot: Take a screenshot of the app in desktop and mobile preview modes.
- Action:
- Import and render all sections in order.
- Remove default React boilerplate.
- Screenshot: Take a screenshot of the full page scroll.
- Prompt:
“Set up deployment to GitHub Pages for this React app.”
- Commands:
Add to
npm install gh-pages --save-dev
package.json:Then deploy:"homepage": "https://<your-username>.github.io/elmentor-landing-page-mvp", "predeploy": "npm run build", "deploy": "gh-pages -d build"
npm run deploy
- Screenshot: Take a screenshot of the terminal after successful deployment.
- Action:
- Update
README.mdand this plan with:- Steps taken
- Prompts used
- Live URL
- Screenshots (save in
/screenshots/) - Lessons learned
- Update
- Screenshot: Take a screenshot of the
/screenshots/folder in VS Code.
- Prompt:
“Automate screenshots and video capture of the deployed app using Playwright.”
- Action:
- Use
playwright-screenshot.jsto capture all major sections and full-page views. - To automate video, use the Playwright script below:
- Use
// playwright-video.js
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const context = await browser.newContext({ recordVideo: { dir: 'screenshots/' } });
const page = await context.newPage();
await page.goto('https://aymanaboghonim.github.io/elmentor-landing-page-mvp/');
await page.waitForTimeout(8000); // Record 8 seconds of interaction
await browser.close();
})();- Command:
node playwright-video.js
- Result:
- Video will be saved in
/screenshots/(e.g.,trace-video.webm).
- Video will be saved in
Screenshots and video are generated automatically using Playwright scripts, following the standards outlined above. Outputs are saved in /screenshots/:
fullpage-desktop.pngfullpage-mobile.pnghero-section.pngactivities-section.pngcircles-section.pngcode-of-conduct-section.pngfooter.png- Video:
.webmfile (auto-named, e.g.,a573d5f1f820bab4da172fcbd0fac03d.webm)
Scripts:
playwright-screenshot.js— screenshotsplaywright-video.js— video demo
To run:
node playwright-screenshot.js
node playwright-video.js- “Create a React HeroSection component introducing the Elmentor Program…”
- “List activities as cards with icons…”
- “Show Elmentor Circles visual as an image with caption…”
- “Add Code of Conduct summary…”
- “Embed a YouTube video in the HeroSection…”
- “Set up deployment to GitHub Pages…”
- “Automate screenshots and video capture of the deployed app using Playwright.”
- Copilot Agentic Mode can rapidly scaffold, style, and deploy a real-world MVP.
- Clear prompts and plan updates are essential for reproducibility.
- Documentation, screenshots, and video help others follow and review the process.
- Share the live URL, screenshots, and video with mentors and community.
- Continue to iterate and extend as needed.
- Keep documentation and plan up to date.
- Narrate each step and prompt as you go.
- Use the VS Code screenshot tool (or
Ctrl+Shift+S/browser screenshot) after each major step. - Show the
/screenshots/folder and video at the end. - Emphasize how Copilot Agentic Mode accelerates MVP delivery.
- Always use the absolute path to the React app directory for deployment:
cd /workspaces/elmentor-landing-page-mvp/elmentor-landing-page && npm install && npm run deploy
- This avoids path errors and ensures the live app is always up to date.
- After every documentation or code update:
- Commit and push changes.
- Deploy the app to GitHub Pages.
- This workflow is now part of our main plan and demo best practices.
- Images: All images (e.g., logos, diagrams) must have transparent backgrounds for a professional look and seamless integration with any background color. (Pending update when new assets are received.)
- Elmentor Circles: The Circles section must use real, accessible text for all explanations and labels. Use images only for visual aids, not for conveying essential information.
- Video Titles: All video titles and captions must be in English, even if the video content is in another language, to maintain consistency with the rest of the page.
- Multilingual Support:
- Maintain two versions of the landing page: one in English (
elmentor-landing-page-en), one in Arabic (elmentor-landing-page-ar). - Each version should have its own deployment and documentation.
- To add a new language version:
- Duplicate the English app folder and name it
elmentor-landing-page-ar. - Translate all content and UI to Arabic, ensuring RTL layout and accessibility.
- Update the README and deployment scripts for the new version.
- Deploy to a separate GitHub Pages site (e.g.,
/elmentor-landing-page-ar/). - Link between language versions in the UI and documentation.
- Duplicate the English app folder and name it
- Maintain two versions of the landing page: one in English (
We believe in empowering our community through mentorship. If you have questions, want to get involved, or just want to say hello:
- Name
- Email* (Please enter a valid email address)
- Message
Sign up for our email list for updates, promotions, and more.
Send
Note: Documentation and the live app are always kept in sync. All changes are reflected in both the repository and the deployed GitHub Pages site. This workflow is part of our main plan and best practices.