https://github.com/blacksky-algorithms/safeskies
https://github.com/blacksky-algorithms/safeskies
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/blacksky-algorithms/safeskies
- Owner: blacksky-algorithms
- License: mit
- Created: 2024-11-25T01:00:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-20T00:04:03.000Z (about 1 year ago)
- Last Synced: 2025-06-22T22:12:21.938Z (12 months ago)
- Language: TypeScript
- Homepage: https://safeskies.app
- Size: 2.83 MB
- Stars: 4
- Watchers: 4
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SAFEskies Front‑End :shield:
[](https://opensource.org/licenses/MIT)
[]()
SAFEskies (Software Against a Fearful Environment) is a BlueSky feed management interface that enables secure moderation of custom feeds. Currently configured for the **Blacksky** feed generator with extensibility for other feeds.
**Requires** the [SAFEskies API](https://github.com/FreedomWriter/safe-skies-api) for backend operations.
**Live Application**: [www.safeskies.app](https://www.safeskies.app)

---
## Table of Contents
- [SAFEskies Front‑End :shield:](#safeskies-frontend-shield)
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Core Functionality](#core-functionality)
- [Technical Highlights](#technical-highlights)
- [⚠️ Stability Warning](#️-stability-warning)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [1. Clone Repository](#1-clone-repository)
- [2. Install Dependencies](#2-install-dependencies)
- [Configuration](#configuration)
- [Create .env.local:](#create-envlocal)
- [Running the Application](#running-the-application)
- [Development](#development)
- [Production Build](#production-build)
- [Testing](#testing)
- [Usage](#usage)
- [Authentication](#authentication)
- [Core Functions](#core-functions)
- [Admin vs. Moderator Capabilities](#admin-vs-moderator-capabilities)
- [API Dependency](#api-dependency)
- [Security](#security)
- [Critical Requirements](#critical-requirements)
- [Secure Practices](#secure-practices)
- [Contributing](#contributing)
- [Current Contribution Priorities](#current-contribution-priorities)
- [Contribution Process](#contribution-process)
- [License](#license)
- [Maintainer](#maintainer)
---
## Features
### Core Functionality
- **DID-Based Authentication**: Secure login via BlueSky OAuth
- **Role-Based Access Control**:
- **Admins**: Feed creators (DID-matched) with full permissions
- **Moderators**: Users with post removal privileges
- **Feed Management**:
- View managed feeds
- Promote/demote moderators
- Audit logs for all actions
### Technical Highlights
- Next.js 13 App Router architecture
- TypeScript type safety
- Tailwind CSS styling
- Jest testing suite
- Husky pre-commit hooks
---
## ⚠️ Stability Warning
**IMPORTANT**: SAFEskies is currently in an alpha state of development. The application is functional but subject to significant changes as we work toward a stable release.
You should be aware of the following:
- The API and frontend interfaces may change without backward compatibility
- Data structures and storage mechanisms could be modified between versions
- Documentation is still evolving along with the application
- Deployment procedures might change as we stabilize the architecture
We encourage testing and feedback but recommend caution when using SAFEskies in production environments at this stage.
---
## Prerequisites
- **Node.js** v18+
- **npm** v9+ or **yarn** 1.22+
- **Backend API**: Running instance of [SAFEskies API](https://github.com/FreedomWriter/safe-skies-api)
- **BlueSky Account**: For authentication via OAuth
---
## Installation
### 1. Clone Repository
```bash
git clone https://github.com/FreedomWriter/SAFEskies.git
cd SAFEskies
```
### 2. Install Dependencies
```bash
npm install
# or
yarn install
```
## Configuration
### Create .env.local:
```env
NEXT_PUBLIC_BSKY_BASE_API_URL=https://api.bsky.app
NEXT_PUBLIC_BSKY_BASE=https://bsky.social
NEXT_PUBLIC_SAFE_SKIES_API=http://localhost:4000
NEXT_PUBLIC_CLIENT_URL=http://localhost:3000
```
## Running the Application
### Development
```bash
npm run dev
# Access at http://localhost:3000
```
### Production Build
```bash
npm run build && npm start
```
### Testing
```bash
npm test
```
## Usage
SAFEskies provides a user-friendly interface for managing and moderating BlueSky feeds. Here's how to get started:
### Authentication
1. Navigate to the application at [www.safeskies.app](https://www.safeskies.app)
2. Click "Sign in with BlueSky" to authenticate using your BlueSky account
3. Grant the requested permissions to allow SAFEskies to access your feed data
### Core Functions
- **View Feeds**: See all feeds you have permission to moderate
- **Moderation**: Remove posts that violate feed guidelines
- **User Management**: Admins can promote users to moderator status or remove their privileges
- **Audit Logs**: Review all moderation actions taken on your feeds
### Admin vs. Moderator Capabilities
- **Admins** (feed creators) can:
- Manage moderator permissions
- View complete audit logs
- Access all moderation functions
- Configure feed settings
- **Moderators** can:
- Remove inappropriate posts
- View their own moderation history
- Access posts from managed feeds
For detailed usage instructions, please reference the [SAFEskies Documentation](https://github.com/FreedomWriter/SAFEskies/wiki) (coming soon).
## API Dependency
The frontend requires a running instance of the SAFEskies API for:
- OAuth authentication with BlueSky
- DID validation
- Role management
- Audit logging
- Feed configuration
## Security
### Critical Requirements
- Never expose Bluesky app passwords in client code
- Use HTTPS in production
- Rotate credentials quarterly
- Validate DIDs on both client and API
### Secure Practices
```bash
# Audit dependencies
npm audit
# Update packages
npm update --audit
```
## Contributing
SAFEskies welcomes community contributions, but please note our current development phase focuses on establishing stability before implementing major new features.
### Current Contribution Priorities
- Bug fixes and stability improvements
- Documentation improvements
- Accessibility enhancements
- Test coverage expansion
### Contribution Process
1. **Check Existing Issues**: Review open issues to see if your concern is already being addressed.
2. **Open an Issue First**: Before submitting code changes, please open an issue to discuss your proposed changes.
- For bugs, include reproduction steps and expected behavior
- For features, explain the use case and implementation approach
3. **Development Workflow**:
```bash
# Fork and clone the repository
git clone https://github.com/your-username/SAFEskies.git
cd SAFEskies
# Create a descriptive feature branch
git checkout -b fix/issue-description
# Install dependencies
npm install
# Make your changes with tests
# Run tests to ensure no regressions
npm test
```
4. **Code Standards**:
- Follow existing code style patterns
- Include comments for complex logic
- Add tests for new functionality
- Update documentation to reflect changes
5. **Pull Request Process**:
- Ensure all tests pass
- Reference the related issue in your PR
- Provide a clear description of changes
- Be responsive to review feedback
The maintainer will review PRs on a regular basis, prioritizing stability-focused contributions during this alpha development phase.
## License
MIT License - See LICENSE for details.
## Maintainer
Maintainer: Natalie Davis ([@codefreedomritr.bsky.social](https://bsky.app/profile/codefreedomritr.bsky.social))