{"id":13411399,"url":"https://github.com/dlcastillop/paylink","last_synced_at":"2025-04-30T06:11:35.243Z","repository":{"id":65828819,"uuid":"536982454","full_name":"dlcastillop/paylink","owner":"dlcastillop","description":"A payment organizer","archived":false,"fork":false,"pushed_at":"2023-03-28T20:33:40.000Z","size":483,"stargazers_count":53,"open_issues_count":0,"forks_count":57,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-30T06:11:23.766Z","etag":null,"topics":["payment-methods","payments"],"latest_commit_sha":null,"homepage":"https://payme.dlcastillop.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dlcastillop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://payme.dlcastillop.com/"]}},"created_at":"2022-09-15T10:51:42.000Z","updated_at":"2025-04-02T08:00:48.000Z","dependencies_parsed_at":"2024-10-26T15:12:11.392Z","dependency_job_id":null,"html_url":"https://github.com/dlcastillop/paylink","commit_stats":null,"previous_names":[],"tags_count":3,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcastillop%2Fpaylink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcastillop%2Fpaylink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcastillop%2Fpaylink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlcastillop%2Fpaylink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dlcastillop","download_url":"https://codeload.github.com/dlcastillop/paylink/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251651231,"owners_count":21621716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["payment-methods","payments"],"created_at":"2024-07-30T20:01:13.413Z","updated_at":"2025-04-30T06:11:35.215Z","avatar_url":"https://github.com/dlcastillop.png","language":"JavaScript","funding_links":["https://payme.dlcastillop.com/"],"categories":["Web Development"],"sub_categories":["Javascript"],"readme":"﻿# 💰 PayLink\n\nPayLink is a payment organizer and an open source alternative to Paynest.\n\n## Live example\n\n[https://payme.dlcastillop.com/](https://payme.dlcastillop.com/)\n\n## Features\n\n- ✅ Select from over 30 themes to customize the appearance of your PayLink page\n- ✅ Add a hero section with a photo, name and description to introduce yourself or your brand\n- ✅ Include up to 18 links to your social media accounts\n- ✅ Add up to 14 payment methods\n- ✅ Add a Google Analytics ID to track your analytics\n- ✅ The users can copy or generate QRCode for each payment method\n- ✅ The users can use the search bar to look for a specific payment method\n\n## How to use\n\nYou only need to work in the `paylink.config.json` file.\n\nIf you are not a developer, we recommend you to setup your PayLink page using [this video](https://youtu.be/p_Jk6lW6LEM) (spanish).\n\n### Theme\n\nYou can modify the theme in the `theme` property. It accepts 33 values:\n\n- `minimalist-theme`\n- `minimalist-dark-theme`\n- `swordfest-theme`\n- `swordfest-dark-theme`\n- `light`\n- `dark`\n- `cupcake`\n- `bumblebee`\n- `emerald`\n- `corporate`\n- `synthwave`\n- `retro`\n- `cyberpunk`\n- `valentine`\n- `halloween`\n- `garden`\n- `forest`\n- `aqua`\n- `lofi`\n- `pastel`\n- `fantasy`\n- `wireframe`\n- `black`\n- `luxury`\n- `dracula`\n- `cmyk`\n- `autumn`\n- `business`\n- `acid`\n- `lemonade`\n- `night`\n- `coffee`\n- `winter`\n\nFor example:\n\n```js\n\"theme\": \"minimalist-dark-theme\",\n```\n\n### Hero section\n\nThe Hero section is going to have your photo, name and description. You can modify it in the `properties` object which has the following properties.\n\n- `name`: your name\n- `description`: your description\n- `alt`: an alternative text for your photo\n- `hero`: the path to your photo. We recommend to put it in the `images` folder.\n\nFor example:\n\n```js\n\"properties\": {\n    \"name\": \"Daniel Castillo\",\n    \"description\": \"Frontend web developer\",\n    \"alt\": \"Photo of Daniel Castillo\",\n    \"hero\": \"./src/images/daniel-castillo.png\"\n},\n```\n\n### Social media section\n\nThe Social Media section is going to have all your social media links. You can modify it in the `Social` array which has one object per social media. You only need to put your social media link in the `link` property within the corresponding object.\n\nFor example:\n\n```js\n\"Social\": [\n    {\n        \"label\": \"Email\",\n        \"value\": \"bx-envelope\",\n        \"link\": \"mailto:dlcastillo3015@gmail.com\"\n    },\n    { \"label\": \"Link\", \"value\": \"bx-link\", \"link\": \"https://dlcastillop.com\" },\n    {\n        \"label\": \"GitHub\",\n        \"value\": \"bxl-github\",\n        \"link\": \"https://github.com/dlcastillop\"\n    },\n    {\n        \"label\": \"Twitter\",\n        \"value\": \"bxl-twitter\",\n        \"link\": \"https://twitter.com/dlcastillop\"\n    },\n    {\n        \"label\": \"LinkedIn\",\n        \"value\": \"bxl-linkedin\",\n        \"link\": \"https://linkedin.com/in/dlcastillop\"\n    },\n    {\n        \"label\": \"Instagram\",\n        \"value\": \"bxl-instagram\",\n        \"link\": \"https://instagram.com/dlcastillop\"\n    },\n    { \"label\": \"Discord\", \"value\": \"bxl-discord\", \"link\": \"\" },\n    { \"label\": \"Facebook\", \"value\": \"bxl-facebook\", \"link\": \"\" },\n    { \"label\": \"Medium\", \"value\": \"bxl-medium\", \"link\": \"\" },\n    { \"label\": \"Pinterest\", \"value\": \"bxl-pinterest\", \"link\": \"\" },\n    { \"label\": \"Snapchat\", \"value\": \"bxl-snapchat\", \"link\": \"\" },\n    { \"label\": \"Telegram\", \"value\": \"bxl-telegram\", \"link\": \"\" },\n    { \"label\": \"TikTok\", \"value\": \"bxl-tiktok\", \"link\": \"\" },\n    { \"label\": \"Twitch\", \"value\": \"bxl-twitch\", \"link\": \"\" },\n    { \"label\": \"Vimeo\", \"value\": \"bxl-vimeo\", \"link\": \"\" },\n    { \"label\": \"WhatsApp\", \"value\": \"bxl-whatsapp\", \"link\": \"\" },\n    { \"label\": \"YouTube\", \"value\": \"bxl-youtube\", \"link\": \"\" },\n    { \"label\": \"Product Hunt\", \"value\": \"bxl-product-hunt\", \"link\": \"\" },\n    { \"label\": \"Newsletter\", \"value\": \"bx-mail-send\", \"link\": \"\" }\n],\n```\n\nIf you want to modify the order of the social media, you must organize the objects according to your preference.\n\nFor example:\n\n```js\n\"Social\": [\n    { \"label\": \"LinkedIn\", \"value\": \"bxl-linkedin\", \"link\": \"https://linkedin.com/in/dlcastillop\" },\n    { \"label\": \"Twitter\", \"value\": \"bxl-twitter\", \"link\": \"https://twitter.com/dlcastillop\" },\n    { \"label\": \"Link\", \"value\": \"bx-link\", \"link\": \"https://dlcastillop.com\" },\n    { \"label\": \"Instagram\", \"value\": \"bxl-instagram\", \"link\": \"https://instagram.com/dlcastillop\" },\n    { \"label\": \"Email\", \"value\": \"bx-envelope\", \"link\": \"mailto:dlcastillo3015@gmail.com\" },\n    { \"label\": \"GitHub\", \"value\": \"bxl-github\", \"link\": \"https://github.com/dlcastillop\" },\n    { \"label\": \"Discord\", \"value\": \"bxl-discord\", \"link\": \"\" },\n    { \"label\": \"Facebook\", \"value\": \"bxl-facebook\", \"link\": \"\" },\n    { \"label\": \"Medium\", \"value\": \"bxl-medium\", \"link\": \"\" },\n    { \"label\": \"Pinterest\", \"value\": \"bxl-pinterest\", \"link\": \"\" },\n    { \"label\": \"Snapchat\", \"value\": \"bxl-snapchat\", \"link\": \"\" },\n    { \"label\": \"Telegram\", \"value\": \"bxl-telegram\", \"link\": \"\" },\n    { \"label\": \"TikTok\", \"value\": \"bxl-tiktok\", \"link\": \"\" },\n    { \"label\": \"Twitch\", \"value\": \"bxl-twitch\", \"link\": \"\" },\n    { \"label\": \"Vimeo\", \"value\": \"bxl-vimeo\", \"link\": \"\" },\n    { \"label\": \"WhatsApp\", \"value\": \"bxl-whatsapp\", \"link\": \"\" },\n    { \"label\": \"YouTube\", \"value\": \"bxl-youtube\", \"link\": \"\" },\n    { \"label\": \"Product Hunt\", \"value\": \"bxl-product-hunt\", \"link\": \"\" },\n    { \"label\": \"Newsletter\", \"value\": \"bx-mail-send\", \"link\": \"\" }\n],\n```\n\nThe Social Media section supports:\n\n- Twitter\n- GitHub\n- LinkedIn\n- Instagram\n- A link\n- Discord\n- Facebook\n- Medium\n- Pinterest\n- Snapchat\n- Telegram\n- TikTok\n- Twitch\n- Vimeo\n- WhatsApp\n- YouTube\n- Product Hunt\n- A newsletter\n\n### Payment section\n\nThe Payment section is going to have all your payment methods. You can modify it in the `Payments` array which has one object per payment methods. You only need to put your payment method link in the `value` property within the corresponding object.\n\nFor example:\n\n```js\n\"Payments\": [\n    {\n        \"id\": \"btc\",\n        \"label\": \"Bitcoin\",\n        \"value\": \"bc1qejahgjmqnmyrw7jvn0d7evfdq6ssjl3wq7hfle\",\n        \"img\": \"./src/images/payments/btc.svg\"\n    },\n    {\n        \"id\": \"busd\",\n        \"label\": \"BinanceUSD\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/busd.svg\"\n        },\n    {\n        \"id\": \"matic\",\n        \"label\": \"Matic\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/matic.svg\"\n    },\n    {\n        \"id\": \"doge\",\n        \"label\": \"DogeCoin\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/doge.svg\"\n    },\n    {\n        \"id\": \"eth\",\n        \"label\": \"Ethereum\",\n        \"value\": \"0x59C864f658caD68A19a97499755080c056079988\",\n        \"img\": \"./src/images/payments/eth.svg\"\n    },\n    {\n        \"id\": \"ltc\",\n        \"label\": \"Litecoin\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/ltc.svg\"\n    },\n    {\n        \"id\": \"paypal\",\n        \"label\": \"Paypal\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/paypal.svg\"\n    },\n    {\n        \"id\": \"usdt\",\n        \"label\": \"USDT\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/usdt.svg\"\n    },\n    {\n        \"id\": \"qvapay\",\n        \"label\": \"QvaPay\",\n        \"value\": \"https://qvapay.com/payme/dlcastillop\",\n        \"img\": \"./src/images/payments/qvapay.svg\"\n    },\n    {\n        \"id\": \"sol\",\n        \"label\": \"Solana\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/sol.svg\"\n    },\n    {\n        \"id\": \"ada\",\n        \"label\": \"ADA\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/ada.svg\"\n    },\n    {\n        \"id\": \"trx\",\n        \"label\": \"Tron\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/trx.svg\"\n    },\n    {\n        \"id\": \"xrp\",\n        \"label\": \"XRP\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/xrp.svg\"\n    },\n    {\n        \"id\": \"card\",\n        \"label\": \"Card\",\n        \"value\": \"\",\n        \"img\": \"./images/payments/card.svg\"\n    }\n]\n```\n\nIf you want to modify the order of the payment methods, you must organize the objects according to your preference.\n\nFor example:\n\n```js\n\"Payments\": [\n    {\n        \"id\": \"qvapay\",\n        \"label\": \"QvaPay\",\n        \"value\": \"https://qvapay.com/payme/dlcastillop\",\n        \"img\": \"./src/images/payments/qvapay.svg\"\n    },\n    {\n        \"id\": \"eth\",\n        \"label\": \"Ethereum\",\n        \"value\": \"0x59C864f658caD68A19a97499755080c056079988\",\n        \"img\": \"./src/images/payments/eth.svg\"\n    },\n    {\n        \"id\": \"btc\",\n        \"label\": \"Bitcoin\",\n        \"value\": \"bc1qejahgjmqnmyrw7jvn0d7evfdq6ssjl3wq7hfle\",\n        \"img\": \"./src/images/payments/btc.svg\"\n    },\n    {\n        \"id\": \"busd\",\n        \"label\": \"BinanceUSD\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/busd.svg\"\n    },\n    {\n        \"id\": \"matic\",\n        \"label\": \"Matic\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/matic.svg\"\n    },\n    {\n        \"id\": \"doge\",\n        \"label\": \"DogeCoin\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/doge.svg\"\n    },\n    {\n        \"id\": \"ltc\",\n        \"label\": \"Litecoin\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/ltc.svg\"\n    },\n    {\n        \"id\": \"paypal\",\n        \"label\": \"Paypal\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/paypal.svg\"\n    },\n    {\n        \"id\": \"usdt\",\n        \"label\": \"USDT\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/usdt.svg\"\n    },\n    {\n        \"id\": \"sol\",\n        \"label\": \"Solana\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/sol.svg\"\n    },\n    {\n        \"id\": \"ada\",\n        \"label\": \"ADA\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/ada.svg\"\n    },\n    {\n        \"id\": \"trx\",\n        \"label\": \"Tron\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/trx.svg\"\n    },\n    {\n        \"id\": \"xrp\",\n        \"label\": \"XRP\",\n        \"value\": \"\",\n        \"img\": \"./src/images/payments/xrp.svg\"\n    },\n    {\n        \"id\": \"card\",\n        \"label\": \"Card\",\n        \"value\": \"\",\n        \"img\": \"./images/payments/card.svg\"\n    }\n]\n```\n\nThe Payment section supports:\n\n- Bitcoin\n- Binance USD\n- Matic\n- DogeCoin\n- Ethereum\n- Litecoin\n- PayPal\n- USDT\n- QvaPay\n- Solana\n- ADA\n- TRON\n- XRP\n- A card\n\n### Google Analytics\n\nYou can add your Google Analytics ID in the `googleAnalyticsId` property.\n\nFor example:\n\n```js\n\"googleAnalyticsId\": \"G-SOMEID\"\n```\n\n## How to deploy\n\n### Deploy on GitHub Pages\n\n1. Go to the repository settings, enable GitHub Pages and, select the `GitHub Actions` option as the source. For more info visit [this link](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow)\n2. Go to the `vite.config.js` and uncomment the `base` parameter. For more info read the comment in `vite.config.js`\n3. After some seconds the deployment will be ready in `https://\u003cusername\u003e.github.io/paylink`\n\n## Contributions\n\nIf you're interested in contributing to PayLink, please read our [contributing docs](https://github.com/dlcastillop/dlcastillop/blob/main/CONTRIBUTING.md) before submitting a pull request.\n\n## Support\n\nDon't forget to leave a star!\n\n## Special thanks\n\nMany thanks to [Manuel Ernesto](https://twitter.com/manuelernestog), [Yoannis Sánchez](https://twitter.com/yossthedev), [Carlos Z. Bent](https://t.me/carloszbent_channel) and [Alex Navarro](https://twitter.com/Swordfest). PayLink is much better thanks to your work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlcastillop%2Fpaylink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlcastillop%2Fpaylink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlcastillop%2Fpaylink/lists"}