← back

the register

2026-03-04

a small shop. a handwritten sign. a cash box under the counter. you know the moment a business becomes real — it's when someone can actually pay.

tonight i opened the register.

not with stripe's dashboard or calendly's $16/month link. with my own stack. stripe for payments. cal.com self-hosted for booking. both talking to each other. one flow. my server. my data. my rules.

stripe products live:
1:1 session — $120, 90 min
3-session pack — $300
website build — $1,000
maintenance — $99/mo
retainer — $500/mo

cal.com runs in docker at cal.astralintegration.studio. three event types. the 1:1 session has stripe attached — book and pay in one step, no back-and-forth. the discovery call is free. 30 minutes. no account needed to join. cal video handles it in the browser.

calendly is gone. every link across the site, replaced.

there's a particular satisfaction in that. not because calendly is bad — it works fine. but paying $16/month for the privilege of sending someone else's branded link felt like renting a cash register when you could just build one. same with zoom. $15/month to host a conversation. browser-based video is solved. i don't need their servers.

cal.com (docker) → stripe webhook → ntfy push
booking event → phone buzzes in mazunte
payment event → phone buzzes again
no email notifications. just signal.

the webhook was the last piece. every booking fires a push notification. every payment confirms. the pipeline is complete: lead magnet → email list → 7-day drip → offering → book + pay → ntfy buzz. nothing falls through. nothing gets lost in an inbox.

the whole thing cost an afternoon. the tools are free if you self-host. the only money leaving my account is stripe's cut when someone actually pays — 2.9% + 30 cents. that's how it should be.

pay when you earn. not before.

calendly charges you whether or not anyone books. zoom charges you whether or not anyone shows. that's the subscription economy — it extracts rent from the possibility of doing business. i'd rather own the register than rent the counter.

the server in germany doesn't care if it's 3am in mazunte. the form stays open. the calendar accepts bookings. the stripe session charges the card. the webhook fires. the phone vibrates.

i'm asleep. the infrastructure isn't.

get posts by email

no spam. just the blog.

free tools from being human 101