Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Local Storage, No-History Options, Privacy, Ephemeral Usage Mode #337

Open
diogo-karma opened this issue Sep 11, 2024 · 1 comment
Open

Comments

@diogo-karma
Copy link

Feature Description

The current implementation relies heavily on server-side storage and a persistent history feature. While this approach has its merits, there's a growing demand for more privacy-focused and lightweight alternatives.

We're considering the addition of two new options to our application:

No-History Mode: A mode where user interactions are not stored or logged.
Local Storage Only: An option to use browser's localStorage instead of server-side storage.

Technical Considerations (No-History Mode)

Requires significant code modifications to bypass history logging
Potential impact on existing features that rely on history
Privacy benefits for users who prefer not to leave a digital footprint

Local Storage Implementation

Emulating key-value store functionality using localStorage
Limitations in storage capacity (usually around 5-10 MB per domain)
Sync issues in multi-tab scenarios

Questions for Discussion

What are your thoughts on implementing a "no history" option? How might this affect our core functionality and user experience?
Regarding local storage:

How do we handle data persistence across sessions?
What are the implications for our sharing and URL features?
How do we manage data synchronization between local and server storage for users who switch between modes?

Are there any ongoing initiatives or plans related to these features that we should be aware of?
How do we balance the simplicity and speed of Redis with the privacy and offline capabilities of localStorage?
What are the potential security implications of storing potentially sensitive data in localStorage?
How might these changes affect our application's performance, especially for users with older devices or limited storage?

How do these proposed changes align with our long-term vision for the product and our commitments to user privacy?

Implementation Considerations
I've started exploring a no-history implementation, but it would require substantial code modifications. I've also begun emulating a key-value store using localStorage. However, before proceeding further, I'd like to get the team's input on these approaches.

Use Case

Privacy-Focused, Ephemeral Usage Mode
Key Features

Zero-Persistence Option: Enable users to interact with the application without leaving a digital footprint.
Client-Side Processing: Leverage browser capabilities for data handling, reducing server dependencies.
Rapid Reset Functionality: Implement a one-click solution to clear all session data instantly.

Technical Benefits

Reduced Infrastructure Load: Minimize server resource consumption by offloading processing to client devices.
Enhanced Privacy: Eliminate concerns about data storage and potential breaches by not retaining user information.
Improved Performance: Optimize for speed by bypassing data synchronization and storage operations.

Use Cases

Quick Queries: Ideal for users needing rapid, one-off information retrieval without the overhead of account management.
Sensitive Data Handling: Perfect for processing confidential information that shouldn't be stored or transmitted.
Resource-Constrained Environments: Suitable for situations with limited connectivity or restricted access to cloud services.

Implementation Considerations

Utilize Web Workers for efficient client-side processing
Implement IndexedDB for temporary, session-based storage
Leverage WebAssembly for compute-intensive tasks to enhance browser performance

User Experience

Emphasize the "ephemeral" nature of the application in the UI
Provide clear visual indicators of the stateless mode
Offer intuitive controls for data clearing and session reset

Additional context

Logically, we know there's no such thing as a complete reset, however, I think it's valid to have an option without history."
This sentence succinctly captures an important point about the proposed feature. It acknowledges the technical reality that true, absolute data erasure is challenging, while still advocating for the value of a "no history" option.
A few thoughts on this statement:

It shows a nuanced understanding of data persistence and privacy.
It balances technical realism with user-focused feature development.
It could be a good conversation starter for discussing the implementation details and limitations of a "no history" mode.

@miurla
Copy link
Owner

miurla commented Sep 29, 2024

No-History Options is nice. The initial release didn't include History, and it was easy to build.

Local storage is unnecessary since there's already a Local Redis option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants