Colum Kelly
columk.bsky.social
Colum Kelly
@columk.bsky.social
Fullstack Developer | Climbing | Paragliding
October 30, 2025 at 4:20 PM
October 19, 2025 at 6:22 AM
I've made the mistake of listing out a bunch of input attributes as prop types when I want to pass them to a component. React actually a type for these which makes it much cleaner.

#webdev #frontend #react #typescript
March 31, 2025 at 8:16 PM
Finished my Threads Clone. Next 15, React 19, Drizzle, SQLite, custom auth. I nabbed the rolling counter from Bluesky and a few ShadCN components, but otherwise everything was done from scratch.

@syntax.fm you guys got me here! Someone hire me I'm sick of cleaning windows 😅

#webdev #react #nextjs
March 12, 2025 at 9:13 PM
This component wraps a card, allowing it to be clicked anywhere, without compromising the ability to select text. handleNestedInteraction opens the link (navigate) as long as the event target isn't a nested button.
#webdev #frontend #react #javascript
February 1, 2025 at 8:29 PM
Hmm I thought this was the default. I don't have an option for "normal" mode. I was wondering what they were talking about on Syntax.
January 30, 2025 at 6:39 AM
Using a DropdownMenuItem as a Dialog trigger doesn't work as expected. Many suggest adding an e.preventDefault to the MenuItem but this causes other issues.

Placing the Dropdown within the Dialog is a better solution that will make everything work correctly. #radix #shadcn #webdev #frontend #react
January 29, 2025 at 8:47 PM
Touché, DeepSeek...

#ai #llm #deepseek #chatgpt
January 26, 2025 at 10:32 PM
Many Radix/Shadcn components hide the scrollbar when toggled, which can cause layout shift. Giving fixed elements a width of 100vw will make them stable.

To stop the scrollbar to be hidden, use this rule. The html selector may seem unnecessary but it adds specificity. #css #shadcn #react #webdev
January 26, 2025 at 5:38 AM
Callback refs are much cleaner than effects for DOM manipulation. This is a handy one I'm using to help the user overwrite the previous input after navigating back to the main search page.

You can even add a cleanup function since React 19, which makes them safer for async tasks. #react #webdev
January 23, 2025 at 6:49 PM
This is a handy snippet to get typed API routes in a Next.js app with no effort. You should still validate the response because its shape isn't guaranteed.
#webdev #nextjs #typescript
January 13, 2025 at 6:56 PM
Very satisfying to use the following command today in Node 23.6.0

node --env-file=.env.local src/lib/db/seed.ts

I had to add .ts extensions to all module imports and remove path aliases, as well as adding a couple of tsconfig rules.

nodejs.org/api/typescri...

#webdev #node #typescript
January 9, 2025 at 7:00 AM
The full closing paragraph is incredible.
January 8, 2025 at 7:52 PM
Found a nice trick for nesting links without nesting them in markup (which is illegal HTML).

Using position: absolute, inset: 0 on the first link makes it take up the full area of the parent div, and z-index on the nested link allows it to capture mouse events before the wrapper.
#css #html #webdev
November 28, 2024 at 7:30 PM