Logins, databases and automation
When your site needs to do something.
Most business websites only need to say something. Some need to do something: let people sign in, keep records, send emails, take payments or update themselves overnight. I build those too, on the same fast, locked-down setup, and quote them with your project.
User accounts and sign-in
Sign-in is easy to get wrong, so I use proven pieces rather than inventing my own, and keep what each person is allowed to do on the server, where nobody can tamper with it.
- TradieToday: homeowners and tradies sign in with an email address or a Google account, through Clerk. Tradies can only quote once I've approved them.
- SmokoShare: no passwords for hosts or people looking for a room. Everyone confirms their email address, then manages their listing or waitlist details from a private link.
- LateOne: optional accounts for marking events as "Going" and following venues, with passwords stored only as strong hashes, and a button to download or delete your data.
A database behind the scenes
Cloudflare's D1 database sits next to the site, so there's no separate server to run or patch. It holds the records your site needs and nothing more, and personal details can be deleted on a schedule, so your privacy policy can say exactly how long you keep them.
- SmokoShare keeps rooms, the private waitlist and messages, and deletes old messages and unconfirmed details automatically every day.
- TradieToday keeps jobs, quotes and each tradie's credentials, with the money handled in whole cents.
- This site keeps the briefs people send me and the sign-ups from the free website check.
Jobs that run on their own
Some work is best done while everyone's asleep. Scheduled jobs refresh data, check for changes and tidy up, and tell me when something needs a person.
- LateOne reads more than 50 venue and organiser calendars every morning, and keeps the last good listings when a source fails.
- Big Bluff Bay compares each poker event with the organiser's own page every morning, and reports differences instead of changing anything itself.
- SmokoShare clears out personal details on schedule every day.
- Plan Tally has a weekly job set up to re-read the providers' plan pages and open a change for me to review. It never publishes a price by itself.
- Fair Go Finds imports deals in the background, within set limits and following each store's robots.txt rules.
Showing what's near the visitor
Location can make a site far more useful, as long as it's handled with care. On TradieToday, "Use nearby suburb" picks the closest suburb from the phone's location for a job, without ever saving the exact position. LateOne shows each venue's nearest station and tram stops, and the last service home.
Payments
TradieToday's payments use Stripe Connect: the customer pays, the money goes to the tradie's own Stripe account, and the commission comes out as a platform fee. Each job gets exactly one checkout, and Stripe's notifications are checked and counted once. It runs on Stripe's test keys for now: taking real money comes in its own reviewed release, because it's not something to rush.
Email that arrives
Confirmation emails, notifications and messages between people are sent through a proper email service, with the domain set up so they land in the inbox. On SmokoShare, people message a host without seeing the host's email address, which stays hidden until the host replies. The brief on this site's home page arrives straight in my inbox, with replies going to the person who sent it.
Checked before it's trusted
- Automatic tests run on every change. SmokoShare has 81, and TradieToday runs about 200 tests and checks on every pull request.
- Passwords and keys are kept in Cloudflare's or GitHub's secret settings, never in the code.
- Sign-up and message forms are rate limited, and anything risky waits for a person: new listings on SmokoShare, tradie credentials on TradieToday, and messages that look like drug sales.
How it's priced
These features are quoted with your project, because the work depends on what the site needs to do. Tell me what you're after in plain words, like "customers should be able to book a time" or "members should see their own documents", and I'll suggest the simplest way to do it. Hosting for sites with logins or a database is quoted too.