A computing system for managing data comprising a cross device application programming interface, API, including: a device group API client executed on a computing device associated with a device group, the API client including: a device discovery module configured to discover one or more peer computing devices (104A-104C) associated with the device group; a peer-to-peer, P2P, module configured to engage in P2P communications with each of the one or more peer computing devices of the device group via respective device group API clients (130B-130D) executed on the one or more peer computing devices; a file storage module configured to enable the device group API client to access files stored in a distributed file store, wherein the file store resides remotely on the one or more peer computing devices or both locally on the computing device and on the one or more peer computing devices, using communications sent via the P2P module, the file storage module configured to receive a request from a computer program, via the device group API client, to access a requested file stored in the distributed file store; a permissions module configured to determine whether the request satisfies a device-group-specific permission for access permission of data stored on any device associated with the device group, and if so, to authorize the request to access the requested file, else to deny the request to access the requested file; and upon authorization of the request by the permissions module, the file storage module being configured to retrieve the requested file from the distributed file store and output the requested file to the computer program, wherein the device discovery module is further configured to identify a non-member computing device not presently associated with the device group that satisfies at least one device group criterion stored in the permissions module, and adds the non-member computing device to the device group. a device discovery module configured to discover one or more peer computing devices (104A-104C) associated with the device group; a peer-to-peer, P2P, module configured to engage in P2P communications with each of the one or more peer computing devices of the device group via respective device group API clients (130B-130D) executed on the one or more peer computing devices; a file storage module configured to enable the device group API client to access files stored in a distributed file store, wherein the file store resides remotely on the one or more peer computing devices or both locally on the computing device and on the one or more peer computing devices, using communications sent via the P2P module, the file storage module configured to receive a request from a computer program, via the device group API client, to access a requested file stored in the distributed file store; a permissions module configured to determine whether the request satisfies a device-group-specific permission for access permission of data stored on any device associated with the device group, and if so, to authorize the request to access the requested file, else to deny the request to access the requested file; and upon authorization of the request by the permissions module, the file storage module being configured to retrieve the requested file from the distributed file store and output the requested file to the computer program, wherein the device discovery module is further configured to identify a non-member computing device not presently associated with the device group that satisfies at least one device group criterion stored in the permissions module, and adds the non-member computing device to the device group.