Drupal - What's the difference between Page manager and Panels?

Ctools

In Ctools, there is a sub-module called "Page manager". This module, at it's core, is a graphical user interface to hook_menu. It allows you to either create new paths in the system, or take over some of the ones provided by Core.

Page manager

Once Page manager manages a path for you, it can do several different things with it. Out of the box, it can provide redirects for you. One common use case for this, is to deny access to nodes that lack proper theming because they are not meant to be viewed on their own, such as "Fact boxes" or "Image nodes". Another is to redirect from a term view to a Solr search of the same term.

One of the main benefits of Page manager, is that it introduces a way of dealing with "Context", not to be confused with the module Context. The kicker here, is that Panes, which are "slightly smarter blocks", can declare their dependencies to the system, and them have the actual arguments (called Contexts) passed in dependency injection-style.

For those unfamiliar with DI, but familiar with Drupal, this, for example, allows you to never need to use menu_get_object again to get "That one and only node referenced from the menu path". What if there's more than one node in the path? Or if you really want to base the block on a node from an entity reference? This becomes a non-issue with Page manager, making all blocks (panes) much more flexible and re-usable.

Panels

The most common use case however, is to hand over the layout, and rendering of the path, to Panels. Panels provides tools to define layouts, either in code or directly in the browser, and the lets you place content directly in the browser.

Conclusion

Both of these modules are very powerful, and relatively poorly documented, which has lead a lot of people to be frustrated about them. Understanding how to use them is however well worth it if you are building a larger site, especially since their approach to handling "pages", as well as layout, looks like they are going into Drupal 8 core, courtesy of EclipseGC's SCOTCH initiative. Relevant sandbox project

Further reading

Examples of other interesting things one can do with these tools:

  1. If Context is used as a sectioning tool, Panels can work in tandem with it and be used as a layout tool.
  2. Panels can interact with Display suite to provide it with a nice drag-and-drop UI.
  3. Page manager and Contextual Administration can help building in "Context" sensitive menues and other helpful things for site admins/editors.