Data-driven web applications are structured into three tiers with different programming models at each tier. This division
forces developers to manually partition application functionality across the tiers, resulting in complex logic, suboptimal
partitioning, and expensive re-partitioning of applications. In this paper, we introduce a unified platform for automatic
partitioning of data-driven web applications. Our approach is based on Hilda, a high-level declarative programming language
with a unified data and programming model for all the layers of the application. Based on run-time properties of the application,
Hilda's run time system automatically partitions the application between the tiers to improve response time while adhering
to memory or processing constraints at the clients. We evaluate our methodology with traces from a real application and with
TPC-W, and our results show that automatic partitioning outperforms manual partitioning without the associated development
overhead.