Welcome to the Ideariver repository! This is the central monorepo for the IdeaRiver ecosystem, hosting various submodules that enable scalable development and seamless integration of different projects within the platform.
my.secret.sauce.mov
IdeaRiver is an open-source platform designed to help content creators streamline their workflow by providing micro-tools that assist with daily tasks such as content generation, SEO tracking, and more. The platform is built to be modular and collaborative, allowing contributors from around the world to build new tools or integrate existing ones into their own infrastructure.
The systemโs plugin-based architecture ensures that content creators can easily extend functionality by using tools created by the community. Whether youโre looking to automate YouTube description generation, blog writing, or other content tasks, IdeaRiver provides the infrastructure to scale your work and collaborate with other developers to improve your tools.
- Modular Micro-tools: The platform offers small, task-specific tools that can be used independently or integrated into existing workflows.
- Community Collaboration: Open to contributions from developers worldwide, making it easy to build and share new tools.
- Seamless Integration: Easily integrates into existing infrastructures, so content creators and businesses can leverage the tools without major disruptions.
Join the IdeaRiver community and help expand the platform with tools that solve real-world content creation challenges!
IdeaRiver is a modular, scalable platform designed with cutting-edge technologies to manage various digital services and applications. The platform is built with a combination of modern development paradigms, including Domain-Driven Design (DDD), Event-Driven Architecture, Microservices, and a highly flexible Plugin System Architecture. These paradigms are powered by a robust set of tools and libraries to ensure flexibility, efficiency, and scalability.
- Domain-Driven Design (DDD): DDD helps in structuring the codebase around core business domains, with a clear separation of concerns between the domain logic, infrastructure, and services. This makes the system highly maintainable and adaptable to business changes.
- Event-Driven Architecture: By decoupling services and leveraging message queues like RabbitMQ, IdeaRiver enables efficient and asynchronous communication between services. This approach ensures the platform can handle high traffic, scalability, and real-time processing requirements.
- Microservices: The platform is designed as a collection of loosely coupled, independently deployable services, ensuring flexibility and scalability. Each service manages its own lifecycle, making the platform resilient to failure and easily extensible.
- Plugin System Architecture: IdeaRiver supports a dynamic plugin-based architecture, allowing new features to be added or updated independently, without modifying the core platform. The plugin loader dynamically loads different plugins (e.g., for writing YouTube descriptions, generating chapters, SEO tracking, etc.), enabling the platform to handle a wide variety of tasks. This architecture allows easy extensibility and modularity, making it easier to maintain and scale the system.
The repository is organized into various submodules, structured as follows:
The ideariver-core is the foundational library of the IdeaRiver ecosystem. It provides essential abstract classes, DTOs, and interfaces that facilitate integration between services and plugins. This library is designed to be lightweight and extensible.
The ideariver.schemas repository serves as the centralized location for managing language-independent event schemas. These schemas are critical for ensuring standardized communication between services in a distributed, event-driven architecture.
The ideariver.core is a foundational package designed for IdeaRiver as part of the Domain-Driven Design (DDD) architecture. It serves as the core of the system, containing Data Transfer Objects (DTOs) and interfaces that are completely abstract, with zero dependencies on other libraries.
- Domain-Driven Design (DDD) Core Layer
- DTO and Interfaces
- Zero Dependencies
- Provides a centralized repository for core abstractions that can be used across all IdeaRiver services and applications.
- Ensures separation of concerns by keeping core logic isolated from business and infrastructure layers.
The Ideariver Services Python repository provides essential services used across the IdeaRiver ecosystem. These services include plugin management, RabbitMQ messaging, and input validation. The services are designed to be modular, reusable, and scalable.
- Dynamic plugin loading based on JSON configurations
- Modular plugin architecture allowing independent plugin development
- RabbitMQ adapter for message queue-based plugin execution
- Pytest for automated plugin testing
The IdeaRiver Services Server repository is a robust Node.js library for building scalable backend services with a focus on security, modularity, and extensibility. It provides a comprehensive solution for handling CRUD operations, authentication, and middleware management, built on top of Express and TypeORM.
- Abstracted CRUD Operations: Simplifies the implementation of Create, Read, Update, Delete (CRUD) functionalities.
- OpenID Connect Authentication: Seamlessly integrates with Keycloak for secure authentication and authorization.
- Middleware Support: Offers customizable pre- and post-processing through middleware.
- Security Enhancements: Includes rate limiting, Helmet for security headers, and CSRF protection.
- Database Support: Works out of the box with PostgreSQL and SQLite databases.
- Extensive Test Coverage: Comes with Jest and Supertest tests to ensure reliability.
We are excited to introduce the new ideariver-plugins-python submodule! This repository includes a collection of sample Python plugins that are designed to be modular, reusable, and extensible. The plugins can be integrated into the IdeaRiver ecosystem or used independently for various tasks like content creation, audio processing, and video analysis.
- ๐ง Chapter Detection Plugin: Uses AI to detect chapters in video transcripts and generate timestamps.
- ๐ค Transcribe Audio Plugin: Leverages the Whisper model to transcribe audio files with timestamps.
- โ๏ธ Convert to MDX Plugin: Automatically converts transcripts into MDX format for React applications.
- ๐ YouTube Description Plugin: Generates engaging YouTube video descriptions based on transcripts.
- ๐งฎ Sum Plugin: Provides quick and efficient number summation.
- ๐ต Download Audio Plugin: Downloads high-quality audio from YouTube videos across platforms.
Explore the ideariver-plugins-python repository to discover more about these powerful tools and how to integrate them into your workflow.
The Ideariver.config repository contains essential configuration files that are shared across the IdeaRiver platform. These configurations help manage events and handle platform-wide settings efficiently.
The Ideariver.terraform repository demonstrates how to manage infrastructure as code (IaC) using Terraform. This project covers the complete infrastructure for the IdeaRiver application, showcasing best practices in scalability, security, and modularity.
- AWS EC2, ECR, Route53, SES, and IAM management
- Reusable Terraform modules for modular infrastructure
- Security best practices with IAM roles and least privilege access
The Ideariver Landing Page & Blogging Website showcases the digital marketing services provided by IdeaRiver. This project includes a responsive landing page and a blogging platform designed to attract local customers and demonstrate custom web development skills.
- Landing Page for promoting services
- Blogging platform with SEO optimization
- Video production and integration
- Storybook for UI component exploration
Next.js, Tailwind CSS, ShadCN UI, TypeScript, AWS, Terraform, Ansible, and Express.
This monorepo supports seamless integration with its submodules, allowing easy management and updates across the ecosystem. Ensure you explore each submoduleโs repository for detailed instructions on how to integrate and manage them within your own projects.
To get started with IdeaRiver, follow these steps: Clone the repository:
git clone --recurse-submodules https://github.com/nima70/ideariver.gitNavigate to the repository directory:
cd ideariverInitialize and update submodules: If the repository was cloned without the --recurse-submodules flag, initialize and update the submodules manually:
git submodule init
git submodule update --recursiveWe welcome contributions to help make the IdeaRiver platform even better! Whether you want to report issues, suggest features, or submit pull requests, your help is greatly appreciated. Together, we can build something amazing!
This project is licensed under the MIT License.
Thank you for exploring the ideariver repository! Stay tuned for upcoming features and enhancements. ๐
I'm glad you stopped by. Let's create something awesome together!








