The CodeKits notebook
Ideas into working code.
Practical tutorials, project walkthroughs and development notes. Explore the code, understand the structure, and build something of your own.
27 articles · Newest first

Web development
Deploy to Ubuntu with GitHub Actions
A practical walkthrough of deploy to ubuntu with github actions, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Next.js Bookings Without Double Booking
A practical walkthrough of next.js bookings without double booking, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Stripe Checkout and Verified Webhooks
A practical walkthrough of stripe checkout and verified webhooks, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Password Reset and Email Verification
A practical walkthrough of password reset and email verification, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Build a React CRM with MySQL
A practical walkthrough of build a react crm with mysql, with code excerpts, failure checks and integration guidance.
· 4 min read

Web development
React CRUD with Node.js and MySQL
A practical walkthrough of react crud with node.js and mysql, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
React Login with Node.js and MySQL
A practical walkthrough of react login with node.js and mysql, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
React Real-Time Notifications with SSE
A practical walkthrough of react real-time notifications with sse, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Image Uploads with React and Node.js
A practical walkthrough of image uploads with react and node.js, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Admin Roles and Record Permissions
A practical walkthrough of admin roles and record permissions, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
SwiftUI Login with a Node.js API
A practical walkthrough of swiftui login with a node.js api, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Offline Reading in a SwiftUI App
A practical walkthrough of offline reading in a swiftui app, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Tauri Desktop with Rust and React
A practical walkthrough of tauri desktop with rust and react, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Back Up and Restore an Ubuntu MySQL App
A practical walkthrough of back up and restore an ubuntu mysql app, with code excerpts, failure checks and integration guidance.
· 5 min read

Web development
Choose a Stack: Next.js, React, Swift, Rust and Node.js
Compare Next.js, React, SwiftUI, React Native, Rust and Tauri, and learn how web, mobile and desktop clients share an API and MySQL database.
· 9 min read
Web development
Test HTTP APIs with a practical curl command sheet
Practise HTTP status, headers, JSON requests and authentication with a local curl lab before diagnosing a production API.
· 4 min read
Web development
Build liveness and readiness checks for Node
Build a local Node health-check demo with bounded readiness probes, failure tests and graceful draining, without leaking database details.
· 5 min read
Web development
Add email attachments and inline CID images
Compose private email attachments and inline CID images with bounded files, server-owned storage paths and local MIME tests before delivery.
· 4 min read
Web development
Build an honest sent-email history
Model queued, accepted, rejected and unconfirmed email attempts without confusing SMTP acceptance with delivery to the recipient's inbox.
· 4 min read
Web development
Deliver protected downloads after verified payment
Separate payment verification from file access with durable entitlements, scoped download tokens, expiry checks and private storage.
· 4 min read
Web development
Email multiple recipients without exposing addresses
Choose between individual delivery and Bcc, validate a deliberately small recipient format, and make address visibility obvious before sending.
· 4 min read
Web development
Handle Stripe webhook retries without duplicate orders
Verify Stripe webhooks and make order fulfilment idempotent with a database constraint, transactional outbox and deliberate replay tests.
· 4 min read
Web development
Keep checkout prices under server control
Accept product choices from the browser, resolve trusted Stripe prices on the server, and test tampered quantities and stale catalogue entries.
· 4 min read
Web development
Newsletter signup with encryption and unsubscribe
Design newsletter signup with encrypted addresses, explicit confirmation, durable suppression and unsubscribe links that do not need an account.
· 4 min read
Web development
Save contact enquiries and queue email notifications
Save enquiries durably in MySQL before sending email, using a transactional outbox so notification failures do not silently lose customer messages.
· 4 min read
Web development
Build a visitor map with approximate locations
Turn approximate IP-derived locations into an aggregated visitor map without presenting network estimates as someone's precise position.
· 4 min read

Web development
Building a Digital Product Store with Next.js and Stripe
A practical look at selling software products with Next.js, Stripe Checkout, MySQL, and automated email.
· 2 min read
