Welcome to the core of the Repostea platform – a modern social link-sharing backend built with Laravel 12.
This is a complete Laravel 12 API that powers the backend of the Repostea platform.
It includes user registration, link submission, voting, commenting, tag management, multi-tenancy support, and more.
- Laravel 12
- MySQL or SQLite
- Laravel Sanctum (auth)
- RESTful API structure
- Multi-tenant architecture
The frontend (Nuxt 3) has been decoupled and lives in a separate repo:
🔗 https://github.com/repostea/repostea-client
git clone https://github.com/repostea/repostea-api.git
cd repostea-api
composer install
cp .env.example .env
php artisan key:generateConfigure your .env file and run:
php artisan migrate --seedTo start the API server, queues, logs and frontend in parallel, use:
composer run devThis will launch:
php artisan serve(API server)php artisan queue:listen(queue worker)php artisan pail(log tailing)npm run dev(Vite/Frontend)
On Windows, you might encounter issues with php artisan pail as it requires the PHP pcntl extension which is not available natively on Windows. You have two options:
-
Recommended: Use WSL (Windows Subsystem for Linux)
WSL provides a Linux environment on Windows which supports the necessary extensions.
Learn how to install WSL -
Alternative: Run components separately
Instead of usingcomposer run dev, you can run the components in separate terminals:# Terminal 1 php artisan serve # Terminal 2 php artisan queue:listen --tries=1 # Terminal 3 npm run dev
Before committing code, you can run the following tools to check formatting and static analysis:
# Fix formatting
./vendor/bin/pint
# Run static analysis
vendor/bin/phpstan analyseYou can also combine both with:
composer qualityRepostea implements a multi-tenant architecture, which means:
- A single installation can host multiple independent instances of the platform
- Each tenant has its own isolated data (users, links, comments, etc.)
- Tenants are identified by their UUID
- API requests require tenant authentication via API keys
- Data is automatically scoped to the current tenant
This architecture is ideal for:
- Running multiple communities with a single codebase
- White-labeling the platform for different clients
- Separating development, testing, and production environments
To create a new tenant, use:
php artisan tenant:create "My Tenant Name"This will generate a UUID and API key for the new tenant.
Check out the live version of Repostea at repostea.com
You can view our planned features and current development status on our GitHub Projects board
Please see CONTRIBUTING.md for how to contribute and how to keep your private changes safe.
This project is licensed under the MIT License with Author Notification Clause.
See LICENSE.md for full terms.