Back to projects
5 min read

Little Lemon Capstone

Capstone project for Meta's Front-End Developer Professional Certificate.

The Product

The Little Lemon Capstone is a responsive, multi-page React web application designed for a fictional Mediterranean restaurant the titular ‘Little Lemon’. Developed as the capstone project for the Meta Front-End Developer Professional Certificate, the site showcases a modern brand aesthetic, a polished user interface, and a fully interactive reservation system backed by React Hook Form, Yup validation, and custom API logic. The application emphasizes accessibility, performance, and real-world development patterns expected in production-ready front-end systems.

Project Scope

The project involved designing and building a complete front-end experience—from early sketches and wireframes through to a functional React application. This included developing the site’s information architecture, creating visual layouts, implementing responsive components, building an accessible reservation workflow, and writing unit tests using Jest and React Testing Library. In addition, the project required planning the user interface, aligning design with the restaurant’s brand identity, and translating design artifacts into functional components and pages.

The Problem

The restaurant required a clean, modern, and mobile-friendly website that would provide essential business information while allowing customers to easily make online reservations. The challenge was to design a cohesive user experience that balanced brand personality with usability, and to implement a robust, accessible booking form that handles validation, feedback, and dynamic time selection.

The Goal

The goal was to build a polished, professional-grade front-end application demonstrating competency with React, routing, responsive design, form validation, accessibility, and modern UI design principles. The final product needed to highlight both technical proficiency and design thinking—resulting in a user-friendly platform that represents a small business website for a fictional business.

My Role

As the sole designer and developer, I was responsible for the entire lifecycle of the project:

  • UX research and ideation
  • Site architecture and navigation planning
  • Wireframing and high-fidelity UI design
  • Brand alignment (colors, typography, imagery)
  • React development and component structure
  • Form logic, validation, and mocked API integration
  • Accessibility implementation (ARIA attributes, semantic HTML, error announcement)
  • Unit testing and test-driven refinement
  • Deployment and optimization

Site Map

The site map outlined the core structure and user flow, including primary navigation (Home, Our Story, Menu, Reservations, Delivery/Order Online, Login) and secondary pathways via the footer. This blueprint ensured users could reliably locate key pages while keeping the experience intuitive and consistent across devices.

/
├── Home
├── About (Our Story) (/ourstory)
├── Menu (/menu)
├── Reservations (/bookings)
│   └── Booking Confirmation (/confirmation)
├── Order Online (Delivery) (/delivery)
├── Login (/login)   ← placeholder page
└── Not Found (/404)

Wireframes

Low-fidelity wireframes were created to establish layout, hierarchy, and interaction patterns before visual design. The wireframes mapped out the hero area, specials section, testimonials, reservation form layout, and mobile responsiveness across all pages.

Image of the Main Page Wireframe.

Main Page Wireframe

Prototype/Mockup

High-fidelity mockups were produced using consistent brand styling, including a pre-defined color palette, rounded card elements, and clear typographic hierarchy. These mockups served as the blueprint for the final React implementation and ensured alignment between design intent and functional UI.

Image of the Little Lemon Main Page Mockup.

Main Page

Image of the Little Lemon Reservation Mockup.

Reservation Page

All other pages followed these basic designs so no further mockups were deemed necessary.

Accessibility Considerations

Accessibility was a requirement for the project, to that end the following were implemented:

  • Semantic HTML for landmarks (header, nav, main, footer).
  • aria-live regions for real-time form validation feedback.
  • Descriptive aria-labels and roles for interactive elements.
  • High-contrast color palette suitable for WCAG AA compliance.
  • Fully operable keyboard navigation across the site.
  • Form fields with accessible labels, error states, and focus indicators.

Lessons Learned

During the project development, several key lessons emerged:

  • Component structure matters: Building the site with a modular React architecture proved invaluable. By keeping components reusable and clearly separated in purpose, it became much easier to refine layouts, improve logic, and adjust UI patterns without restructuring large parts of the codebase. This reinforced the importance of maintainable component-driven design.

  • Design-to-development alignment is essential: Creating wireframes and high-fidelity mockups before writing code helped ensure a smooth development flow. This clarity prevented rework, ensured consistent spacing and hierarchy, and made translating the brand identity into the final UI far more efficient.

  • Clear form feedback improves user trust: Implementing real-time validation, clear error messaging, and accessible aria-live regions highlighted how crucial feedback cues are for user confidence. Small improvements—like more descriptive error states or clearer input grouping—made the reservation process feel significantly more intuitive.

  • Accessibility can’t be an afterthought: Building for keyboard navigation, semantic markup, and readable contrast levels revealed how foundational accessibility is to good design. These considerations didn’t just support users with specific needs—they improved the overall usability and clarity of the interface for everyone.

Image of Wrytio Dashboard on Web and Mobile.

Conclusion

The Little Lemon project served as a comprehensive capstone that combined design thinking with practical development. It demonstrates taking a project from ideation through UI design, front-end implementation, testing, and deployment. The final product stands as a example of my front-end development learnings over the course of the program.