1. Background

The framework aims to create a unique social network characterized by its anarchic, horizontal structure. This network allows all users to possess administrative capabilities, enabling them to edit other users' pages, reflecting a philosophy of shared authority and communal governance. It emphasizes server-side rendering to facilitate accessibility and ease of deployment, especially on Debian systems. This approach, alongside the use of flat-files instead of databases, simplifies management and enhances learnability. Privacy, data ownership, and the freedom to share are central to the project’s ethos. The framework advocates against the redundancy and environmental impact of modern internet usage, which often involves repetitive data streaming and increasingly demands high processing power, contributing to electronic waste and energy consumption.

2. Requirements

2.1. Must Have

  • User roles where everyone has equal administrative power.

  • Server-side rendered pages using Flask and Python to ensure compatibility and accessibility.

  • Deployment compatibility with Debian 12 systems using Nginx.

  • All data, including user information, pages, files, and comments, must be stored in JSON format in flat-files.

  • Easy-to-use and customizable HTML templates for the site structure.

  • Hashtag functionality for tagging and searching content.

  • Ability for system administrators to add Python scripts as extensions.

2.2. Should Have

  • A system for logging key user activities such as creation and edits of pages, files, comments, and user profiles.

  • Markdown to HTML bidirectional rendering capabilities.

  • A customized WYSIWYG editor for editing content.

  • Wiki-like hyperlinking within content for easy navigation and interlinking.

  • Stripping of EXIF data from media uploaded to protect user privacy.

  • Hardline blocking of smartphone access to the site, redirecting to an explanatory page about the project’s stance on surveillance capitalism.

  • A deletion feature where content can self-delete based on time or number of views.

  • An option to anonymize user data when creating or editing content.

2.3. Could Have

  • Hardline blocking of all referrers in general, with a whitelist of approved sites.

  • Mirroring all content to a Gemini and a Gopher server to broaden accessibility.

  • Linking with an IRC server to enable real-time text-based communication, as server-side rendering limits real-time interaction possibilities.

  • Integration with IPFS for decentralized file storage.

  • Exploration of an Activity Hub for broader interaction across different platforms.

  • News groups to disseminate updates and news within the community.

  • Single-use email capabilities for privacy-focused communication.

  • Onion service to offer a Tor-based access point for enhanced privacy.

  • Ensuring 100% compatibility with text-based web browsers like Lynx and Dillo to support users with older or less capable technology.

  • Development of a simple and lightweight custom protocol to enable interconnected instances, allowing separate installations to act as one cohesive network without the use of complex technologies like blockchain.

3. Method

The framework utilizes a modular architecture with Flask Blueprints to separate concerns into manageable components (users, pages, files, comments). Nginx serves as the reverse proxy, while Gunicorn handles the Flask application. The application employs flat-file JSON storage for all data, ensuring simplicity and ease of access. Extensions are managed through a bin folder where administrators can add scripts, which users can invoke through specific tags within the content.

4. Implementation

The implementation is divided into five key phases: environment setup, application development, front-end design, testing, and deployment. Each phase is structured to ensure thorough development, testing, and integration of all system components.

5. Milestones

Milestone 1: Complete environment setup and server configurations. Milestone 2: Core application functionality and data handling. Milestone 3: Extensions implementation and front-end development. Milestone 4: Testing and final adjustments. Milestone 5: Deployment and go-live.

6. Gathering Results

Post-deployment, the system will be monitored for performance, usability, and adherence to specified requirements. Feedback from users and system logs will be evaluated to ensure the system operates effectively and meets the envisioned user empowerment and privacy standards.