Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Browse all series

Watch Me AI the UI

In this workshop, come along as I upgrade the visual design of our Laracasts team dashboard. As you'll see, design work can sometimes be a bit tricky to orchestrate. Can AI properly evaluate a screenshot and convert it to CSS? Well, yes...and no! But luckily, we have a variety of techniques we can use to increase our odds of success. Let's go!

Progress

Series Info

Episodes
5
Run Time
47m
Difficulty
Intermediate
Last Updated
Mar 11, 2026
Version
Latest

Series Episodes

  1. Episodes (5)
    1. The First Try

      Let's begin by reviewing the current outdated team dashboard. Then we'll pass our redesign screenshots off to AI. Together we’ll plan the work, ask the right questions, and complete the first pass of this project.
    2. Tests Are Your Safety Net

      With the first draft in place, we’ll get our safety net set up with Pest browser tests that open dialogs and click through the invite, manage, and assignment screens. Don't be so cavalier with your redesigns that you break your app in the process!
    3. The Screenshot Approach

      Our dashboard still feels too panel-heavy compared to the design we’re aiming for, so it’s time to iterate. We’ll seed a realistic demo team, add an admin-only /team/demo endpoint, and use Chrome checks plus zoomed-in screenshots to push the UI closer to pixel-perfect.
    4. The Figma Link Approach

      After pushing the screenshot-based workflow as far as we can, we’ll switch to fetching exact pixel values from Figma using their MCP server and the implement design skill. We’ll treat a node link as the source of truth and tighten up the assignment dialog, while keeping an eye out for the subtle mistakes.
    5. How to Organize Upgrades

      With the dashboard in a solid place, we’ll upgrade to Inertia.js v3 and put the new APIs to work without turning it into a slog. We’ll lean on AI to read the docs, propose a migration plan, and help wire up features like once(), the reloading prop, useHttp, and optimistic UI updates for a snappier feel.

Continue Learning