Use the existing architecture to add custom login providers, integrations, or admin panels without forking the project.
ProviderBase to register new modules or integrations and load them during bootstrap. Providers are instantiated from the App loader, so follow PSR-4 autoloading conventions.【F:app/Providers/LoginsServiceProvider.php†L9-L28】【F:app/Boot/App.php†L32-L52】ModuleBase or LoginBase to gain helper methods and consistent setup patterns. The base classes handle WordPress hooks, REST registration, and lifecycle management.【F:app/Common/ModuleBase.php†L1-L120】【F:app/Common/LoginBase.php†L1-L140】Hookable trait to register actions and filters that automatically instantiate their target classes when invoked, keeping constructors lightweight.【F:app/Common/Hookable.php†L11-L32】app/Logins/YourProvider with classes for settings, routes, buttons, and controller logic.LoginBase or ModuleBase to control bootstrapping. Use SettingsRepository to store configuration and Module::is_active() to respect feature toggles.【F:app/Logins/GoogleLogin/GoogleLogin.php†L9-L45】【F:app/Utils/Module.php†L11-L13】RouteBase and enqueue front-end assets via an Enqueuer class if needed.【F:app/Logins/MagicLinkLogin/Route.php†L14-L19】【F:app/Common/RouteBase.php†L17-L64】LoginsServiceProvider::get() to include your provider class so it boots automatically.【F:app/Providers/LoginsServiceProvider.php†L14-L27】IntegrationBase that hooks into partner plugin actions to render login buttons.【F:app/Integrations/WooCommerce/WooCommerce.php†L11-L55】login_me_now_settings_fields filter so administrators can enable/disable the integration and pick providers.【F:app/Integrations/Directorist/Settings.php†L15-L61】IntegrationsServiceProvider::get() to ensure it loads after the plugin boots.【F:app/Providers/IntegrationsServiceProvider.php†L14-L27】LoginDTO, UserDataDTO) to transfer structured data between controllers, repositories, and the authentication pipeline. They supply fluent setters and getters to keep code readable.【F:app/DTO/LoginDTO.php†L9-L52】【F:app/DTO/UserDataDTO.php†L9-L64】@wordpress/scripts. Add new panels by editing the components in src/dashboard, updating the Redux store, and rebuilding assets using yarn start or yarn build.【F:package.json†L6-L28】【F:src/dashboard/utils/setInitialState.js†L33-L70】Helper, Random, Time, and Translator are available for consistent behavior across modules.【F:app/Repositories/MagicLinkRepository.php†L96-L210】【F:app/Logins/BrowserTokenLogin/JWTAuth.php†L31-L144】yarn build and composer install --no-dev before packaging the plugin for distribution.Leverage these patterns to deliver bespoke login experiences while staying aligned with the core plugin roadmap.