Cheezy World

Eat more cheese

Tensions with AI

Bringing AI into your organization

I have now worked with multiple teams that have introduced an AI driven development into their development workflow and I have seen a pattern emerge. When AI, and more specifically Vibe Coding, is introduced into a traditional software development organization that are following an Agile process there are three tensions that quickly arise. All three of these tensions are due to the rapid pace of development.


Building a LiveView app using AI - Part 15

Polish & Enhancement

It is finally time to get back and finish phase 7 of our plan. Here is what remains:

#### Phase 7: Polish & Enhancement

- [ ] **UI/UX improvements**
  - [ ] Design beautiful board cards with Tailwind CSS
  - [ ] Add hover effects and transitions
  - [ ] Improve spacing and typography
  - [ ] Add loading states for async actions
  - [ ] Add empty states for boards without columns/tasks
- [ ] **Add notifications**
  - [ ] Use Phoenix LiveView flash messages for success/error
  - [ ] Style flash messages with Tailwind CSS
- [ ] **Add confirmation dialogs**
  - [ ] Add confirmation for board deletion
  - [ ] Add confirmation for column deletion (mention tasks will be deleted)
  - [ ] Add confirmation for task deletion
- [ ] **Error handling**
  - [ ] Add proper error messages for validation failures
  - [ ] Handle edge cases (deleting last column, etc.)
  - [ ] Add 404 pages for missing resources
- [ ] **Final Quality Checks**:
  - [ ] Run `mix test` and ensure all tests pass (510 tests, 0 failures)
  - [ ] Run `mix test --cover` and verify coverage meets threshold (94.60% coverage)
  - [ ] Run `mix credo --strict` and fix any issues (no issues found)
  - [ ] Run `mix sobelow --config` and fix any security issues (no issues found)
  - [ ] Run `mix precommit` to run all checks together (all checks passed)

Starting with UI/UX improvements

We start by asking TideWave to complete the first two tasks under UI/UX improvements. Less than five minutes later we have some sparkle.


Building a LiveView app using AI - Part 14

Cleaning up Authentication

This is the last episode before we get back to our original plan. The authentication system currently in place is what was generated by running the mix phx.gen.auth command. The styles were cleaned up a little when I asked Claude to create a nice style for the entire site. But the behaviour is the generated form and is not what I want. In part 14 we will attack this head on.


Building a LiveView app using AI - Part 13

Setting permissions for users

Currently every user can do everything in the application. A read only user can delete a board or make any type of change they want. Let’s fix that.

Focus on Owners first

First I want to focus on ensuring the board owner can do board-level actions and other users cannot. Let me start by listing out the things that only owners can do:

  • Edit and delete their boards
  • Add new columns to a board
  • Edit or delete columns from their boards
  • Reorder columns (including drag-and-drop)

I think this is a good list. Let’s ask TideWave to make these changes.


Building a LiveView app using AI - Part 12

Adding users to boards and tasks

Since the announcement of Claude Code running inside of Tidewave I have been extremely happy about this combo. For now I am using it for nearly all of my changes to the codebase. I have even given it a name - ClaudeWave. All of the changes in this post were done using ClaudeWave.

So far our boards only have an owner. I want an owner to have the ability to add other users to a board and also assign tasks to one of those users. Let’s get started.