Technical Tutorials

54 posts
Learning from OSS: configuring your Link component via a Provider (Braid)

Learning from OSS: configuring your Link component via a Provider (Braid)

Learn how SEEK’s Braid Design System uses a linkComponent provider to flexibly support routing across React apps. A great pattern for design systems, and one madewithlove engineers keep coming back to when building scalable front-end libraries.

A Rubber Duck’s Guide to Better Engineering

A Rubber Duck’s Guide to Better Engineering

Professor Quacks reminds us that curiosity, accountability, and good teamwork are the bedrock of great engineering.

Why frontend rewrites are more common than refactors

Why frontend rewrites are more common than refactors

Why do engineering teams keep rewriting frontends? Let’s explore the leadership bias and tech churn that makes refactors feel harder—yet ultimately more sustainable.

🌶️ Why Native PHP shouldn’t exist

🌶️ Why Native PHP shouldn’t exist

Building desktop apps with NativePHP misuses Laravel’s core strengths, creating potential security risks and practical limitations.

Securely Mounting COMPOSER_AUTH Secret in Docker Builds

Securely Mounting COMPOSER_AUTH Secret in Docker Builds

Using ARG or ENV for secrets in Dockerfiles can expose sensitive credentials in your final image. Instead, use Docker BuildKit’s --secret to pass secrets securely at build time. Learn how to protect your Docker builds across CLI, Docker Compose, GitHub Actions, and GCP.

Taming a Python: don't let the snake bite

Taming a Python: don't let the snake bite

Adapting to a new tech stack is all about mindset. Switching from PHP to Python was an eye-opener. Package management confusion, unexpected paradigms, and a lack of encapsulation made for an interesting challenge. Embracing constraints is the secret to growth.

When Symfony event listeners go wild!

When Symfony event listeners go wild!

A simple bug fix can turn into a full-blown debugging adventure - especially when Symfony’s event listeners start misbehaving. 🧐 If your listeners are firing twice (or more), your service configuration might be the culprit. Here’s how we solved a sneaky autoconfiguration.

Making an existing Laravel application multi-tenant with Tenancy for Laravel

Making an existing Laravel application multi-tenant with Tenancy for Laravel

Transforming a legacy application into a multi-tenant powerhouse is no small feat. Learn how we tackled the challenges of adding multi-tenancy to a Laravel app, from infrastructure planning to custom bootstrappers, and discover practical tips to future-proof your applications.

Caching routes, components and functions with "use cache" in Next.js 15 (canary)

Caching routes, components and functions with "use cache" in Next.js 15 (canary)

"use cache" is an experimental Next.js 15 Canary feature and may change. In this tutorial, we explore "use cache" for caching, covering fetching and inserting comments with Drizzle to reduce database calls and improve performance while maintaining control.

You’ve successfully subscribed to madewithlove
Welcome back! You’ve successfully signed in.
Great! You’ve successfully signed up.
Success! Your email is updated.
Your link has expired
Success! Check your email for magic link to sign-in.