Skip to content

Core Features

Core Features

The project is built with the following core features:

  • Authentication: The project has an auth module. It supports authentication using email, phone number, and social providers.
  • Database: The project has a database module. It supports multiple databases out of the box.
  • Storage: The project has a file storage module. It supports multiple storage providers out of the box.
  • Payment: The project has a payment module. It supports multiple payment providers out of the box.

We have multiple modules that are optional to use. You can remove any module that you don’t need. Some modules are integrated with the core features, so you need to remove the related code from the core features to remove the module.

Modules

Modules are the core features of the project. They are used to add new features to the project. They incorporate the ui components, functions, hooks, api related to the module/feature. The project is built with the following modules:

Overview of Module Composition

Each module has its own assets, providers (supabase, firebase, rest API) its own components, and an interface. Each module is self contained, and if you want to remove a certain module, or the functionality, just delete the folder.

  • Self-Contained Modules: Each module is designed to be self-contained, making it easy to remove or modify without affecting other parts of the project.
  • Multiple Provider Options: Most modules support multiple provider options such as Supabase, REST API, and Firebase.
  • Easy Provider Switching: To switch providers, simply uncomment the desired provider in the file. No app restart is required for the changes to take effect.The provider can be easily changed in <module-name>/providers/index.ts.
  • Components and Interface: Each module has its own set of components and a defined interface, ensuring a clear and consistent structure across the project.
  • Modular Architecture: The project’s modular architecture allows for easy removal of a module or its functionality by simply deleting the corresponding folder.

Module Interface

The interface of the module is defined in <module-name>/types/index.ts.

Module Providers

The provider of the module is defined in <module-name>/providers/index.ts.

Module Components

The components of the module is defined in <module-name>/components/index.ts.

Module Hooks

The hooks of the module is defined in <module-name>/hooks/index.ts.

Module Utils

The utils of the module is defined in <module-name>/utils/index.ts.

Module Assets

The assets of the module is defined in <module-name>/assets/index.ts.