Navigation überspringen
Stay up to date

Take back what’s yours.

Take back what’s yours.

Big tech owns our online life. We've traded privacy, data-ownership and infrastructure control for convenience. We are entrusting data access and usage infrastructure to closed, non-interoperable systems, thereby relinquishing data ownership, digital sovereignty and resilience against external dependencies.

We are turning the tables and giving all power back to the user with a new technological foundation.

Why do we need change?

What is changing?

Reclaim Control with CO,
your Virtual Data Rooms.

We eliminate intermediaries. You individually decide with whom you want to share your data and under what conditions: CO lives on your local device and is directly synced only with your peers over the network. All apps are built on this fundamental concept.

Their game
Your game

Nobody can see what’s inside, except for you & your peers

Nobody can block you from accessing your data

Nobody can mediate the connection between your devices


Groundwork for a new digital world

One technological foundation
 for a better digital life.

Limitless possibilities are built upon this fundamental concept, while we’re just updating the underlying technological foundation without changing how you interact with your favorite apps.

Start building on COKIT

Build great apps
with COKIT

With COKIT, developers can build on top of our foundation, bringing more diversity and fresh ideas to the table. Establish data ownership, sovereignty, resilient digital infrastructure, and app interoperability as the standard for every digital user.

app.tsx
import { useCo } from "co";

const ShoppingList = () => {
  const [state, actions] = useCo(
    "3c085622-a175-4357-ace9-c59443404794"
  );

  return (
    <List>
      {state.items.map(({ item }) => (
        <ListItem onClick={actions.markAsDone({ id: item.id })}>
          {todo.title}
        </ListItem>
      ))}
    </List>
  );
}
schema.ts
import { CoUUID, CoList, Co } from "co/core";

export interface ShoppingListItem {
  id: CoUUID;
  title: string;
  done: boolean;
}

export interface ShoppingList extends Co {
  items: CoList<ShoppingListItem>;
}
actions.ts
import { defineReducer, uuid } from "co/core";
import { ShoppingList } from "./schema";

export const actions = {
  addItem: defineReducer((state: ShoppingList, { id, title }) => {
    state.items.push({ id, title, done: false});
  }),
  markAsDone: defineReducer((state: ShoppingList, { id }) => {
    state.items.updateOne(
      (item) => item.id == id,
      (item) => item.done = true,
    );
  })
}

Ship faster

Scale cheaper

Build upon a strong foundation