Grok Bot first impressions
View post: https://brianlovin.com/writing/grok-bot-first-impressions-kcJun01
Essays, guides, and thoughts on design, engineering, and product development
View post: https://brianlovin.com/writing/grok-bot-first-impressions-kcJun01
View post: https://brianlovin.com/writing/how-im-feeling-about-ai-in-august-2026-O7e1TFS
Two recent examples of giving Claude Code a laboratory to find the optimal path through some tedious engineering problems: I added an email capture feature to Shiori so you can forward newsletters into your library. But turns out emails suck to parse. Crappy junk headers and footers, tracking pixels, nasty redirect links, long forward chains, etc. View post:…
I shared this video today on X: why I'm so excited about Notion Workers + Custom Agents. View post: https://brianlovin.com/writing/why-im-excited-about-notion-workers-g89pVLC
There are many ways to minmax your computer skills (I have an entire Notion database dedicated to the topic). One of the best shortcuts I’ve found is to abuse the ✦ Hyper key for app switching, frequently-used quicklinks, and jumping between complex window layouts. What’s the ✦ Hyper key? View post: https://brianlovin.com/writing/use-the-hyper-key-o5ozwGC
I've been a Mac user for almost 20 years (my first MacBook was the 2007 matte black edition—the fingerprints!). I still love the Mac, but I'm becoming increasingly interested in Windows and Linux. Mostly I want a better grasp on how computers work and I need some new terrain to explore, but also because macOS has been on a steady decline in quality that's become impossible to ignore in day-to-day…
Keeping Claude Code skills and settings in sync across devices is tedious. Switching computers only to realize you're missing a skill or preference breaks flow, and I end up spending more time setting things up instead of actually coding. My solution: use a git repo as the source of truth for my Claude Code config. It uses an install script to symlink everything into my root ~/.claude/ directory,…
Imagine you're a running coach and you have a star athlete on your team. Now imagine that it’s the first day of training and you both show up to the track. You tell the athlete “run faster.” View post: https://brianlovin.com/writing/give-your-agent-a-stopwatch-zNa2M3o
Also read: Give your agent a stopwatch This is where we are in January 2026: coding agents are only as good as their feedback loop. View post: https://brianlovin.com/writing/give-your-agent-a-laboratory-jH5ryjC
I need a faster way to capture ideas into Notion from my phone without having to open the mobile app, navigate to the right database, and type out a bunch of properties. I want to activate Siri or open iMessage and say something like: “Remind me to schedule coffee with Jeff next week” and have that task automatically route itself to the right database with as many properties pre-filled as…
There’s no shortcut. View post: https://brianlovin.com/writing/hiring-design-minded-frontend-engineers-61rbXSV
The modern team communication toolkit is broken: docs in one app, calls in another, posts and chat in another, and everyone ends up copy-pasting links all over the place and fiddling with permissions to make sure people can see the right things. And even when all that works, it's still impossible to find discussions after the fact and keep up with decisions across teams and projects. View post:…
Today, on a whim, I went live on YouTube to try Framer Sites and see what all the buzz is about. You can watch the recap here. It was a really fun hour of learning and building, especially because many people on the Framer team were in the stream to answer questions and guide me when I got stuck. After one hour, I had nearly recreated the home page of my personal website and deployed it instantly…
Last week I asked Twitter if anyone would pay for visual design critique as a service — I love helping people fix small visual bugs in their designs, but would a business pay for this? Going from that initial tweet, to a quick pricing survey, to a payment link, took just two hours, and then within a day eight businesses had signed up [^1]. View post:…
If you're like me, you've found yourself in a situation where you were so excited to pursue a new goal, start a new side project, or explore a new hobby, that you just couldn't wait to tell the world. So you tweet about it, get a flood of positive encouragement, and then...whoosh, suddenly the motivation has evaporated, another domain name laid to rest in the graveyard of side projects. Experts…
My personal website is an over-engineered playground where I can tinker, learn new things, test new tools, break all the rules, and just scratch that itch deep in my brain that wants to understand how the hell web software works. My site has gone through several iterations over the years, and what you're seeing now (as of December 2021) is version 5. It's a borderline SaaS-ready web application…
Typing fast is the one of the highest leverage skills you can develop in tech. It doesn't matter if you're a designer, programmer, PM, or anything else — slow typing disrupts the creative process and makes it harder to enter flow. Typing fast is also quite fun. It's a magical feeling when my eyes glaze over, muscle memory takes hold, and the distance between my brain and the computer disappears.…
Text message spam is getting out of control. It feels like every day I'm getting links to meet hot singles in my area, or receiving bizarrely-formatted links, or sometimes receiving junk messages with no call to action at all. Even if Apple can't stop spam from being created, they can absolutely change how much collective time normal humans have to spend dealing with it. View post:…
Last week I shipped a redesign of my personal website, a project that started in September and took nearly two months of working nights and weekends to finish. Here's the beast of a pull request that brought it all together for the code-curious among you. I think the only reason that it's worth talking about this redesign is because it's just so over the top, and so over engineered: User…
Last year I began writing small angel checks in early stage startups and advising founders on product design. I probably know 1% of what there is to know about either of these topics. But: in the same year since I've started investing and advising, I've had dozens of conversations with other designers who have also taken their first step down this path, or wanted to start but weren't sure how.…
The portfolio presentation is the most important part of a product design interview loop. It’s the right time to demonstrate that you can Do The Work. Sadly, these presentations are usually packed into a single-hour meeting with a room full of strange faces. This can induce anxiety and leads many people to make easy-to-avoid mistakes. In the spirit of avoiding these mistakes, here are my thoughts…
Over the years I’ve made dozens of websites, started and ended a handful of side businesses, hosted industry events, interviewed hundreds of people, written blog posts, reviewed apps, and generally used design and code to chip away at problems that I find interesting. Despite all this, the world still expects my intersection of skills and experiences to fit neatly into a single title. For me, it’s…
This week I published the 8th and final interview for Staff Design, an interview series exploring how experienced designers navigate the individual contributor career path. This project that started out as a personal itch to scratch has been thoroughly satisfying, but I'm relieved to put it behind me. Here's what I learned during the past four months of building and interviewing. Understanding the…
Here are the tips and strategies I've learned from shipping many side projects over the years, including my personal site, Security Checklist, Staff Design and Design Details: You're probably going to work on a side project for a few weeks. Maybe even a few months. Or if you're an absolute mad person like me, you might work on a side project for [years](https://designdetails.fm). Between design,…
For the past eight weeks I've been working on a new interview project called Staff Design, where I'm learning how successful individual contributors in product design navigate their careers. Despite having interviewed hundreds of people in the last 6 years on Design Details, this project feels like my first serious attempt to improve my interviewing skills. I should have done this sooner. Part of…
Writing a year-in-review post just hits different this time around, huh? 2020 was a dumpster-fire year in many ways, but not in every way. This year I spent more time with my family than I have since high school. I explored new neighborhoods in San Francisco on foot, falling in love with new corners of the city along the way. And I was fortunate – in every sense of the word – to be employed,…
This was the first year in many that I managed to regularly update and publish content on my personal site. In past years I started strong (usually around New Years) with fresh writing, energy, and enthusiasm. But somewhere around February or March, things died off and I could never find that momentum again. Why was this year different? In this post I've tried to tease apart factors that made…
Last week I rebuilt my personal website with Tailwind.css, a CSS framework that uses utility classes to compose interface styles. Having used it for a week on a handful of areas (like moving an entire website into a single page on my site), here are my first impressions. Tailwind CSS is very good, and I'm already happy that I took the time to learn it while refactoring my personal website. It's so…
Last week Divya Tak asked on Twitter "but what are things that you do to 'save the users from themselves...'" Marshall Bock and I spent an hour thinking about this question, recorded a podcast with our answers, and now we're publishing the conversation here for longevity. This list is not exhaustive: there are a million more examples of software saving people from their own mistakes, insecurities,…
Last week I tweeted: This response from Hans captured another meaning behind my message: View post: https://brianlovin.com/writing/true-respect-is-the-difference-z6xPQaA
Writing self reviews can be hard. For a lot of people, talking about themselves and their accomplishments feels a lot like bragging. Or it might just be hard to remember things that happened a few months ago. Or sometimes people are unsure what the expectations are for a review, and don't know what should be included to maximize their growth. I've been lucky to have had a string of great managers…
It was cool to read Michael Knepprath's 2020 Mid-Year Review this week – this year has been breezing by at an uncomfortable pace, so it is helpful to pause for a second and introspect a while. At the beginning of this year I listed my goals for 2020; here's how things are going. Ha. Ha. Ha. View post: https://brianlovin.com/writing/2020-mid-year-review-LlJz7Vk
Quality is subjective and hard to define. In software, it can be unclear why certain applications seem better than others. This post aims to outline the characteristics of software that we believe determine its fundamental quality. The following notes are from a conversation with Marshall Bock, so I'll be writing this post as a we/us/our. It can be helpful to think of the characteristics of high…
It's enjoyable to iterate on this site, in the spirit of building incrementally correct personal websites. Last week, when I wanted an easier way to update the metadata for my bookmarks page, I added authentication so that a page knows when I'm looking at it. Once that worked, gears started turning. If every page on my site knows when I am looking at it, everything becomes mutable. Having a CMS is…
In the spirit of over-complicating the hell out of my personal website, I spent time this weekend trying to solve one very small and seemingly-simple problem: can I make my statically-generated website know when I am viewing it? I have a bookmarks page where I store helpful links. To add new links, I set up a workflow where I can text myself a url from anywhere. Here's the code to do this. New…
I first heard of the phrase "incremental correctness" from Guillermo Rauch during our Design Details interview over 2 years ago.† Since then, the concept has been weaving its way through all parts of my life, inside and outside of design and technology. It's become a mantra of sorts at GitHub, thanks to the reliable repetition of the phrase in almost every conversation with Max Schoening.…
We started building the GitHub mobile apps last May, around the same time that Figma Plugins were released. I remember feeling so relieved, because I suddenly had access to tools that would speed up my design process, simplify tedious workflows, and automate the boring parts of designing screens. Over the next few months, I ended up making about ten small utility plugins. Those small utilities…
Last week I was reading [To Get Good, Go After the Metagame](https://commoncog.com/blog/to-get-good-go-after-the-metagame/), a post about metagames in life, and how understanding metas can create competitive advantages. For starters, you should read that post. If you don't, here's a short primer from Wikipedia: View post: https://brianlovin.com/writing/the-meta-skills-of-product-design-dm5y2kl
I've been maintaining this list of useful and inspiring product design portfolios for a few years. It's awesome to see people sharing their work experiences openly and putting their own personal touch on their website. As the list grew, people told me that it was a useful reference while creating their own portfolio. My criteria is loose, but generally: View post:…
It's no longer possible to be a "designer unicorn." It used to be the case that if you were good at visual design, interaction design, and frontend coding, you were elevated to the mythical "unicorn" status. But each of these skills – among the other skills required to build successful products – has become too broad and too nuanced for any individual to contribute meaningfully across the entire…
I've been privately writing year-in-review journal entries for a few years, but since I'm jump-starting this blog again it seems fun to share more openly here. I certainly enjoy reading other people's review posts, so maybe someone out there will find this interesting, too. Here were the goals I set for myself for 2019: View post: https://brianlovin.com/writing/2019-in-review-Dz2lNju
While it might not be necessary to work nights and weekends, it does seem practically useful. There are only 24 hours in the day, yet there are so many problems to be solved. It seems the question of whether or not you should work those hours is a function of the underlying incentive structure. In other words: who will benefit the most from the extra work? Here are a few question I ask myself to…
Over the last few years I've had many conversations with people who make decent tech salaries, but aren't doing all that much with their money. Their earnings are often piling up in a checking account, like a mountain of gold in a cave. But there's a way to think about money that some might not even know exists, or perhaps sounds intimidating enough that they don't investigate further. View post:…
I've been using Next.js's API routing feature to implement a thin wrapper around the Simplecast API. This wrapper powers the queries for spec.fm, designdetails.fm, as well as the queries for the most recent Design Details Podcast episode that appears on the home page of this site. The API implementation was a bit naive and didn't put any effort into caching. After some digging I realized that with…
I recently rebuilt most of my personal site with the main goal of providing a better surface area for writing. There are dozens of viable technology choices available right now to create a self-hosted blog and I spent way too long, and way too much energy trying to find the perfect one. Spoiler alert: there is no perfect system. Every solution is a hack. Once I accepted this, I could focus on…
I recently added automatic dark mode theming to my personal site using Next.js, styled-components, and useDarkmode. This is a short technical look at how it's built. The solution below worked for a while, but unfortunately suffered from the dreaded "dark mode flicker" - that flash of a white screen you get when an SSR'd page briefly hits the client and renders light mode styles. View post:…
Google Analytics is overkill for most of my projects. I don't really need the myriad of features and tracking options that Google offers: OS version data, behavior flows, content drill-downs, exit pages, and acquisition devices — just to name a few. Here are questions that I want my analytics software to answer: View post:…