Overhauled the privacy.html template and base.css to enhance readability and user experience. The privacy policy content has been divided into distinct sections with added padding and a solid border at the bottom for better visual separation. This restructuring aims to make the information more accessible and easier for users to navigate, aligning with best practices for web content accessibility and design. Additionally, updated the heading style in privacy.html to feature a centered, more prominent design, reflecting a modern aesthetic approach.
No changes to the text of the policy were made.
Introduced unique, descriptive titles to the legal, membership, privacy, and terms templates to improve SEO and user navigation. Previously, these pages inherited a generic title from the base template. Now, each page specifies its own title block, enhancing browser tab legibility and potentially boosting page rankings in search engine results.
Revised the primary theme color to a more vibrant shade and adjusted related style variables for consistency across the UI. This change enhances the visual appeal and user experience by introducing a fresher, more engaging color palette. Updated variables include primary, secondary, success, info, warning, and danger colors along with their associated text, background, and border utilities to ensure coherence throughout the application's design.
Swapped the listings for Invidious and Piped, including their descriptions and status, to reflect current service offerings and operational status accurately. Enhanced the UI layout in the base template for better navigation and clarity in service support actions. Membership and donation information has been expanded to include details on statute access, association joining methods, and legal requirements for data storage, emphasizing transparency and community involvement. Privacy policy updates include clarified data collection practices, usage specifics, and storage details, aligning with legal standards and user expectations. Also, terms of service now include provisions against harassment, aligning with community guidelines and safety.
These changes aim to improve user experience, ensure up-to-date information, and highlight the organization's commitment to privacy, transparency, and community safety.
Updated the organization's name to include its full title "Verein zur
Förderung von Privatsphäre und digitaler Souveränität" and added the
Central Register of Associations (ZVR) Number across legal, privacy, and
terms templates to comply with disclosure requirements. Reformatted
content for better readability, ensuring consistent paragraph line
breaks and removing redundant whitespaces. These changes aim to enhance
transparency regarding the website's managing entity and make the policy
texts more accessible to users.
Implemented a shared base HTML template to DRY up the markup across the service’s various pages, including the index, legal, privacy, and terms pages. This centralizes common elements like headers, footers, and imports, facilitating easier updates and consistency in design across the platform. Existing content from these individual pages is now extending the base template, adhering to best practices in templating and reducing code duplication.
Refactored the website to serve dynamic content using Flask, replacing static HTML pages. This allows for the centralized management of service data through a JSON file. Optimizations include:
- Added a .gitignore file to exclude Python and Flask-specific temporary files.
- Migrated static assets into an organized directory structure to facilitate Flask's static file serving.
- Removed redundant HTML files and created Flask template versions with dynamic content rendering.
- Introduced Caddy server configuration for the new Flask architecture, including headers for security and CORS policy, and reverse proxy settings for route handling.
With these changes, website maintenance and updates are simplified, allowing for service information to be updated in a single location (`services.json`), which then propagates to the user-facing pages automatically.