DEPLOY · OPERATOR USE
Deploy checklist — deskrune.com v3
At the end of this checklist, deskrune.com serves static HTML from Cloudflare Pages, handles email subscriptions via a Workers KV-backed endpoint, delivers lead magnet PDFs on subscribe, processes payments through Gumroad and Payhip with live product links, and logs all conversions — with the first paid PDF sold and tracked in Resend and Gumroad analytics.
Phase 1: Domain
- Log into Cloudflare dashboard
Go to https://dash.cloudflare.com and sign in - Select domain
Click on deskrune.com from the domain list - Verify DNS records
Confirm A record points to 104.21.34.121 and CNAME www points to deskrune.com.pages.dev - Enable proxy
Ensure DNS records are orange-clouded (proxied) - Disable SSL/TLS encryption mode
Set SSL/TLS to Full (strict) - Wait for DNS propagation
Wait 5 minutes, then run dig deskrune.com in terminal
Phase 2: Cloudflare Pages deploy
- Navigate to Pages
Click on Pages in left sidebar of Cloudflare dashboard - Select existing project
Click on existing project named 'toolstack-fyi' - Rename project
Click Settings > General > Rename to 'deskrune.com' - Change build settings
Set Build directory to 'site/web/' and Build command to 'echo No build needed' - Set publish directory
Confirm Publish directory is 'site/web/' - Trigger deploy
Click Deploy site button - Wait for deploy status
Wait until status shows 'Deployed' (takes 30-90 seconds) - Verify live URL
Visit https://deskrune.com and confirm homepage loads
Phase 3: Worker + KV + Resend
- Open Workers & Pages
Click Workers & Pages in Cloudflare dashboard - Create new worker
Click Create application > Create custom worker - Name worker
Enter 'subscribe-worker' as name - Paste code
Replace default code with content from api/subscribe.js - Save and deploy
Click Save and Deploy - Create KV namespace
Go to KV > Create namespace > Name: 'subscribers' > Create - Bind KV to worker
In worker settings, click Add binding > Type: KV Namespace > Variable: 'SUBSCRIBERS' > Select 'subscribers' - Set Resend API key
In worker code, replace 'RESEND_API_KEY' with actual key from Resend dashboard > Settings > API Keys - Test endpoint
Run curl -X POST https://subscribe-worker.deskrune.com -d '{"email":"[email protected]"}' in terminal - Verify email receipt
Check Resend dashboard > Messages for '[email protected]' delivery - Set route
In Workers & Pages > Routes > Add route: subscribe.deskrune.com/* > Select 'subscribe-worker'
Phase 4: Gumroad listings
- Log into Gumroad
Go to https://gumroad.com/login - Open product list
Click Products in left menu - Edit product 1
Click on 'dsk-aios-01' product - Update download link
Set Download link to https://deskrune.com/pdfs/dsk-aios-01.pdf?v=202605070506 - Update price
Set price to free - Save product
Click Save - Repeat for 10 more products
Repeat steps 4-6 for dsk-aios-02 through dsk-aios-11 - Copy product URLs
For each product, copy the Gumroad link from the Share button - Update site links
In site/web/index.html, replace placeholder Gumroad links with actual product URLs
Phase 5: Payhip listings
- Log into Payhip
Go to https://payhip.com/login - Navigate to products
Click Products in top menu - Edit product 1
Click on 'dsk-aios-12' product - Update file
Under Files, upload pdfs/dsk-aios-12.pdf - Set price
Set price to free - Save product
Click Save Changes - Copy product link
Click Share > Copy link - Update site links
In site/web/index.html, replace Payhip placeholder with actual product link - Repeat for product 2
Repeat steps 3-8 for 'dsk-aios-13'
Phase 6: End-to-end test
- Visit homepage
Open https://deskrune.com in incognito window - Submit email
Enter [email protected] in subscribe form and click Submit - Verify email delivery
Check Resend dashboard for '[email protected]' receipt - Download lead magnet
Click link in email to download pdfs/dsk-lead-magnet.pdf - Verify PDF integrity
Open downloaded PDF and confirm it matches source file in pdfs/ - Click Gumroad link
Click first Gumroad product link on homepage - Complete test purchase
Use Gumroad test email ([email protected]) to buy dsk-aios-01 for free.01 - Verify Gumroad sale
Check Gumroad dashboard > Sales for transaction - Click Payhip link
Click first Payhip product link on homepage - Complete test purchase
Use Payhip test email to buy dsk-aios-12 for free.01 - Verify Payhip sale
Check Payhip dashboard > Sales for transaction - Check KV storage
In Cloudflare dashboard > KV > subscribers > Browse > confirm [email protected] is stored
Phase 7: First content drop
- Create blog post
In site/web/blog/, create file dsk-aios-01.md with title and 300 words - Add to navigation
In site/web/index.html, add link to /blog/dsk-aios-01 under 'Latest Posts' - Build static site
Run npx serve site/web/ in terminal to preview locally - Commit changes
Run git add . && git commit -m "feat: drop first blog post and update nav" - Push to repo
Run git push origin main - Verify auto-deploy
Wait for Cloudflare Pages to auto-deploy new version - Visit blog post
Open https://deskrune.com/blog/dsk-aios-01 and confirm renders correctly
Phase 8: Watch+iterate
- Enable Cloudflare Analytics
In Cloudflare dashboard > Analytics > Web > Enable for deskrune.com - Set up Resend analytics
In Resend > Emails > Enable open/click tracking - Set up Gumroad analytics
In Gumroad > Analytics > Enable conversion tracking - Set up Payhip analytics
In Payhip > Analytics > Enable sales funnel tracking - Create weekly review
Schedule Monday 9am to review: email signups, PDF downloads, Gumroad sales, Payhip sales - Log first conversion
Record first paid sale in Notion: date, product, email, revenue - Update homepage CTA
Change homepage button text from 'Subscribe' to 'Get dsk-aios-01 free' - Add UTM tag
Append ?utm_source=homepage&utm_medium=lead_magnet to all Gumroad and Payhip links
Common blockers + fixes
Emails not sending from Resend
Check that Resend API key is correctly pasted in subscribe.js and not wrapped in quotes or line breaks
PDF download returns 404
Confirm pdfs/ files are in the root of the repo and linked as /pdfs/filename.pdf?v=202605070506, not relative paths
Worker returns 500 on subscribe
Run wrangler logs --name subscribe-worker in terminal to inspect error logs
Cloudflare Pages deploy fails
Ensure site/web/ folder exists and contains index.html — empty folders cause deploy failure
Gumroad link opens blank page
Verify Gumroad product is published (not draft) and link is https://gum.co/..., not shortlink
First-revenue target
Week 1: 1 paid sale (any product) tracked in Gumroad or Payhip. Week 4: 5 paid sales across both platforms, with 50+ email signups and 30+ PDF downloads.
Do NOT do
- Use WordPress or CMS plugins
- Enable Cloudflare Cache Purge on every deploy
- Link to Google Drive or Dropbox for PDFs
For when you come back.