About the Project
JournalPHP is an open-source platform for creating topic-based communities. Users publish posts, discuss them in comments, follow authors and communities, and exchange private messages. Administrators manage everything through the built-in admin panel — without third-party services or SaaS restrictions.
Who JournalPHP Is For
| Audience | Benefits |
|---|---|
| Administrators | Ready platform on your own server, full data ownership, no per-user fees |
| Developers | Familiar Laravel + Vue + Inertia stack, MIT license, Docker, extensible architecture |
| Teams & Communities | Feed, discussions, subscriptions, moderation, and monetization — all included |
Key Features
Content & Communities
- Topic-based communities (user creation can be enabled in admin settings)
- Block post editor (Editor.js) with autosave and version history
- Polls and voting in posts
- Reposts, pinning, unpublishing
- Tags and tag navigation
- Personal, popular, and editorial feeds
sitemap.xmlgeneration and separate XML maps
Social Mechanics
- Reactions and likes on posts and comments
- Follow authors and communities
- Bookmarks and favorites
- Mentions (
@username) with notifications - User rating and top-authors widget
- Saved GIFs
Profile & Account
- Email registration and login
- OAuth: Google, Yandex, VKontakte, Facebook, Apple, GitHub
- One Tap — quick sign-in via Google and Yandex (popup for guests)
- Public profile — avatar, header, bio
- Session management and soft account deletion
- Ignore users, posts, and keywords
Messages & Notifications
- Real-time private chats (Laravel Reverb / WebSocket)
- Notifications for reactions, replies, mentions
- Per-user notification settings
- Email notifications
Moderation & Safety
- Reports on posts, comments, and users
- Unmoderated content queue
- Temporary and permanent bans
- Content bans (restrict publishing without blocking the account)
- Automatic bans based on violation rules
- AI text moderation (Deepseek)
- Image moderation (Yandex Vision API)
Subscriptions & Monetization
- Subscription plans with custom feature sets
- Payment providers: YooKassa, T-Bank
- Auto-renewal
- Features gated by subscription: AI summaries, video avatar, badges
- Banner and inline advertising blocks
AI Integrations
- Automated post summaries (DeepSeek)
- Comment bot powered by ChatGPT
- Prompt and API key configuration via admin panel (
/admin-panel/ai-settings);DEEPSEEK_*env vars as fallback - AI text and image moderation
SEO
- Metadata for key pages
- OpenGraph and JSON-LD for posts, profiles, and communities
- External link metadata parsing
- Short links and redirects
Technology Stack
| Layer | Technologies |
|---|---|
| Backend | PHP 8.4+, Laravel 13 |
| Frontend | Vue 3, Inertia.js 2, Vite, Tailwind CSS 3 |
| Database | MySQL 8 |
| Cache / Sessions / Queues | Redis (Predis) |
| Real Time | Laravel Reverb (WebSocket) |
| Queue Monitoring | Laravel Horizon |
| Search | Laravel Scout (.env.example sets SCOUT_DRIVER=null; config/scout.php defaults to algolia; optional database driver) |
| Media | Local, Cloudinary, Yandex Cloud Object Storage |
| Infrastructure | Docker, Docker Compose, Nginx, Supervisor |
License
JournalPHP is released under the MIT License — you are free to use, modify, and distribute the code.