No Compromises

Two seasoned salty programming veterans talk best practices based on years of working with Laravel SaaS teams.

Stick with conventions and avoid overengineering your Laravel app

Joel and Aaron explore why pushing too many layers of abstraction can backfire in a Laravel application. They highlight the benefits of sticking to the framework’s conventions for long-term maintainability and simpler handoff to future developers.(00:00) - Why framework paradigms really matter (01:00) - When extra abstractions become burdens (03:00) - Balancing creativity with Laravel’s conventions (05:15) - Keeping code easy to revisit (06:45) - silly bit Need help digging your project out of technical debt? We can help!

03-29
08:41

When to bring in outside help

Joel and Aaron explore the decision-making process behind hiring or consulting an expert for technical challenges. They discuss examples like adding tests to a large codebase and understanding what questions you need to ask. They also reveal how coaching can help teams avoid common pitfalls and reach solutions faster.(00:00) - Determining why you need outside expertise (02:15) - Pinpointing the real problem (skill gap or strategy) (05:00) - Deciding between hands-on help or coaching (08:30) - Learning to ask the right questions (09:15) - Silly bit Here is a way to explore how we could help your project

03-15
10:57

Why two databases are better than one

Joel and Aaron discuss the benefits of having distinct databases for testing and local development. They share how this approach ensures a reliable test suite and avoids conflicts with day-to-day dev work. In the process, they reveal a simpler workflow for setting up new environments and keeping projects stable.(00:00) - Why separate dev and test databases (02:15) - Automating database setup with seeders (05:00) - Avoiding flaky tests and migration pitfalls (09:00) - Reimagining old habits with new practices (12:00) - Silly bit Sign up for the free Mastering Laravel newsletter

03-01
14:49

Dealing with being a beginner again

In this episode, Joel and Aaron discuss the struggles of learning new technology on a late-night side project. They share tips for handling frustration and managing expectations.(00:00) - Late-night MicroPython struggles and revelations (02:15) - Overcoming complex hardware and language hurdles (05:15) - Balancing side projects with realistic expectations (10:30) - Silly bit Don't be a stranger. Check out the Mastering Laravel community.

02-15
14:11

Making short demo videos count

Joel and Aaron explore the value of using concise video demos instead of long emails or scattered screenshots. They discuss which clients benefit from quick visuals and when text is still best.Want to see us on camera? Join the Mastering Laravel community for our live dev calls.(00:00) - Recording brief Loom demos for updates (02:15) - Considering audience and communication style (05:00) - Video calls vs. text-based explanations (07:45) - Silly bit

02-01
09:37

Examining test layering in multi-tenant requests

Joel and Aaron debate how to structure multi-tenant API requests and tests. They explore the interplay between authentication, tenant headers, and different levels of validation. In the end, they reminisce about old infomercial freebies and wonder if they still exist.(00:00) - Debating authentication vs. tenant header priority (02:15) - Handling unusual requirements in request tests (05:00) - Navigating multi-layer middleware concerns (08:30) - Balancing thoroughness and test coverage (12:00) - Silly bit Want some advice on writing better tests for your app? Contact us.

01-18
13:32

When to step outside of Eloquent's comfort zone

Joel and Aaron explore the nuances of when to venture beyond Eloquent in Laravel applications. They discuss specific scenarios where using lower-level database tools might be necessary, while emphasizing the importance of not abandoning Eloquent entirely. The conversation provides practical insights into balancing framework features with performance needs.(00:00) - Exploring when to step outside framework defaults (02:30) - Handling complex sorting with related tables (05:25) - Balancing Eloquent features with DB builder tools (07:15) - Important considerations when dropping to lower level DB access (10:00) - Silly Bit Check out the Mastering Laravel community.

01-04
12:28

Feature flags: Temporary tool or permanent solution?

Joel and Aaron dive into a friendly debate about the true nature of feature flags in software development. Drawing from their varied experiences across different programming languages and environments, they explore whether feature flags should always be temporary or can serve permanent purposes. The discussion evolves from a simple disagreement into deeper insights about different architectural approaches.(00:00) - Newsletter tips undergo careful peer review process (02:15) - Debating if feature flags should be temporary (05:25) - Different uses of feature flags across languages (07:20) - Feature flags in modern Laravel applications (08:35) - Silly Bit Sign up for free to get those amazing Laravel tips delivered each day

12-21
10:13

Deciding when to use a new piece of technology

Ooh, something new was just announced. And I have this project coming up. It could be perfect! But should I use it?On today's episode of No Compromises, Aaron and Joel share a conversation they had along these lines on a recent client project and considering the new Flux library from the creator of Livewire.(00:00) - Discussing potential Flux adoption in Bootstrap project (01:00) - Flux explained: Livewire-based UI component library (04:45) - Risk assessment of adding new technologies (06:00) - Extra risk for a 1.0 (08:45) - When new tech might be worth the risk (11:50) - Silly Bit Want calm, reasonable developers like us to help with your project?

12-07
14:26

Taking liberties with value objects

Programmers love geeking out and creating specialized terms and vocabulary. Well I can do that too. In today's episode, we talk about "value objects", put our own special definition on it, and discuss when we might use these in a Laravel project.(00:00) - What I mean by "value object" (03:00) - Nicer to do in newer PHP versions (04:00) - Main use case for value objects (05:30) - Use them for everything then? (09:00) - A second reason to use a value object (10:45) - Silly bit Sign up for our newsletter and get short, practical Laravel tips delivered fresh to your inbox.

11-23
12:23

How to deal with things outside your control on a dev project

Have you ever struggled working with a third party on one of your developer projects? How do you handle that, keeping it professional and also still able to meet your commitments?In today's episode of No Compromises, Aaron and Joel discuss what happened on a recent project and how they think about handling those kinds of difficulties while still having boundaries.And if you're looking for help on your Laravel project, get in touch!

11-09
10:26

Should we use a JSON field for this?

JSON fields can be very useful, but when is a good time to include them in your database design? In today's episode of No Compromises, Aaron and Joel use a couple examples from recent projects to talk through reasons they would and would not use a JSON field.(00:00) - Debating JSON fields in database design (03:06) - Configuration options: JSON vs. relational tables (07:05) - Real-world example: label customization dilemma (11:30) - Silly bit Want a place to ask any question related to Laravel development? Check out the Mastering Laravel community.

10-29
14:20

A balanced approach to static analysis in Laravel apps

Static types and tooling have increased the quality of our apps, but sometimes certain features in your Laravel app don't play nicely with static analysis. In today's episode, we talk about how we approach the tradeoffs around making a tool happy without changing how you write code.(00:00) - Our approach to static analysis in a Laravel app (01:30) - Using PHPDoc inline (03:00) - When Laravel doesn't quite give you the type you want (05:00) - A different approach than inline types (06:30) - Are you just making the tool happy? (07:45) - An example of going too far (10:10) - Silly bit Check out the newly published volumes of Laravel tips. Collect them all!

10-15
11:59

Why do we like testing so much?

I write a lot about testing in the Mastering Laravel newsletter. Ever wonder why it's a topic I care so much about? In today's episode, we discuss that question and come up with a few different reasons.(00:00) - Why do we like testing so much? (01:20) - Looking back at how we learned (02:30) - Making it easier to join a project (05:45) - Tests make you more productive (07:45) - Shifting your thinking (10:10) - Silly bit Let us help you add tests to your project.

10-01
12:09

What does it mean to "know" something?

What does it really mean when you say you know a particular technology? On today's episode, we discuss this using TypeScript as a specific example.(00:00) - What does it mean to "know" something? (03:15) - Thinking about TypeScript vs strict types in PHP (05:30) - Are you fluent? (06:50) - Silly bit Want help with your Laravel or PHP project? We really know that!

09-17
09:37

How to approach being wrong

Programmers are not shy about telling other programmers when they're wrong. But what can we learn in a situation like his? How can we be wrong with style? In this episode, Aaron and Joel talk about times they've been wrong throughout their career and what they've learned.(00:00) - Aaron admits he was wrong (02:00) - What can I learn from this? (05:30) - Being wrong in public with style (07:00) - Being wrong throughout your career (08:45) - Two people can both be right for their context (10:10) - Silly bit Sign up for the free Mastering Laravel newsletter and learn a little something about Laravel each day.

09-03
12:16

Where do you go when you need help?

We can't know everything, so throughout each day we inevitably have questions. On today's episode, we discuss different approaches we have used when we need a little help.(00:00) - Where do you go when you need help? (01:30) - Option 1 - search engines (03:30) - Getting the most out of search results (05:00) - Option 2 - talk to AI (07:00) - Using AI in the right context (09:10) - Option 3 - talk to a person (11:30) - What if you work alone? (12:55) - Silly bit Looking for a community of smart Laravel developers that you can ask for help?

08-20
14:14

What does it mean if someone says your app is slow?

The dreaded bug report: this app is slow. Ok, but what is slow? I have so many questions!In today's episode, we discuss our approach to getting more information out of that initial bug report, and a methodical approach to locate and quantify the slowness.If you'd like help setting up tools like Xdebug profiling, send us a message.

08-06
13:42

Why we have a separate test suite for external services

Writing tests that communicate with a third party can be a little tricky, but we've found an approach that balances speed and confidence.In today's episode, we share that approach and talk through a strategy of how frequently to run tests that talk to the outside world.(00:00) - Why would your tests ever talk to an external service? (02:30) - What does it mean to have a separate test suite? (06:00) - Keeping them separate allows different triggers for running (07:00) - When should you run external tests? (08:30) - You can't always know when you'll break an external integration (11:00) - Check on a schedule? (13:00) - Silly bit Would you like to take 2 - 3 minutes each day to learn a little bit about Laravel? Join for free, unsubscribe any time.

07-23
18:03

API specs aren't just for giant teams

I don't have time to write an API spec. We're not a giant team. We don't have external users of our API.I've said all these things in the past, but in today's episode, we discuss why you should still consider writing a specification for your Laravel API.(00:00) - Should you write a spec for your API? (01:37) - Thinking through the requirements (04:07) - What's in a spec? (06:20) - Balancing detail with moving forward (08:15) - Who is consuming the spec? (09:30) - The spec keeps you honest Would you like to see what over 4,000 Laravel developers like about the Mastering Laravel newsletter? It's free to sign up.

07-09
14:41

Recommend Channels