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