Skip to content

enyojoo/fidarr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Fidarr

The Premier Faith-Based Streaming Platform

Fidarr is a modern, premium streaming platform dedicated to Christian music, videos, and podcasts. Stream, connect, and grow your faith with millions of listeners worldwide.

🎡 Features

For Listeners

  • Premium Audio Quality - Lossless CD-quality streaming
  • Diverse Content - Music, videos, podcasts, and live streams
  • Offline Mode - Download and listen anywhere
  • Personalized Experience - Curated recommendations and playlists
  • Community - Connect with millions of faith-focused listeners
  • Multi-Device Support - Stream on any device seamlessly

For Creators

  • Content Management - Easy upload and organization tools
  • Real-Time Analytics - Track audience engagement and performance
  • Revenue Optimization - Fair compensation and monetization
  • Creator Community - Connect with other Christian creators
  • Professional Tools - Advanced features for growing your audience
  • Dashboard - Comprehensive creator management interface

πŸ—οΈ Architecture

Fidarr is built as a monorepo with multiple independent applications:

fidarr/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ webapp/              # Main web application (app.fidarr.com)
β”‚   β”œβ”€β”€ website/             # Marketing website (fidarr.com)
β”‚   β”œβ”€β”€ creator/             # Creator dashboard (creator.fidarr.com)
β”‚   └── admin/               # Admin dashboard (PRIVATE)
β”œβ”€β”€ packages/
β”‚   └── ui/                  # Shared UI components & branding
└── Configuration files

Technology Stack

  • Frontend Framework: Next.js 14+ with React 19
  • Styling: Tailwind CSS with custom RED branding
  • Build System: Turbo (Turborepo)
  • Package Manager: npm with workspaces
  • Component Library: Radix UI + Shadcn UI
  • Icons: Lucide React
  • Theme Management: next-themes
  • Forms: React Hook Form with Zod validation

Key Features

  • βœ… Monorepo Structure - Shared code, independent deployments
  • βœ… Domain-Based Routing - Multiple subdomains for different apps
  • βœ… Consistent Branding - Unified RED color scheme across all apps
  • βœ… Smooth Animations - Modern transitions and effects
  • βœ… Responsive Design - Mobile-first approach
  • βœ… Dark/Light Mode - Theme switching with persistence
  • βœ… Accessibility - WCAG compliant components

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm 9+

Installation

  1. Clone the repository:
git clone https://github.com/enyojoo/fidarr.git
cd fidarr
  1. Install dependencies:
npm install
  1. Start development servers:
npm run dev

This will start all applications in parallel:

πŸ“¦ Development

Available Commands

# Development
npm run dev              # Start all apps in development mode

# Building
npm run build            # Build all apps for production
npm run build            # Builds with Turbo caching

# Starting
npm start               # Start all apps in production mode

# Linting
npm run lint            # Run linters across all apps

# Type Checking
npm run type-check      # Run TypeScript type checking

Project Structure

Apps

Webapp (apps/webapp/)

  • Main streaming application
  • Music, videos, podcasts library
  • Playlist management
  • User profiles
  • Audio player with queue management

Website (apps/website/)

  • Marketing landing page
  • Feature showcase
  • Pricing information
  • Creator highlights
  • SEO optimized

Creator Dashboard (apps/creator/)

  • Content upload and management
  • Analytics and performance tracking
  • Revenue dashboard
  • Creator profile management

Packages

UI Package (packages/ui/)

  • Shared UI components (50+ components)
  • Brand colors and typography
  • Theme provider and utilities
  • Consistent design system
  • Fidarr logo with theme awareness

🎨 Design System

Colors

Primary Brand Color: RED

  • Light Mode: #EF4444 (HSL: 0 100% 36.7%)
  • Dark Mode: #D83333 (HSL: 4 80% 47%)

All UI elements use the RED branding for consistency across the platform.

Typography

  • Font: Geist Sans (default), Geist Mono (code)
  • Headings: Black weight (font-black) for impact
  • Body: Regular weight with light variants for descriptions

Components

The UI package exports 50+ reusable components including:

  • Buttons, Cards, Dialogs, Dropdowns
  • Forms (Input, Textarea, Select, Switch)
  • Navigation (Sidebar, Tabs)
  • Overlay (Modal, Popover, Toast)
  • And many more...

🌐 Deployment

Vercel Deployment

Fidarr is optimized for Vercel deployment with:

  • Multi-app monorepo support
  • Automatic build optimization
  • Environment-specific deployments
  • CI/CD integration

Key Configuration:

  • packageManager field in root package.json (npm@10.8.1)
  • turbo.json for build orchestration
  • Each app has independent build configuration

Domain Routing

Apps are accessible via subdomains:

  • fidarr.com - Marketing website
  • app.fidarr.com - Main web application
  • creator.fidarr.com - Creator dashboard

Middleware handles domain-based routing automatically.

πŸ“ Git Workflow

Branch Strategy

  • main - Production-ready code
  • Feature branches for development

Commits

Commits follow the convention:

[type]: [description]

Examples:
- feat: Add theme switching animation
- fix: Resolve sidebar color override
- refactor: Consolidate FidarrLogo component
- style: Update button styling

πŸ“š Documentation

Component Usage

All Shadcn UI components are available in the UI package. Import them:

import { Button, Card, Dialog } from "@fidarr/ui"

Creating New Components

  1. Create component in packages/ui/components/
  2. Export from packages/ui/components/index.ts
  3. Export from packages/ui/index.ts
  4. Use in any app via @fidarr/ui import

Theme Management

Theme switching is handled automatically across all apps:

import { useTheme } from "@fidarr/ui"

export function ThemeToggle() {
  const { theme, setTheme } = useTheme()
  // Use theme value and setter
}

πŸ”’ Security & Best Practices

  • Environment Variables: Use .env.local files (not committed)
  • Type Safety: Full TypeScript support with strict mode
  • Accessibility: WCAG 2.1 Level AA compliance
  • Performance: Optimized with Next.js built-in features
  • Responsive: Mobile-first design approach

🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test locally: npm run build
  5. Submit a pull request

πŸ“„ License

This project is proprietary. All rights reserved.

πŸ‘₯ Team

Built with ❀️ for faith-focused creators and listeners worldwide.


Questions or Issues?

  • πŸ“§ Email: support@fidarr.com
  • πŸ™ GitHub Issues: Report bugs here
  • πŸ’¬ Community: Join our creator community

Made for faith. Built for community. Streaming for you.

Releases

No releases published

Packages

No packages published

Languages