41554 blogs Β· [ { "id": "01a0877b-4b45-714a-8872-9a5cd59af366", "title": "Podcast - React and Suspense on Talking Dev (Hebrew)", "url": "https://gal.hagever.com/posts/talking-dev-react-suspense-podcast", "published_at": "2026-03-20T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cd6867b07", "title": "Talk - Why I'm Excited about React Server Components", "url": "https://gal.hagever.com/posts/video-why-im-excited-about-react-server-components", "published_at": "2026-01-28T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cd4c529c8", "title": "New Silent Keyboard Sound Video - NuPhy Halo75 v2", "url": "https://gal.hagever.com/posts/nuphy-halo75-silent-red-vs-keychron-k2-mx-brown", "published_at": "2025-01-02T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cd7859568", "title": "Things I Use (2024 Edition)", "url": "https://gal.hagever.com/posts/things-i-use-2024", "published_at": "2024-12-29T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cd454ffc1", "title": "Fixing Non-working Keybindings in Alacritty 0.13", "url": "https://gal.hagever.com/posts/fixing-nonworking-keybindings-in-alacritty-0-13", "published_at": "2024-02-26T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cd880dc00", "title": "Background jobs with Pointguard πŸ€", "url": "https://gal.hagever.com/posts/background-jobs-with-pointguard", "published_at": "2024-01-13T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdc73d1e2", "title": "Easy and Performant Partial Form Submissions", "url": "https://gal.hagever.com/posts/easy-and-performant-partial-form-submissions", "published_at": "2023-12-05T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce0a99029", "title": "Out of Order Streaming from Scratch", "url": "https://gal.hagever.com/posts/out-of-order-streaming-from-scratch", "published_at": "2023-10-21T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce021f694", "title": "My Node.js is a bit Rusty", "url": "https://gal.hagever.com/posts/my-node-js-is-a-bit-rusty", "published_at": "2023-09-04T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cd83e3609", "title": "Authenticating GitHub Actions HTTP Requests with OpenID Connect", "url": "https://gal.hagever.com/posts/authenticating-github-actions-requests-with-github-openid-connect", "published_at": "2023-09-01T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce41ee652", "title": "Running Vercel Postgres Locally", "url": "https://gal.hagever.com/posts/running-vercel-postgres-locally", "published_at": "2023-05-22T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cde696e4c", "title": "I’m on Mastodon!", "url": "https://gal.hagever.com/posts/i-am-on-mastodon-galstar-hachyderm-io", "published_at": "2022-12-27T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdb1b51ff", "title": "Custom Emojis on GitHub πŸŽ‰", "url": "https://gal.hagever.com/posts/custom-emojis-on-github", "published_at": "2022-11-14T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdc49b832", "title": "DHH yells at the cloud", "url": "https://gal.hagever.com/posts/dhh-yells-at-the-cloud", "published_at": "2022-10-20T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdfdeda84", "title": "Multiple Schemas in Supabase", "url": "https://gal.hagever.com/posts/multiple-schemas-in-supabase", "published_at": "2022-07-11T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdb63003f", "title": "Custom JavaScript Flavors", "url": "https://gal.hagever.com/posts/custom-javascript-flavors", "published_at": "2022-06-30T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce1a1778e", "title": "Podcast: Vercel Edge Functions at JS Jabber", "url": "https://gal.hagever.com/posts/js-jabber-podcast-vercel-edge-functions", "published_at": "2022-06-15T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce489ea2e", "title": "Source Map-Aware Code Generation", "url": "https://gal.hagever.com/posts/source-map-aware-code-generation", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdef95eff", "title": "Leaving Wix", "url": "https://gal.hagever.com/posts/leaving-wix", "published_at": "2021-12-29T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdd03c8c5", "title": "Holiday Project - Working with MIDI clock over BLE and ESP32", "url": "https://gal.hagever.com/posts/midi-clock-over-ble-and-esp32", "published_at": "2021-11-24T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce189c94b", "title": "Podcast: Front-end Land (Hebrew)", "url": "https://gal.hagever.com/posts/frontend-land-podcast-typescript", "published_at": "2021-10-07T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce34078b0", "title": "React Error Boundaries in SSR", "url": "https://gal.hagever.com/posts/react-error-boundaries-and-ssr", "published_at": "2021-08-03T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce8784993", "title": "Why fnm was rewritten in Rust", "url": "https://gal.hagever.com/posts/why-fnm-was-rewritten-in-rust", "published_at": "2021-03-05T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdf1a3c58", "title": "Mocking in TypeScript with `factoree`", "url": "https://gal.hagever.com/posts/mocking-in-typescript-with-factoree", "published_at": "2021-03-02T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdcdf9097", "title": "HTML over the wire with Preact", "url": "https://gal.hagever.com/posts/hotwire-in-preact-apps", "published_at": "2021-01-30T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cd9f07fad", "title": "CLI Apps in TypeScript with `cmd-ts` (Part 1)", "url": "https://gal.hagever.com/posts/type-safe-cli-apps-in-typescript-with-cmd-ts-part-1", "published_at": "2020-11-26T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce6d06334", "title": "Using Long Paths in Windows and Rust", "url": "https://gal.hagever.com/posts/windows-long-paths-in-rust", "published_at": "2020-08-17T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce1ed5d55", "title": "Preserving Form State in Refreshes and Navigation with React", "url": "https://gal.hagever.com/posts/react-forms-and-history-state", "published_at": "2020-04-07T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce64dc695", "title": "Typing the Technical Interview in TypeScript", "url": "https://gal.hagever.com/posts/typing-the-technical-interview-in-typescript", "published_at": "2020-02-20T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce5201f3b", "title": "Stringly and Strongly typed TypeScript", "url": "https://gal.hagever.com/posts/strongly-stringly-types-in-typescript", "published_at": "2019-11-26T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce8ea4dda", "title": "πŸš€ fnm: Fast and Simple Node.js Version Manager", "url": "https://gal.hagever.com/posts/fnm", "published_at": "2019-02-06T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce2ce2b25", "title": "RS256 in ReasonML/OCaml", "url": "https://gal.hagever.com/posts/rs256-in-reasonml", "published_at": "2018-12-04T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce57c7e52", "title": "The Programming Language I’m Looking For", "url": "https://gal.hagever.com/posts/the-programming-language-im-looking-for", "published_at": "2018-09-24T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdc78ef3f", "title": "Fun with Functors and ReasonML", "url": "https://gal.hagever.com/posts/fun-with-functors-and-reasonml", "published_at": "2018-03-24T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce8f26a8e", "title": "β€œSign up” and β€œSign in” forms could (and should) be the same", "url": "https://gal.hagever.com/posts/sign-up-and-sign-in-forms-could-and-should-be-the-same", "published_at": "2017-05-05T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdd9d2bd1", "title": "IFTTT Ideas for Software Development", "url": "https://gal.hagever.com/posts/ifttt-ideas-for-software-development", "published_at": "2017-04-12T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce7a99cab", "title": "Versatility is your enemy", "url": "https://gal.hagever.com/posts/versatility-is-your-enemy", "published_at": "2017-01-24T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdd479cc2", "title": "I failed to deliver.", "url": "https://gal.hagever.com/posts/i-failed-to-deliver", "published_at": "2017-01-18T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cd90ea1c3", "title": "Being in a band made me a better software developer. vice versa.", "url": "https://gal.hagever.com/posts/being-in-a-band-made-me-a-better-software-developer-and-vice-versa", "published_at": "2016-12-29T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cde777dc8", "title": "Leaving The Comfort Zone", "url": "https://gal.hagever.com/posts/leaving-the-comfort-zone", "published_at": "2016-12-21T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5ce3c6205c", "title": "Regression", "url": "https://gal.hagever.com/posts/regression", "published_at": "2016-10-06T00:00:00+00:00" }, { "id": "01a0877b-4b45-714a-8872-9a5cdac3c870", "title": "Composable SQL In JavaScript", "url": "https://gal.hagever.com/posts/composable-sql-in-javascript", "published_at": "2016-06-26T00:00:00+00:00" } ] posts Claim your blog
Back to gal.hagever.com
Blog Β· corpus.blog/blogs/gal.hagever.com/posts

gal.hagever.com

gal.hagever.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016