1. A method, comprising: storing, at a server computer system, functional logic associated with a database; invoking, at the server computer system, at least a portion of the functional logic in response to a request received, via a database API, from a client computer system to manipulate data in the database; sending, by the server computer system to the client computer system: data from the databases; at least a portion of the functional logic associated with the database; user customization data that specifies a manner in which data is displayed by a local interface of the client computer system; and instructions that specify a directory structure to be established at the client computer system for storing data from the database, wherein the data, the at least a portion of the functional logic, the user customization data, and the instructions sent by the server computer system allow the client computer system, while offline, to invoke, via a local version of the database API, the at least a portion of the functional logic to: display data according to information specified in the user customization data; and modify data; and after the client computer system returns online, performing, at the server computer system, a synchronization process by receiving data from the client computer system that was modified while offline.