Sosise is an elegant, expressive, and feature-rich web application framework for Node.js β inspired by Laravel. It provides a powerful boilerplate and tools to help you build modern, maintainable applications with ease.
- β‘ Features
- π Getting Started
- ποΈ Project Structure
- π Key Concepts
- π³ Docker Support
- π Documentation
- π€ Contributing
- π License
- π Expressive Routing & Middleware β Intuitive API powered by Express.js.
- ποΈ Database Migrations & Seeders β Built-in support using Knex.js for multiple SQL engines.
- π§© IoC Container & Service Providers β Manage dependencies with ease.
- βοΈ Rich Configuration β Session, cache, queue, mailer, logging, and more out of the box.
- π Background Queues β BullMQ-based job queues for asynchronous processing.
- π Documentation Generator β Integrated support for Docsify documentation.
- π§ͺ Testing Environment β Pre-configured testing setup with unit and feature tests.
- π Docker Support β Official Docker image and Docker Compose files.
π¬ Install the CLI tool and scaffold a new project:
npm install -g sosise-cli
sosise new my-app
cd my-app
npm install
npm run startπ You now have a fully configured Sosise application up and running.
my-app/
βββ app/ # Application source code (controllers, services, console commands, etc.)
βββ config/ # Configuration files (database, cache, mail, queue, session, etc.)
βββ database/ # Migrations & seeders
βββ docs/ # Documentation (Docsify)
βββ docker/ # Docker build files & scripts
βββ public/ # Public assets
βββ resources/ # Views & frontend assets
βββ src/ # Framework core (auto-generated)
For a deeper dive into the directory layout, see the Directory Structure guide.
Define clean, expressive routes in src/routes:
router.get('/', (request: Request, response: Response, next: NextFunction) => {
indexController.index(request, response, next);
});Use Knex.js for migrations and fluent query building:
# Create a new migration
npm run migrate:make create_users_table
npm run migrateConfigure cache and session in config/cache.ts and config/session.ts respectively.
Send emails via the built-in mailer and configure logging channels in config/mailer.ts and config/logging.ts.
Define background jobs using BullMQ in app/Console/QueueWorkers.
π³ Build and run with Docker:
./build-docker-image.sh
docker-compose upEnsure your .env and cron files are present for proper operation inside containers.
π Full documentation and API reference are available at:
Contributions, issues, and feature requests are welcome!
Feel free to open an issue or submit a pull request on the GitHub repository.
MIT Β© Sosise Contributors