This document provides an introduction to web engineering. It discusses how early web systems were built using informality, urgency, intuition and art but that this approach can lead to problems for larger, more complex web applications. It introduces the concept of web engineering as a disciplined framework for agile development of web applications that combines principles of software engineering with the realities of web development. The document outlines the activities that make up a generic web engineering framework including communication, planning, modeling, construction, implementation and overarching activities like change management, quality assurance, risk management and project management.