Skip to content
@raven-swe

Raven

Caw Your Thoughts
Raven Logo

Raven

Caw Your Thoughts

A modern, full-stack social media platform built for real-time engagement, content discovery, and meaningful connections.

Live Demo Staging


NestJS Nuxt React Native TypeScript PostgreSQL Docker


Overview

Raven is a comprehensive social media platform featuring real-time messaging, content discovery, and AI-powered content classification. Built with modern technologies and best practices, it offers a seamless experience across web and mobile platforms.

Repositories

Repository Description Tech Stack
backend RESTful API & real-time services NestJS, Prisma, PostgreSQL, Redis, Socket.IO
frontend Web application Nuxt 4, Vue 3, TailwindCSS
cross-platform Mobile app (iOS & Android) React Native, Expo SDK 54
infrastructure DevOps & deployment configs Docker, Nginx, GitHub Actions

Features

Authentication & Security

  • Email/Password Authentication - Secure sign-up and sign-in with bcrypt password hashing
  • OAuth Integration - Google and GitHub OAuth 2.0 authentication support
  • JWT Token Management - Access and refresh token flow with secure token storage
  • Session Management - Track active sessions with device fingerprinting and IP logging
  • Multi-Device Support - Register and manage multiple devices per user
  • Password Recovery - Forgot password flow with email-based reset tokens
  • reCAPTCHA - Google reCAPTCHA integration for bot protection
  • Rate Limiting - Global throttling to prevent abuse
  • Multi-Account Support - Account switcher for managing multiple profiles (Mobile)

Tweets & Posts

  • Rich Tweet Composer - Create posts with support for:
    • Hashtag detection, parsing, and auto-linking
    • User mention detection, parsing, and auto-linking
    • Up to 4 media attachments per tweet (images, videos, GIFs)
    • Native emoji picker integration
    • Character count with visual indicator
    • GIF picker via Tenor API (Web)
  • Reply Threads - Nested conversation threads with root tweet tracking
  • Quote Tweets - Retweet with commentary
  • Retweets - Share tweets with followers
  • Likes - Like/unlike functionality with optimized count tracking
  • Bookmarks - Save tweets for later viewing with dedicated feed
  • Tweet Deletion - Soft delete with cascade handling
  • Content Classification - AI-powered tweet categorization (News, Sports, Entertainment)
  • Media Grid - Responsive media display for images and videos
  • Video Playback - Video.js player with full controls and Picture-in-Picture support

Direct Messaging

  • Real-time Chat - WebSocket-powered instant messaging via Socket.IO
  • Conversation Management - Create and manage one-on-one conversations
  • Message Features:
    • Text messages
    • Image attachments and sharing
    • Emoji reactions (sender and receiver)
    • Message deletion (per-participant)
    • Read receipts via last seen tracking
    • Typing indicators
    • Unread message indicators
  • Sound Notifications - Audio alerts for new messages (Web)
  • WebSocket Scaling - Redis adapter for horizontal scaling

Timeline & Feed

  • Home Timeline - Personalized feed with posts from followed users
  • Real-time Updates - Server-Sent Events (SSE) for live feed updates
  • Cursor-based Pagination - Efficient infinite scrolling implementation
  • Pull-to-Refresh - Mobile-friendly feed refresh
  • For You Feed - Algorithmic content discovery based on user interests

Explore & Discovery

  • Trending Topics - Real-time trending hashtags and keywords
  • Category-based Trending - Trending content by category (News, Sports, Entertainment, General)
  • Explore Feed - Curated content discovery
  • User Discovery - Discover new users to follow

Search

  • Full-text Search - PostgreSQL full-text search capabilities
  • Unified Search - Search users, tweets, and hashtags
  • Tabbed Results - Filtered view by content type
  • Advanced Filters - Filter by users, tweets, hashtags
  • Recent Searches - Quick access to search history
  • Real-time Suggestions - Instant search suggestions

User Management

  • Profile Customization - Display name, bio, location, website
  • Profile Images - Avatar and banner image upload with crop functionality
  • Following/Followers - Social graph management with counter caching
  • Profile Tabs - View tweets, replies, media, and likes
  • Block System - Block users with bidirectional visibility prevention
  • Mute System - Mute users to hide their content
  • User Interests - Personalization based on selected interests

Notifications

  • Push Notifications - Firebase Cloud Messaging (FCM) integration
  • In-App Notifications - Real-time notification feed via SSE
  • Notification Types:
    • Follow notifications
    • Like notifications
    • Retweet notifications
    • Quote notifications
    • Reply notifications
    • Mention notifications
    • Direct message notifications
  • Notification Aggregation - Group similar notifications
  • Delivery Tracking - Track notification delivery status to devices
  • Read/Unread Status - Track notification status
  • Filter Options - Filter by notification type

Media

  • File Upload - Support for image and video uploads
  • S3 Storage - AWS S3 compatible object storage
  • Image Processing - Sharp-based image optimization and resizing
  • Media Association - Attach media to tweets and messages

Settings & Privacy

  • Appearance - Theme customization (light/dark mode) with system preference detection
  • Account Settings - Manage account information and email preferences
  • Privacy Controls:
    • Muted accounts management
    • Blocked accounts management
    • Content preferences
  • Sessions Management - View and manage active sessions
  • Interest Preferences - Customize content recommendations

User Experience

  • RTL Support - Right-to-left language support for Arabic
  • Localization - Multi-language support (English & Arabic)
  • Responsive Design - Mobile-first responsive layouts
  • Toast Notifications - Non-intrusive feedback messages
  • Skeleton Loading - Smooth loading states
  • Virtual Scrolling - Optimized performance for long lists

AI Features

  • Tweet Classification - Groq-powered content categorization
  • Smart Analysis - Automated content analysis for trending topics

Infrastructure

  • Background Jobs - BullMQ for reliable job processing
  • Event-Driven Architecture - NestJS Event Emitter for decoupled communication
  • Scheduled Tasks - Cron-based scheduled jobs
  • Health Checks - Health endpoint for monitoring
  • Structured Logging - Winston-based logging with multiple transports

Architecture

Architecture Screenshot


Tech Stack

Backend

  • Framework: NestJS 11 with TypeScript
  • Database: PostgreSQL 15+ with Prisma ORM
  • Caching: Redis for session storage and pub/sub
  • Real-time: Socket.IO for messaging, SSE for feed updates
  • Queue: BullMQ for background job processing
  • AI: Groq SDK for content classification

Frontend (Web)

  • Framework: Nuxt 4 with Vue 3 Composition API
  • Styling: TailwindCSS 4
  • State: Pinia for state management
  • Real-time: Socket.IO client, EventSource for SSE

Mobile

  • Framework: React Native 0.81 with Expo SDK 54
  • Navigation: Expo Router
  • State: Zustand
  • Styling: NativeWind (Tailwind for React Native)

Infrastructure

  • Containerization: Docker & Docker Compose
  • Reverse Proxy: Nginx with SSL/TLS
  • CI/CD: GitHub Actions with automated deployments
  • Monitoring: Prometheus, Grafana, Dozzle

Environments

Environment URL Purpose
Production raven.cmp27.space Live production environment
Staging staging.raven.cmp27.space Pre-production testing

Quick Start

Prerequisites

  • Node.js 22+
  • pnpm
  • Docker & Docker Compose
  • PostgreSQL 15+
  • Redis 7+

Development Setup

# Clone all repositories
git clone https://github.com/raven-swe/backend
git clone https://github.com/raven-swe/frontend
git clone https://github.com/raven-swe/cross-platform
git clone https://github.com/raven-swe/infrastructure

# Backend
cd backend
pnpm install
cp .env.example .env
pnpm prisma migrate dev
pnpm run start:dev

# Frontend
cd frontend
pnpm install
pnpm run dev

# Mobile
cd cross-platform
pnpm install
pnpm run start

Documentation


Contributing

We welcome contributions! Please follow our workflow:

  1. Branch Naming: Use kebab-case with type prefix (e.g., feat/user-mentions, fix/auth-token)
  2. Commit Messages: Follow Conventional Commits format
  3. Pull Requests: Ensure PR title follows the same convention
  4. Code Quality: All PRs must pass linting, formatting, and tests

Commit Types

  • feat - New features
  • fix - Bug fixes
  • docs - Documentation changes
  • refactor - Code refactoring
  • test - Test additions/modifications
  • chore - Maintenance tasks
  • perf - Performance improvements

Team

Frontend Team

Backend Team

Cross-Platform Team

Testing Team

DevOps Team

Popular repositories Loading

  1. frontend frontend Public

    Frontend repository for Raven SWE project

    TypeScript 21 1

  2. cross-platform cross-platform Public

    Cross platform repository for Raven SWE project

    TypeScript 20 2

  3. backend backend Public

    Backend repository for Raven SWE project

    TypeScript 18 4

  4. infrastructure infrastructure Public

    Infrastructure repository for Raven SWE project

    Shell 11 1

  5. .github .github Public

Repositories

Showing 5 of 5 repositories

Top languages

Loading…

Most used topics

Loading…