Dominik Hryshaiev
banner
domhhv.bsky.social
Dominik Hryshaiev
@domhhv.bsky.social
Full-stack developer passionate about open source, TypeScript, and React

ex-Waze, ex-Unstoppable Domains

Available for hire

Playing PS5 and PC games in my free time

https://github.com/domhhv
As I reflect on my year, I just want to say thank you to @syntax.fm for all those tasty and really insightful treats. My personal favourite is one on mental health and neurodiversity.

@wesbos.com @tolin.ski You make my commutes way more valuable, keep it up!
December 21, 2025 at 8:54 PM
Shipped a thing: emailcompat.dev
Paste your email HTML, see what breaks in Gmail/Outlook/Apple Mail before you send.
Built this for a job interview, got rejected, released it anyway. Some wild discoveries - Outlook literally uses Microsoft Word to render emails. In 2025.
Free, open source.
December 18, 2025 at 5:03 PM
React + Framer Motion? Skip the carousel libraries. This ~40-line snippet gives you clean directional animations with zero extra deps. Sometimes DIY is just better.
April 1, 2025 at 11:43 AM
Refactored my Supabase client setup into a Singleton.
Now there's a single source of truth, safe test behavior, and early error handling for misconfig.
One client across the app, no accidental re-creates — a clean, practical use of the pattern.
March 26, 2025 at 7:46 PM
I've decided to stick with explicit arrow function bodies in JS/TS—always using curly braces and a return. It might feel more verbose, but it keeps the Git diffs clean and makes adding logic later a breeze. Luckily, ESLint has a rule just for that. #JavaScript #TypeScript #CleanCode
March 25, 2025 at 11:05 AM
Lastly, SQLFluff isn’t perfect — I’ve hit walls with parsing Postgres functions (especially with plpgsql).

I also had to learn how -- noqa works to ignore specific lines. E.g. -- noqa: CV10 next to a line disables rule on quoted literals for it.

Still worth it. Would do again.

Hope this helped!
March 24, 2025 at 6:27 PM
I also added SQLFluff to CI so migrations and seeds are linted on every PR.

This runs SQLFluff via `pip` in GitHub Actions.

Here's the GitHub workflow config. Takes 20 lines and saves headaches in prod.
March 24, 2025 at 6:27 PM
I use Husky to run SQLFluff in pre-commit hooks with lint-staged.

Here's my lint-staged.config.js.

There's also a fix to transform the absolute paths to relative ones since when we run the command inside the Docker container, the paths are relative to the mounted volume, not our local file system.
March 24, 2025 at 6:27 PM
I added two npm scripts to my package.json to run SQLFluff with Docker:

- lint:sql (to lint files)
- fix:sql (to auto-format them)

So I don’t have to install Python or pip—just Docker.

Those commands automatically detect .sql files but can also take a path to a specific one as an argument.
March 24, 2025 at 6:27 PM
SQLFluff is a linter & formatter for SQL, customizable and dialect-aware (Postgres in the case of Supabase).

You can run it via Docker (they provide an official image) or install it globally via pip/brew.

It reads from .sqlfluff config file in the root of your app.

Here’s what mine looks like.
March 24, 2025 at 6:27 PM
Have a JavaScript-heavy project that uses
@supabase.com and wish you could lint your migrations and seeds like you do with ESLint?

I just set up SQLFluff in my app using Docker, Husky, lint-staged, and GitHub Actions to achieve consistency in my SQL code.

Sharing my setup here in case it helps ↓
March 24, 2025 at 6:27 PM
10 years (+1 week, totally forgot to post on the exact anniversary 😅) ago, as a CS sophomore, I signed up on Codecademy & got hooked on JS, HTML & CSS. Spent nights solving exercises—now I’m a Full-Stack Engineer, still just as excited about coding as I was back in my tiny dorm room. Time flies! 🚀
March 18, 2025 at 9:44 PM
Thankfully, my gaming PC is also helping me get through the PSN downtime. Between Steam, EA, Epic Games and other launchers, there’s always something to play! How’s everyone else holding up? 🎮 💻
February 8, 2025 at 8:52 PM
PSN might be down, but it’s given me a moment to really appreciate the physical collection I’ve gathered. Owning discs means you can dive into your favourite worlds notwithstanding network issues. There's something timeless about having these gems on the shelf. Stay patient out there, gamers! 💿 🎮
February 8, 2025 at 8:28 PM
Received this classic yesterday. It's not new to me as I attempted reading it somewhere in 2017 when I was still a junior. I just couldn't bear with its complexity back then 😅

I'm about to give it another try now with hopes that being more seasoned and knowledgeable dev, I'll process it, bit by bit
January 5, 2025 at 5:00 PM
Got this super-cool art book today and already read through half of it. Returnal's probably my favorite game ever, and this book beautifully captures how well-designed it is—from the hostiles and weapons to the breathtaking landscapes.

I hope Housemarque makes a sequel of this masterpiece someday 🐙
December 14, 2024 at 7:39 PM
Naughty Dog just announced their new IP titled Intergalactic: The Heretic Prophet.

I'm especially thrilled about the cast we know so far (Tony Dalton from Better Call Saul and, of course, Troy Baker) + OST covered by Trent Reznor and Atticus Ross.
December 13, 2024 at 11:08 AM
This script:

- Switches to `main` by default (or any branch you prefer).
- Pulls the latest changes with rebase.
- Deletes the old branch.
- Optionally stashes and pops local changes if needed (just add --stash).

Hopefully, it helps your productivity as well if you've faced the same problem!
December 8, 2024 at 6:53 PM
I kept finding myself running the same repetitive Git commands each time I merged a pull request: switching to main, pulling changes, and deleting the branch. It got tedious, so I decided to automate it.

I wrote a small shell script that handles it all for me: gist.github.com/domhhv/be466...
December 8, 2024 at 6:51 PM
November 14, 2024 at 2:05 PM
So, here's a simplified version of what I eventually came up with. I'm not sure it's the most elegant way to solve the problem. But I enjoyed trying out and getting the hang of a modern and niche JS feature while building something! So I thought I'd share in hopes it could prove useful to some.
November 10, 2024 at 7:37 PM