Using Opencode while working out

Leveraging an LLM to do get things done while you’re getting other things done is pretty great.

Here’s a brief sampling of what I got done today during my workout:

  • Created a blog using Astro 5 with the new Content Layer API
  • 1 x 4 @ 8 RPE of squats
  • Wired it up with markdown and MDX
  • Created a blog listing page and single post pages
  • 3 x 10 @ 8 RPE of bench press
  • Set up a 404 page
  • Added a footer
  • myoreps of dumbbell press
  • Ensured that I was using consistent styling with some theme work and component abstractions
  • generated an outline for what I should post here.
  • 3 x 15 @ 7 dumbbell fly

This isn’t done yet. I’m not loving how the blog post page looks. It’s a little plain but I don’t really have a lot of time. Opencode is a cheat code for using an LLM to make changes. You still need to understand how to break out tasks in ways that LLMs understand. There’s a ton more that I’m learning with this firehose right now but this is an example of what a command and result might look like:

Example Task:

I have tasks written out like this. I keep a little x so that I can keep track what I’m having the LLM do.

5. - [x] we need a slug route for blog posts, 
         then let me know where the hello world post will live

Example Result:

This is what the LLM actually does and how it reasons about it.

## Task 1.5: Create Slug Route for Blog Posts

### Work Log

- [x] Create a dynamic [slug].astro route for individual blog posts
- [x] Display blog post content with proper layout
- [x] Inform user where the hello world post will live
- [x] Fix slug route to use correct frontmatter field name 
        (publishDate instead of publishedAt)
- [x] Debug and fix the Missing parameter: slug error
- [x] Update blog route to use id instead of slug 
        for Astro 5 Content Layer API
- [x] Fix entry.render is not a function error 
        use render function from astro:content