An open-source creator support page and digital storefront for Cloudflare Workers.
See the codeAn open-source creator support page and digital storefront for Cloudflare Workers.
FreeCoffee.bio lets independent creators publish a profile, accept direct support, sell digital products, and manage their storefront from one admin area. Payments are configured for each creator and settle to the creator's own payment account; the platform records payment and order state but is not designed to act as a merchant of record.
[!IMPORTANT] This project is provided for lawful use only. You are responsible for complying with the laws, tax obligations, and payment-provider rules that apply to your business. In particular, verify your payment, cryptocurrency, privacy, refund, and consumer-protection obligations before going live.
Before deploying, create or bind the Cloudflare resources used by the Worker and update wrangler.jsonc with their production identifiers:
| Resource | Binding | Purpose |
|---|---|---|
| D1 database | DB | Application data, configuration, orders, and notification outbox |
| KV namespace | FREECOFFEE_KV | Application key-value storage |
| Email Workers | EMAIL | Cloudflare email binding |
| Cron Trigger | N/A | Processes scheduled tasks and notification delivery |
Set the following deployment values:
| Name | Type | Description |
|---|---|---|
ADMIN_PATH | Worker variable | A non-obvious lowercase letter/number path segment for the admin area, such as admin3q9527ko8. |
BETTER_AUTH_SECRET | Worker secret | A strong session-signing secret. Generate one with openssl rand -base64 32. |
Do not configure payment provider credentials, SMTP credentials, email-provider API keys, or S3-compatible storage credentials as Worker variables or secrets. Configure these in the admin UI after deployment; they are stored in D1 and are intentionally not shown again after saving.
npm install
npm run build
npm run db:migrate:remote
npx wrangler secret put BETTER_AUTH_SECRET
npx wrangler deploy
Set ADMIN_PATH through your Worker configuration or Wrangler configuration before the deploy. The npm run deploy script runs the remote D1 migration and deploys the Worker in one step after the bindings and secret are configured.
https://your-domain/install.https://your-domain/<ADMIN_PATH>/login.A deployment created from this repository can use the included Update Main GitHub Actions workflow to synchronize with the upstream main branch.
[!IMPORTANT] GitHub does not automatically copy workflows when a repository is created through one-click deployment. Create
.github/workflows/update-main.ymlin your instance repository and copy the upstream workflow into it before using this feature.
To run an update:
The workflow preserves your instance's wrangler.jsonc so resource bindings and deployment settings are not overwritten. Other local changes can be overwritten by an upstream update; keep custom work in a branch or backup before synchronizing.
/<ADMIN_PATH>/login, and verify that the deployed ADMIN_PATH matches the configured path segment./install to bootstrap the first root administrator. The route is unavailable after initialization.pending deliveries wait for Cron; retry and failed include a delivery error. Do not send transactional mail directly from payment webhooks.See the public Development Guide for local setup, database migrations, and project commands.
12 commits
TypeScript
84.1%
Astro
15.9%
An open-source creator support page and digital storefront for Cloudflare Workers.
See the codeAn open-source creator support page and digital storefront for Cloudflare Workers.
FreeCoffee.bio lets independent creators publish a profile, accept direct support, sell digital products, and manage their storefront from one admin area. Payments are configured for each creator and settle to the creator's own payment account; the platform records payment and order state but is not designed to act as a merchant of record.
[!IMPORTANT] This project is provided for lawful use only. You are responsible for complying with the laws, tax obligations, and payment-provider rules that apply to your business. In particular, verify your payment, cryptocurrency, privacy, refund, and consumer-protection obligations before going live.
Before deploying, create or bind the Cloudflare resources used by the Worker and update wrangler.jsonc with their production identifiers:
| Resource | Binding | Purpose |
|---|---|---|
| D1 database | DB | Application data, configuration, orders, and notification outbox |
| KV namespace | FREECOFFEE_KV | Application key-value storage |
| Email Workers | EMAIL | Cloudflare email binding |
| Cron Trigger | N/A | Processes scheduled tasks and notification delivery |
Set the following deployment values:
| Name | Type | Description |
|---|---|---|
ADMIN_PATH | Worker variable | A non-obvious lowercase letter/number path segment for the admin area, such as admin3q9527ko8. |
BETTER_AUTH_SECRET | Worker secret | A strong session-signing secret. Generate one with openssl rand -base64 32. |
Do not configure payment provider credentials, SMTP credentials, email-provider API keys, or S3-compatible storage credentials as Worker variables or secrets. Configure these in the admin UI after deployment; they are stored in D1 and are intentionally not shown again after saving.
npm install
npm run build
npm run db:migrate:remote
npx wrangler secret put BETTER_AUTH_SECRET
npx wrangler deploy
Set ADMIN_PATH through your Worker configuration or Wrangler configuration before the deploy. The npm run deploy script runs the remote D1 migration and deploys the Worker in one step after the bindings and secret are configured.
https://your-domain/install.https://your-domain/<ADMIN_PATH>/login.A deployment created from this repository can use the included Update Main GitHub Actions workflow to synchronize with the upstream main branch.
[!IMPORTANT] GitHub does not automatically copy workflows when a repository is created through one-click deployment. Create
.github/workflows/update-main.ymlin your instance repository and copy the upstream workflow into it before using this feature.
To run an update:
The workflow preserves your instance's wrangler.jsonc so resource bindings and deployment settings are not overwritten. Other local changes can be overwritten by an upstream update; keep custom work in a branch or backup before synchronizing.
/<ADMIN_PATH>/login, and verify that the deployed ADMIN_PATH matches the configured path segment./install to bootstrap the first root administrator. The route is unavailable after initialization.pending deliveries wait for Cron; retry and failed include a delivery error. Do not send transactional mail directly from payment webhooks.See the public Development Guide for local setup, database migrations, and project commands.
12 commits
TypeScript
84.1%
Astro
15.9%