Content publisher