17 GitHub stars and counting — monicahq/customers is a PHP project TopGit is tracking across repositories on the platform. The customer portal for Monica and OfficeLife
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
This is the customer portal for both Monica and OfficeLife, both open source web applications.
It allows customers to purchase a license that will let them use Monica and/or OfficeLife in production on the instance that we, the Monica organization, operates. This license is a product key that users must add to their accounts in order to use the product.
But first, let's answer some questions.
Why is this not part of the main Monica/OfficeLife codebase?
Monica and OfficeLife are open source and can be freely used by anyone who is crazy enough to setup, store and maintain a custom instance. For those who take this approach, it doesn't make sense to have any information about subscriptions, purchasing information,… in the same codebase as the main application.
Moreover, even if this customer portal doesn't store any credit card information, data in this portal are not stored in the same databases used by Monica and OfficeLife, reducing the risk in case of data breaches.
Why publish this code? People will be able to easily pirate this.
Yes. Of course, by publishing this code, it's easier to crack the key that we require to use an account. But users and companies who want to screw us will do it anyway. So, we trust that people will play the game and pay for the product so we can continue to improve it and make it a sustainable company.
How does that work?
Each account of Monica and OfficeLife needs a valid key to work. The key is an encrypted array that contains the following information:
validated until date: the date the key remains valid until,
the purchased plan,
the email address of the person who made the purchase.
The key is a JSON that is encrypted with a key that we, and only we, possess. Once the key is created, customers simply have to copy and paste the encrypted key to their accounts to validate it.
Every day, on either Monica or OfficeLife, we will check if we need to revalidate a key, depending on the frequency of the subscription - they can be either monthly or annual.
This check is a ping that originates from an OfficeLife or Monica instance, which will reach this customer portal. Obviously, no private information is ever exchanged during this check. This ping either replies with a HTTP 200 or HTTP 500, depending on the validity of the key.
📦 Installation
Honestly, there shouldn't be any reason why you would want to host this portal yourself. That being said, the project requires PHP 8.0 or higher, and everything that Laravel requires:
HTTP server with PHP support (eg: Apache, Nginx, Caddy)
Composer
MySQL
We do not support Postgre or SQLite.
You should clone this repository and run a few commands to get started:
composer install
yarn install
yarn build
Then you have to populate the .env file with your own setup. This file contains all the variables needed to run the software.
cp .env.example .env
php artisan key:generate
Finally, you have to populate your database by running migrations.
php artisan migrate
📦 Local installation
Paddle
If you want to test the portal locally, you need to create an account on https://sandbox-vendors.paddle.com/.
Then, update the following .env variables that you will find in your account:
PADDLE_VENDOR_ID
PADDLE_VENDOR_AUTH_CODE
PADDLE_PUBLIC_KEY
Now, to test the different webhooks, you need to listen to them. However, you are on local, so by default Paddle won't know how to reach you. Therefore, you need to create a tunnel between your local computer and Paddle. You can use https://expose.dev/ for this. They provide a free account.
Once you have your Expose account, go to https://sandbox-vendors.paddle.com/alerts-webhooks to configure your tunnel.
Launch expose share https://customers.test from your terminal, and now your local application will be able to receive webhooks from Paddle.
Monica and OfficeLife integration
To connect the API with Monica and/or OfficeLife, you need to generate API keys.
This is done with Laravel Passport. Just generate the client keys with:
The most recent commit recorded on monicahq/customers was 2.3 years ago, based on the GitHub push timestamp. The repository has 3 forks — one of the better signals of community interest.
How many stars does monicahq/customers have?
monicahq/customers has 17 GitHub stars — refresh the page for the live number, or check github.com/monicahq/customers. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What is monicahq/customers?
monicahq/customers (monicahq/customers) is a PHP project on GitHub. From the project's own README: The customer portal for Monica and OfficeLife
What language is monicahq/customers written in?
monicahq/customers is written primarily in PHP. GitHub's language field is based on the largest share of bytes in the default branch.
What topics is monicahq/customers associated with?
GitHub's repository topics for monicahq/customers: "hacktoberfest". TopGit's editorial category is open-source.
Read full README in the tab above.
Is customers worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of customers.