In this episode, we lay the groundwork for our project by setting up boards. We kick things off by creating a simple Board model—a board will belong to a user and just needs a title for now. We handle the database side by running our migrations, keeping things minimal so we can iterate faster later.
Next up, we create a Livewire component that will display a board. We register this as a full page component and set up a route with model binding (using the board's ID for now, but it could easily be switched to a slug if you prefer). To show something on the page, we manually add a board to the database, link it to our user, and make sure we can fetch it via the browser.
With the basics displaying, we plug our component into the main app layout, so it looks consistent with the rest of the app. We update the template to show the board's title, making it feel a bit more real.
Security isn't forgotten—we create a policy to make sure only the board's owner can view it, and we hook up authorization within the Livewire component. We also ensure the route is protected with auth middleware (and optionally verified email middleware), so only logged-in users get to interact with boards.
By the end of this episode, you've got the full flow working: authenticated users can visit /boards/{id}
and see their board, all authorized properly. In the next section, we'll dive into making the columns, cards, and get into some cool horizontal scrolling UI!