Our team member Andrei has family in Guyana. While their internet bandwidth is largely sufficient, their computers are often severely lacking in storage space. We wanted to enable effectively unlimited file storage and help empower the developing world.

What it does

Locally stored files are intelligently swapped out when left unused and automatically downloaded upon request. All file interactions appear as normal in the user's native file system. The serverless architecture allows for scalability and very inexpensive operating costs.

How we built it

The back end runs on AWS Lambdas. The file system interoperation is implemented in Go, making heavy use of its concurrent goroutines. The front end web interface was built in the purely functional language Elm for its robustness, no runtime exception guarantee and elegance.

Challenges we ran into

Deploying AWS Lambdas was troublesome, MIME types are always difficult.

Accomplishments that we're proud of

Configuring custom MIME types with support across numerous Unix and Linux based operating systems was remarkably challenging. Since our team uses Ubuntu, Fedora and macOS, cross platform support was difficult.

We are also quite pleased with the speed of the syncing and how changes to files are handled along with

What we learned

The team became well versed in low level Unix/Linux file system events, deploying to Amazon Web Services through Apex and using functional transforms on file metadata.

What's next for Pouch

Presently Pouch is exclusively hosted on Amazon Web Services. Given more time, we would focus on implementing one click deployment with self hosting and alternate back end options allowing even greater and cheaper file storage.

Built With

Share this project: