Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/getalby/zapplanner
ZapPlanner - Scheduled recurring lightning payments powered by Nostr Wallet Connect (NWC), enabling lightning subscriptions, bitcoin recurring payments.
https://github.com/getalby/zapplanner
bitcoin lightning nostrwalletconnect nwc subscriptions-and-payments
Last synced: 3 months ago
JSON representation
ZapPlanner - Scheduled recurring lightning payments powered by Nostr Wallet Connect (NWC), enabling lightning subscriptions, bitcoin recurring payments.
- Host: GitHub
- URL: https://github.com/getalby/zapplanner
- Owner: getAlby
- Created: 2023-03-29T15:05:47.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-10T19:00:33.000Z (5 months ago)
- Last Synced: 2024-09-10T21:20:30.927Z (5 months ago)
- Topics: bitcoin, lightning, nostrwalletconnect, nwc, subscriptions-and-payments
- Language: TypeScript
- Homepage: https://zapplanner.albylabs.com/
- Size: 1.6 MB
- Stars: 9
- Watchers: 5
- Forks: 6
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ZapPlanner
Scheduled recurring lightning payments powered by Nostr Wallet Connect (NWC)
Try it here: https://zapplanner.albylabs.com/
## Programmatically filling the fields
As a service you can programmatically create a URL with all the subscription properties that your users will only need to confirm:
```
https://zapplanner.albylabs.com/confirm?amount=21&[email protected]&timeframe=30d&comment=baz&payerdata=%7B%22name%22%3A%22Bob%22%7D&returnUrl=https%3A%2F%2Fexample.com
```- `amount`, `recipient`, `timeframe` are required
- `amount` is in sats
- `recipient` must be a lightning address
- `timeframe` must be in milliseconds, or a valid [ms](https://www.npmjs.com/package/ms) string e.g. `1d`, `30%20minutes`
- `payerdata` should be a URL-encoded JSON object as per [LUD-18](https://github.com/lnurl/luds/blob/luds/18.md)
- `comment` and `payerdata` will only be sent if the recipient lightning address supports it
- `returnUrl` encoded URL to show as link on confirmation page## Installation
Run `$ yarn install`
Run `$ cp .env.example .env.local && husky install`
_note: if .env.local does not work for you, as a temporary solution try renaming it to .env_
Run `$ yarn cloak:generate` and set `PRISMA_FIELD_ENCRYPTION_KEY=` in `.env.local`
### Database Setup (Docker)
Run `$ yarn docker:start`
Run `$ yarn db:migrate:deploy`
### Database Setup (Non-Docker)
Unless you already have it, create the database with: `$ createdb boostagram-viewer`
Make sure to set your Postgres username and password in `.env.local`. To list Postgres users, open `$ psql` followed by `> \du`. To set no password, leave it empty like this: `postgres://username:@localhost...`.
Run `$ yarn db:migrate:deploy`
## Development (Docker)
Run `$ yarn docker:start`
Run `$ yarn inngest:local`
Run `$ yarn dev`
## Development (Non-Docker)
Run `$ yarn inngest:local`
Run `$ yarn dev`
## NextJS
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Inngest
ZapPlanner is a serverless application that uses [Inngest](https://www.inngest.com/) to power its background jobs.