Hi, I'm Kyle Shevlin, founder and lead software engineer of Agathist, a software development firm that specializes web & mobile applications built with React , React Native , Astro and TypeScript .
I am also a writer, speaker and coding instructor. This is my personal site where I share all the content I create.
I primarily write articles and create courses, focusing on breaking software concepts down to their fundamentals. Check out one of my posts or courses (or all of them). If you like what you read, then sign up for my newsletter, too.
If you're looking to hire me and my team, send an email to kyle@agath.ist. If you need to reach me regarding something else, then my personal email is the best way to do so.
Enjoy your time here and thank you.
Unsure where to start?
Try a post in one of these tagged collections.
Recent Posts
- Creating a React Native “Curved Bottom Bar” with Handwritten SVGI recently made a "curved bottom bar" in React Native for a client. Instead of using a library, let's build it from scratch with some handwritten SVG. It's no where near as intimidating as it sounds.
- Tailwind “Minimum Full Height” LayoutI've been using Tailwind CSS on a lot of projects lately. Almost all my layouts for these projects are some version of the "minimum full height" layout, and I wanted to quickly show you how I do that with Tailwind.
- Make Checkpointaka How a Makefile Improves my Side ProjectsLearn how to create a simple Makefile to quickly create a "checkpoint" in your Git history when you are rapidly prototyping.
- Agathist VSCode ThemesI created a VSCode theme inspired by Agathist's brand colors and released it as a VSCode Extension.
- Two Types of CompositionNot only is "composition" a confusing word, but there is more than one way to do it. Let's break those ways down into two types and learn about "nesting composition" versus "merging composition".
- Agathist Q&AYou might have noticed a few new "ads" around here recently for something called Agathist. Let me tell you what that is all about in a (hopefully) fun self-directed Q&A.
- No Outer
margin
It is an anti-pattern to add margin to the outermost element of a component. It breaks encapsulation and makes components difficult to reuse. Let's learn what to do instead. - Type
TODO
In TypeScript, sometimesany
is our best option, but we can go a step further and give ourselves a little more signal than that.Tags - Wrangling Tuple TypesTypeScript doesn't know whether you're returning an array or a tuple from a function, so let's learn a couple ways we can fix that problem.Tags
- UI CompositionAKA taking a step back to take a step forwardOften we run into tricky UI situations as a result of overloading an element with styling responsibilities. We can solve this problem by separating the responsibilities and re-composing the individual components.