A community platform for content creators to connect, collaborate, and find services. Creators can publish topics across 9 service categories, build portfolios, leave reviews, follow each other, and engage through posts and comments.
- .NET 9 / ASP.NET Core
- Blazor (SSR + Interactive Server + WebAssembly)
- Entity Framework Core (SQLite by default)
- ASP.NET Identity (cookie-based authentication)
- FluentValidation for request validation
- AutoMapper for object mapping
- Fluxor for client-side state management
- Serilog for structured logging
- xUnit for testing
The project follows Clean Architecture principles with clear separation of concerns:
CreatorHub.sln
├── CreatorHub/ # Presentation layer (Blazor app)
│ ├── CreatorHub/ # Server-side host (SSR + API endpoints)
│ │ ├── Components/ # Razor components (pages, layout, shared)
│ │ ├── Endpoints/ # Minimal API endpoints
│ │ ├── Store/ # Fluxor state management
│ │ └── wwwroot/ # Static assets (CSS, JS)
│ └── CreatorHub.Client/ # WebAssembly client (localization, services)
│
├── CreatorHub.Application/ # Application layer
│ ├── Interfaces/ # Service & repository contracts
│ ├── Services/ # Business logic implementations
│ ├── Validators/ # FluentValidation validators
│ └── Mappers/ # AutoMapper profiles
│
├── CreatorHub.Infrastructure/ # Infrastructure layer
│ ├── Data/ # DbContext, EF configurations
│ ├── Repositories/ # Repository implementations
│ ├── Migrations/ # EF Core migrations
│ └── Initialization/ # Database seeding
│
├── CreatorHub.Domain/ # Domain layer (CreatorHubDB/)
│ ├── Entities/ # Domain entities
│ ├── Enums/ # Domain enumerations
│ └── Interfaces/ # Domain-level interfaces
│
├── CreatorHub.Contracts/ # Shared contracts
│ ├── Constants/ # Category keys, icons
│ ├── Definitions/ # Category definitions
│ └── Enums/ # Shared enumerations
│
├── CreatorHub.Common/ # Shared utilities
│ ├── DTO/ # Data transfer objects
│ └── Utils/ # BBCode renderer, HTML sanitizer
│
└── CreatorHub.Tests/ # Integration & unit tests
| # | Category | Subcategories |
|---|---|---|
| 1 | Scripts & Copywriting | Screenwriting, Copywriting, Content Ideas |
| 2 | Filming & Voice | Videography, Voice-over, Podcasts |
| 3 | Video Editing | YouTube Editing, Shorts/Reels/TikTok, Color Grading |
| 4 | Sound | Mixing, Mastering, Sound Effects |
| 5 | Design | Thumbnails, Logos, Banners, Templates |
| 6 | Animation | Motion Graphics, Intro/Outro, Stream Visuals |
| 7 | Streaming | OBS Setup, Bots (Twitch/Discord) |
| 8 | Marketing | YouTube SEO, SMM, Analytics, Content Strategy |
| 9 | Development | Websites, Bots (Telegram/Discord), Automation |
- Authentication -- Registration, login, cookie-based sessions (ASP.NET Identity)
- Topics -- Create, browse, and filter service topics with tags and categories
- Posts & Comments -- BBCode-powered content with nested comments
- User Profiles -- Avatars, badges, activity feeds, contact information
- Follow System -- Follow other creators, personalized feeds
- Portfolio -- Showcase completed work with descriptions and links
- Reviews & Ratings -- Rate and review creators you have worked with
- Notifications -- Real-time notifications for follows, comments, reviews
- Moderation -- Report system for content and users, audit logging
- Localization -- Ukrainian (uk-UA) and English support
A rich set of reusable Blazor components: Avatar, Badge, Button, Input, Select, Textarea, BBEditor, BBView, BookmarkButton, Icon, MetaChip, PostCard, PostComposer, ProgressBar, StatusPill, StatusTag, TopicCard, TopicRow, and more.
# Clone the repository
git clone https://github.com/WabiSabikk/creatorhub.git
cd creatorhub
# Run the application (SQLite database is created automatically)
dotnet run --project CreatorHub/CreatorHub/CreatorHub.csproj
# Open https://localhost:5001 in your browserdotnet testThe application uses SQLite by default. The database file is created at Data/creatorhub.db relative to the working directory.
Configuration is in CreatorHub/CreatorHub/appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=Data/creatorhub.db"
},
"Database": {
"Provider": "Sqlite"
}
}This project is provided as-is for educational and portfolio purposes.