{"id":14968924,"url":"https://github.com/datagrove/test-sales-page","last_synced_at":"2025-07-30T10:35:59.849Z","repository":{"id":148783081,"uuid":"615005008","full_name":"datagrove/test-sales-page","owner":"datagrove","description":"A site for accepting orders and stripe payments for digital items.","archived":false,"fork":false,"pushed_at":"2024-04-15T22:06:23.000Z","size":3013,"stargazers_count":22,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-31T15:54:04.887Z","etag":null,"topics":["astro","cloudflare-pages","solidjs","stripe","stripe-checkout","supabase","supabase-js"],"latest_commit_sha":null,"homepage":"https://cat.datagrove.com","language":"MDX","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/datagrove.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"license.md","code_of_conduct":null,"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":{"github":["datagrove"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-03-16T18:55:06.000Z","updated_at":"2024-10-09T12:37:46.000Z","dependencies_parsed_at":"2024-09-27T11:01:36.812Z","dependency_job_id":"9d244853-83d1-4375-b273-b1ebbd36e780","html_url":"https://github.com/datagrove/test-sales-page","commit_stats":{"total_commits":159,"total_committers":5,"mean_commits":31.8,"dds":"0.39622641509433965","last_synced_commit":"59a939a233cf9e63ed78f20c1341e8cfcabea364"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datagrove%2Ftest-sales-page","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datagrove%2Ftest-sales-page/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datagrove%2Ftest-sales-page/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datagrove%2Ftest-sales-page/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datagrove","download_url":"https://codeload.github.com/datagrove/test-sales-page/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238275907,"owners_count":19445307,"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":["astro","cloudflare-pages","solidjs","stripe","stripe-checkout","supabase","supabase-js"],"created_at":"2024-09-24T13:40:49.433Z","updated_at":"2025-02-11T10:31:41.254Z","avatar_url":"https://github.com/datagrove.png","language":"MDX","funding_links":["https://github.com/sponsors/datagrove"],"categories":[],"sub_categories":[],"readme":"A simple site for selling a digital product using Astro.build, Stripe, SolidJS, Supabase, and Cloudflare. \n\nLive site: https://cat.datagrove.com\n\nContents\n========\n\n * [Why?](#why)\n * [Installation](#installation)\n * [Usage](#usage)\n * [Credits](#credits)\n\n\n## Why?\n\nWe wanted to use some of the newest open source tools to build a free to start internet sales channel.\n\nMost of the solutions we found involved added cost solution providers, so we built this.\n\n## Installation\n\nClone the respository\n\nRun `npm install`\n\nTo run locally run `npm run dev`\n\n## Usage\n\n### Stripe Account Setup\n---\n\nCreate a stripe account at https://dashboard.stripe.com/register\n\nWhen asked for your business profile choose \"Skip for now\", this will create an account where only test mode is active.\n\nOn the Home page you can access your publishable and secret keys. You api keys are also available on the developers page. \n\nBE SURE NOT TO COMMIT YOUR SECRET KEY TO GIT. You can add .env* to your .gitignore file locally to prevent your keys from being committed\n\nTo run the site locally add a .env file to the root of your project using the format in sample_env.md. \n\n    Use your stripe keys to replace the XXX values in \n    PUBLIC_STRIPE_API (Use your publishable key) and \n    PRIVATE_STRIPE_API (Use your secret key)\n\nCreate a product on the products dashboard.\n\nGet the Price API ID and use that in the in checkout.ts so that your checkout session has the correct item/price.\n\nTo run test payments that result in a \"success\" use the following test info (more information available in Stripe documentation)\n\n    Card number: 4242 4242 4242 4242\n    Expiration: 12/34\n    CVV: 999\n\n### Supabase Setup\n---\n\nSign up for a Supabase Account at https://app.supabase.com/sign-up\n\nOn the dashboard create a new project.\n\nGet the project anon public API key and project URL from the setup page or from the API menu (Settings\u003eAPI). \n\nTo run the site locally add the anon public key to your .env file created in the Stripe Setup Step\n    \n    Use your Supabase values to replace the XXX value in\n    anon_key (Use the anon public key)\n    API_URL (Use your Supabase Project URL)\n\nCreate tables for your project, you can adjust these as needed for the information you need in your tables. Adjust the subabaseSubmit.ts to send information to your specific tables and fields.\n\n### Cloudflare Hosting\n---\n\nCreate a cloudflare pages project linked to your git repository for your project.\n\n   If you don't have a cloudflare account see this video: https://www.youtube.com/watch?v=MTc2CTYoszY\n\nIf deploying from git:\n    \n    Build Command: npm run build\n    Build Directory: /dist\n\nSet up your environment secrets on your pages project by going to Settings \u003e Environment Variables\n\n    For security encrypt your private variables\n\n### Stripe Webhook Setup\n---\nThis waits for the successful stripe payment to update the status of the paid field in the supabase database\n\n#### Local\n\n---\n\nOn your stripe dashboard go to Developers \u003e Webhooks \u003e Test in a local environment\n\nFollow the instructions for setting up your local webhook. The default server port for this application is 3000 (not 4242)\n\nMake sure to put your endpoint secret in your .env file. DO NOT COMMIT THIS TO GIT!\n\n    Replace the XXX value in PRIVATE_STRIPE_ENDPOINT with your endpoint secret whsec...\n\n#### Cloudflare\n\n---\n\nOn your stripe dashboard go Developers \u003e Webhooks \u003e Add an Endpoint\n\nEnter the cloudflare url of your pages deployment \n\nSelect events you want to listen for or simply choose all events\n\nClick `Add Endpoint`\n\nReveal your signing secret and add this to your cloudflare environment variables (recommend encrypting)\n\n## Credits\nThis project uses the following open source packages:\n- [Astro](astro.build)\n- [SolidJS](www.solidjs.com)\n- [Tailwind CSS](tailwindcss.com)\n- [Supabase](supabase.com)\n- [Node.js](nodejs.org)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatagrove%2Ftest-sales-page","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatagrove%2Ftest-sales-page","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatagrove%2Ftest-sales-page/lists"}