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 with equal administrative power: All users can edit, delete, or modify any content, embodying the anarchic structure.

  • Server-side rendering using Flask and Python: Ensures accessibility and performance, with Flask managing routing and views, and Python for backend logic.

  • Deployment on Debian 12 with Nginx: Detailed setup instructions will be provided to ensure compatibility and optimal configuration.

  • Flat-file JSON storage: All user and content data is stored in JSON format, simplifying data management and avoiding the complexity of traditional databases.

  • Customizable HTML templates: base.html for common layout and core.html for main content, allowing easy customization by users.

2.2. Should Have

  • Activity logging: System will log all user activities such as creation, deletion, and editing of content, aiding in transparency and auditability.

  • Markdown to HTML bidirectional rendering: Integrates a Markdown parser for content creation and display, enhancing user experience.

  • Custom WYSIWYG editor: A simple yet powerful editor, server-side processed, to support content formatting without the need for client-side scripting.

  • Wiki-like hyperlinking: Allows users to interlink content easily, supporting a rich, interconnected content structure.

  • EXIF data stripping from media uploads: Ensures privacy by removing metadata from uploaded images and videos.

  • Smartphone access blocking with explanations: Redirects smartphone users to a page explaining the site’s philosophy on technology and surveillance.

  • Content auto-deletion features: Implements conditions for auto-deletion based on views or time, enhancing control over content lifespan.

  • Anonymization options for users: Provides features to anonymize user data during creation or editing to protect privacy.

2.3. Could Have

  • Referrer blocking with whitelist: Uses Nginx configurations to block all referrers except those explicitly allowed, preserving privacy and control over traffic sources.

  • Content mirroring to Gemini and Gopher servers: Expands accessibility and redundancy by mirroring content to Gemini and Gopher protocols.

  • IRC server integration: Facilitates real-time text communication, leveraging IRC for a lightweight chat solution.

  • IPFS for decentralized file storage: Considers integrating with IPFS to enhance decentralization and robustness of file storage.

  • Activity Hub implementation: Explores using a custom protocol or existing solutions like ActivityPub to enable instance-wide activity streams.

  • Support for news groups and single-use emails: Provides additional communication and interaction options for users.

  • Onion service setup: Offers enhanced privacy and security by allowing access through the Tor network.

  • Compatibility with text-based browsers: Ensures the site is usable on Lynx and Dillo, enhancing accessibility and user reach.

  • Development of a custom protocol for interconnected instances: Allows separate installations to act as one cohesive network, facilitating data sharing and user interaction across instances without 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.