FROM DOWNLOAD TO YOUR PROJECT
Add a module.
Keep building.
Start with a working Core project. Then download a module and install it locally.
Download your module.
Open your library and select the build that matches your Core version. Download its
.tar.gz archive and keep it compressed.
Open the local installer.
In your Core project’s terminal, run:
pnpm features:ui
The command starts an installer on your computer and opens it in your browser. Keep that terminal running while you install.
Choose the archive. Click Install.
Select your downloaded archive in the local installer. Review its compatibility and proposed changes, then click Install. The installer connects the module’s page and API routes to your project.
Follow any setup instructions shown after installation, run the suggested checks, and restart your development server. This website does not modify files on your computer.
Connect your Stripe account.
If your Core project does not have an administrator yet, set
ADMIN_EMAIL to a new administrator address and
DATABASE_URL to that deployment’s database in your terminal environment,
then run pnpm db:bootstrap:admin. Save the generated password privately
and change it after signing in. This command does not load your local environment file
or promote an existing regular user.
This module adds billing to the app you build. Your BSLT module purchase does not create a Stripe merchant account or cover Stripe processing fees.
Use separate app deployments and databases for testing and production. Start in Stripe
test mode on your test deployment. Register your API’s HTTPS webhook endpoint at
/api/extensions/billing/webhooks/stripe and enable these events:
customer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedinvoice.paidinvoice.payment_failed
Add the matching keys and that endpoint’s signing secret to your server’s private
environment configuration. PUBLIC_APP_URL is your customer-facing app
URL, where Stripe should return the customer. Never put secret keys in browser
variables or commit them to Git.
BILLING_PROVIDER=stripe
STRIPE_SECRET_KEY=sk_test_your_key
STRIPE_PUBLISHABLE_KEY=pk_test_your_key
STRIPE_WEBHOOK_SECRET=whsec_your_endpoint_secret
PUBLIC_APP_URL=https://your-app.example
Rebuild and restart Core, then sign in to your app with an administrator account and
open /extensions/billing. The page shows Test mode when
the keys are configured correctly. If it shows
Billing is not configured, check the environment values and restart
the server.
In Stripe, create an active fixed-price monthly or yearly subscription price. On your app’s Billing page, find Set up a plan, enter its Stripe price ID and Plan name, optionally add a description, and select Import Stripe plan. The server reads the amount and currency from Stripe. Use a price from the same test or live mode as the app. The setup form appears only for accounts with the server’s administrator role; regular customers can choose only imported plans.
As a customer, choose a plan and complete Stripe test checkout. After returning, select Refresh billing until the verified webhook has updated the subscription. The return URL alone does not activate a subscription. Test period-end cancellation, resume, and invoice downloads from the same page. If payment remains pending, check webhook delivery before starting another checkout.
Before your app accepts real payments, activate your merchant account and set up a production deployment with its own database. Configure matching live keys, live prices, and a live webhook secret there, import the live prices, and confirm its Billing page no longer displays Test mode. Keep test customer, subscription, and price records out of the production database: switching keys against a database that has already handled test billing is not supported.
Prefer the command line?
Run these from your Core project. Replace the example path with your downloaded archive.
pnpm features:add ./account-insights-1.0.0-core-1.0.0.tar.gz --dry-run
pnpm features:add ./account-insights-1.0.0-core-1.0.0.tar.gz
pnpm features:check
For installation by name, create an optional installer token in your library.
pnpm features:list
pnpm features:update account-insights --dry-run
pnpm features:update account-insights
pnpm features:remove account-insights