A method, apparatus, system, and signal-bearing medium that, in an
embodiment, create concrete configuration associated with a page based on
an abstract personal configuration. Wrapper code is also created, and the
wrapper code, the page, and the concrete configuration are sent to a
client. When executed at the client, the wrapper code manipulates
portlets associated with the page using the concrete code. The personal
configuration allows portlets to be arranged and managed dynamically on a
per-user basis. The wrapper code causes the portlets to be dragged,
dropped, resized, overlapped, and hidden.