# Oku - Full Application Content

## Project Overview

**Name:** Oku
**Tagline:** A browser and encrypted data vault based on IPFS
**Fund:** NGI0 Entrust
**Period:** 2023-04 — 2024-11
**Grant Agreement No:** 101069594
**URL:** https://nlnet.nl/project/Oku/
**Website:** https://okubrowser.github.io
**Source Code:** https://github.com/OkuBrowser/oku
**NixOS:** https://ngi.nixos.org/app/oku

---

## Abstract

Oku is a free and open-source browser for the Web, which aims to bring several technologies, some new and some pre-existing, to everyday users of personal computers. It aims to promote the usage of peer-to-peer protocols, such as IPFS, onion routing (using the Arti implementation of the Tor anonymity protocols), and the WebKit browser engine.

With the IPFS protocol built into the browser, users will be able to create, share, and view hypermedia without the need for servers; as a consequence, pages accessed through the IPFS protocol will require offline, local-first data storage on 'vaults' residing in the user's device. The browser facilitates the reading of data from the local storage vaults, prompting the user for a password so that the vault may be decrypted; afterwards, the 'hivepage' (a page accessible through a P2P protocol, as opposed to HTTP) is provided with the user's files residing in the relevant decrypted vault.

This model will promote a more trustable alternative to the Web, while simultaneously reducing the cost of publicly sharing hypermedia on the Internet, as servers will no longer be responsible for hosting & serving the content.

---

## Why does this matter / Problem Statement

The Internet as it exists today is filled with leaky abstractions that make our lives harder. Hosting files, sharing them, and collaboratively editing them are burdensome endeavours that cost time & money due to the reliance on central authorities: servers. Dedicated servers experience downtime and security breaches, while cloud providers introduce hidden costs, configuration challenges, and a lack of oversight & governance.

The Web has evolved with the client-server paradigm, having become increasingly reliant on advertising revenue to fund the infrastructure costs associated with hosting. The ad-supported model of Web hosting has introduced incentives for service providers to degrade the user experience, manifesting in search engines that provide clickbait results, and social media platforms that penalise content discovery to keep users on their platforms.

---

## Oku's Solution

Oku aims to address the failings of the client-server paradigm, offering:

- **Authority over your own data** without the need to trust a third-party
- **Painless migration; no vendor lock-in**, as your files are yours
- **Fault-tolerance in the network** when nodes go offline
- **Simplified identity & access management**
- **Painless communication across NAT**

### Oku is a distributed knowledge management system for collaborative teams, enabling:
- Collaborative file editing
- Fault-tolerant file hosting that scales
- Social bookmarking
- Document search & discovery

---

## The Oku Browser

The Oku browser is a rich client for the Oku network; it repurposes Web technology to promote human agency by:

- Making content creation & distribution accessible to all
- Extending the lifespan of information, keeping media accessible until the last copy is lost
- Allowing individual users to control what information they wish to discover

The Oku browser provides a parallel space to the Web where information is served by its authors. This allows for:

- Collaboratively building & publishing sites in real time without hosting fees
- Distributed search & social media without ads
- Private, on-device browsing recommendations tailored to your interests

---

## Core Features

### 1. Replicas - Build & publish sites together
Create sites locally, edit them in real time, and publish changes instantly. Collaborative site building without hosting fees.

### 2. Notes - Build a knowledge base as you browse
Take notes on what you view. Contextualise your browsing history. Build a personal knowledge management system.

### 3. OkuNet - Build your own invite-only social network
Find & share sites through social bookmarking. Curate your feed. Search known sites locally. Create private social networks.

---

## Technology Stack

### Core Technologies
- **IPFS:** Peer-to-peer protocol for content addressing and distribution
- **Arti (Tor):** Onion routing for privacy and anonymity
- **WebKit:** Browser engine for rendering web content
- **Rust:** Primary programming language for performance and safety

### Architecture
- **Local-first data storage:** Vaults on user's device
- **Encrypted vaults:** Password-protected local storage
- **P2P protocols:** Direct peer communication without servers
- **Hivepages:** Pages accessible through P2P protocols

### Codebase Structure
- `oku-core`: Core library with shared functionality
- `oku`: Main browser application
- Built with Cargo (Rust package manager)

---

## Project Goals

### Short-term
- Basic IPFS integration for content access
- Encrypted local vault system
- Simple P2P page sharing
- Core browser functionality

### Medium-term
- Collaborative editing capabilities
- Social bookmarking features (OkuNet)
- Search and discovery within the network
- Arti/Tor integration for privacy

### Long-term
- Full distributed knowledge management
- Cross-platform support (macOS, Windows)
- Extension system for community features
- Decentralized identity management

---

## User Experience

### Browsing
- Access IPFS content directly through the browser
- Local-first storage with encrypted vaults
- Privacy through onion routing

### Creating
- Build sites locally with real-time editing
- Publish directly to IPFS without hosting fees
- Collaborative editing with team members

### Sharing
- Share content through IPFS links
- Social bookmarking through OkuNet
- Invite-only social networks

### Discovering
- Search known sites locally
- Curate personalized feeds
- Private browsing recommendations

---

## Technical Challenges

1. **IPFS Integration:** Seamlessly integrating IPFS protocol into a browser environment
2. **Encrypted Vaults:** Implementing secure, user-friendly local-first encrypted storage
3. **P2P Communication:** Enabling direct peer communication across NATs
4. **Privacy:** Integrating Tor/Arti for anonymous browsing
5. **Collaborative Editing:** Real-time collaborative editing in a distributed system
6. **Cross-platform:** Supporting multiple operating systems with native feel

---

## Ecosystem Engagement

### Community
- Open source development on GitHub
- Community discussions and feedback
- Contributor guidelines and documentation

### Standards
- W3C compliance where possible
- IPFS protocol adherence
- Open web standards

### Partnerships
- Protocol Labs (IPFS ecosystem)
- Tor Project (Arti implementation)
- NixOS community (packaging)

---

## Themes

- NGI0 Entrust
- Services + Applications

---

## Funded By

This project was funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.
