Build a Symfony Blog

Build Keystone Gazette with Symfony, Twig, Bootstrap, Doctrine, Security form login, owned post CRUD, search, password recovery, and Platform.sh deploy notes.

  • Difficulty Intermediate
  • Parts 12
  • Stack PHP, Symfony, Twig, Bootstrap 5, Doctrine ORM, MySQL 8, Symfony Security

How this project works

Keystone Gazette is an original teaching blog in twelve complete snapshots. Clone once and run any numbered folder without rebuilding earlier stages.

The path starts with Symfony and routing, adds Twig and Bootstrap, then introduces isolated MySQL databases. Later parts add Security, media, ownership, pagination, search, reset tokens, and deploy notes.

Snapshots 4–12 seed ada@example.com and grace@example.com with password123.

Local MySQL runs through Docker Compose on host port 3309 with databases keystone_01keystone_12.

Open GitHub repo →

Parts in order

Work through the parts in sequence. Each lesson explains the ideas, then points you to a runnable GitHub snapshot.