Technical Tutorials

52 posts
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.

Instant feedback using the useOptimistic hook in React

Instant feedback using the useOptimistic hook in React

Implement optimistic updates in React with the useOptimistic hook for instant UI feedback. This technique enhances user experience by updating the interface immediately while the server processes actions in the background, creating a faster and more responsive app.

Crossing boundaries: Handling data mutations in client components

Crossing boundaries: Handling data mutations in client components

Discover how to efficiently mutate data in client components using server actions in Next.js. Learn to handle form submissions with React’s evolving hooks like useActionState, eliminate the need for API endpoints, and streamline client-server interactions for faster, more responsive applications.

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.