1. A computer-executed method comprising: receiving, from a client device, a request for a learning resource; wherein the request includes: information identifying a particular user, and context information for the client device; selecting a format of the learning resource to deliver to the client device based, at least in part, on the information identifying the particular user and the context information for the client device; after selecting the format of the learning resource to deliver to the client device, determining whether the learning resource is stored at a resource repository in the selected format; and in response to determining that the learning resource is not stored at the resource repository in the selected format, performing the steps of: selecting an instance of the learning resource, which is in a format other than the selected format, from the resource repository, and converting the selected instance of the learning resource to a converted instance of the learning resource in the selected format; and making the learning resource, in the selected format, available to the client device by making the converted instance of the learning resource available to the client device; wherein the method is performed by one or more computing devices.