---
title: "Understanding the Three Types of User Data in WebApps"
description: "When it comes to user data in web applications, there are three main types that you should be familiar with: personal, public, and group. In this brief overview, we’ll explore each"
date: 2024-03-14
---

When it comes to user data in web applications, there are three main
types that you should be familiar with: personal, public, and group. In
this brief overview, we’ll explore each type and discuss some current
trends shaping the way web apps handle user data.

<figure>
<img src="/medium/img/1317d7cb80df/image-01.png" alt="Image 2" />
</figure>

The attention-grabbing image.

## The evolution of user data

In the early days of web applications, a simple architecture ruled
supreme: a back end (server) and a front end (browser). Initially, all
data — including HTML pages — was publicly available on the server.
Users could connect to the server using a web browser and navigate from
page to page. However, it didn’t take long for the need to restrict
access to certain information to arise. This is how ‘group information’
was born: through the use of secure connections like HTTP basic
authentication (http://user:pass@site.com/). The next major milestone
came with the advent of personalization, as web apps began to adapt
pages for individual users through technologies like cookies and Common
Gateway Interface (CGI).

Thus, three distinct types of user data access were formed:

- **Public**: Data that could be read and written by everyone.
- **Private**: Data that should only be accessible to a specific user.
- **Group**: Data that was meant for a designated group of users.

## The impact of web application architecture on data

Due to the client-server architecture, all data was initially stored on
servers. With limited internet bandwidth, data caching was introduced at
various levels (server, proxy,
[CDN](https://en.wikipedia.org/wiki/Content_delivery_network), browser).
While private data posed fewer challenges since users accessed their own
information, caching became problematic for public and group data.
Updates to data on the server took time to propagate before all users
received the same data. However, with the advent of [Server-Sent
Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events)
(SSE) and
[WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API),
this situation improved significantly. Now, servers can directly push
updated information to users’ browsers, enhancing responsiveness and
ensuring consistent data across users.

As all data, including private data, was initially stored centrally on
servers, companies emerged that capitalized on processing users’
personal data. These corporations analyzed user behavior, preferences,
and social connections to deliver targeted advertising and improve
overall user experiences. However, as users became increasingly
concerned about their privacy, they demanded limitations on global
corporations’ access to their personal data.

To address these concerns, solutions were developed on the browser side
for storing and managing personal data locally. Technologies like
[localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)
and
[IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)
allowed users to store their information directly in their browsers,
giving them more control over their data. Additionally, cloud storage
options with robust security measures and decentralized platforms like
[Solid](https://solidproject.org/about) have emerged to provide users
with greater autonomy over their personal information.

## The decentralization

At present, users can comfortably store and process substantial amounts
of personal data in their browsers or external storage facilities that
are inaccessible to the server directly. This ability allows data to be
decoupled from the server’s control, which primarily focuses on
distributing and updating web application code and managing public
information.

Moreover, users can now also store group information by circumventing
the server through various means. For smaller groups, like pairs, data
can be exchanged directly between users using
[WebRTC](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API)
(Web Real-Time Communication). However, for larger groups, processing
such group information aligns more closely with handling public
information. In these cases, transmission through the server becomes a
preferable option due to its ability to manage and distribute data
efficiently to all group members.

## The Stracey Barbrand effect

[The Barbra Streisand
effect](https://en.wikipedia.org/wiki/Streisand_effect) is a well-known
phenomenon in the field of internet culture. It refers to the unintended
consequences that can arise when an attempt is made to hide, remove, or
censor information. The effect occurs when efforts to suppress
information lead to increased public interest and awareness of that
information.

The reverse process is when unused information disappears from the
Internet. It often happens that some meme, video, or picture constantly
comes across on public resources, and after some time the fashion
passes, and the relevant information becomes impossible to find. I call
it “*The Stracey Barbrand effect*” — a term that refers to the
phenomenon of public information fading away over time.

This trend highlights the importance of personal storage for users. Even
if data is publicly available, there may be instances where it holds
significant value or sentiment to an individual. By storing such
information locally in a personal storage, users can ensure that their
cherished memories and valuable data remain accessible, regardless of
its popularity or relevance on the wider web.

## Conclusion

Regardless of the data type (public, group, or private), there’s a
growing demand for personal data storage on the client side in modern
conditions. Presently, it’s feasible to store all data on the browser
side, leveraging technologies like IndexedDB, [Cache
Storage](https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage),
and [Service
Workers](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API).
This shift leaves the server primarily responsible for distributing and
updating application code while reducing its load and facilitating the
transition to more sustainable, partially decentralized architectures.

Technologies such as WebRTC, which benefit from the increasing mobile
internet channel bandwidth, will further alleviate server loads and
enable seamless communication between users without relying on
intermediaries. The increasingly powerful capabilities of end devices,
particularly smartphones, enable not only the storage of substantial
data but also the execution of resource-intensive tasks like encryption.

In my view, these developments will significantly reshape our
conventional web applications in the next 5–10 years, leading to more
personalized and decentralized experiences that prioritize user privacy,
control, and autonomy.

If you enjoyed this article, please give it a clap and follow me for
more content!

Stay connected:

- [GitHub](https://github.com/flancer64)
- [LinkedIn](https://www.linkedin.com/in/aleksandrs-gusevs-011ba928/)
- [Upwork](https://www.upwork.com/freelancers/~0181de0a64c6981497)

Thank you for your support!

Data, origin, access, and the user profile meet in the wider browser
environment described in [Browser as an Operating System for Developing
Modern Applications](/en/books/browser-as-operating-system.html).
