<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: gkiely</title><link>https://news.ycombinator.com/user?id=gkiely</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 22 Oct 2026 13:44:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gkiely" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Show HN: Pack.sh – Self-host single-file apps]]></title><description><![CDATA[
<p>I’m working on pack.sh, a simple way to deploy apps to your own server.<p>The goal is to bring back the old zeit now feeling: run one command in a project and get a live URL, but self-hosted.<p>Instead of managing Node versions or different runtimes on the server, pack.sh uses single-file executables. Build once, upload one file, run it.<p>This keeps server setup pretty minimal, and makes it easy to run many small apps on a cheap VPS.<p>Feedback welcome.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48195795">https://news.ycombinator.com/item?id=48195795</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 19 May 2026 16:45:56 +0000</pubDate><link>https://pack.sh/</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=48195795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48195795</guid></item><item><title><![CDATA[New comment by gkiely in "Show HN: Safe-install – safer NPM installs with trusted build dependencies"]]></title><description><![CDATA[
<p>The simplest reason might be that it's not the default so people use npm out of habit.<p>Personally, I use volta and switch between node versions in different projects, so I prefer to just use npm.</p>
]]></description><pubDate>Tue, 12 May 2026 21:21:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48114782</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=48114782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48114782</guid></item><item><title><![CDATA[New comment by gkiely in "Show HN: Safe-install – safer NPM installs with trusted build dependencies"]]></title><description><![CDATA[
<p>Yeah, this is just for anyone using node on their local machine.<p>Enabling `ignore-scripts=true` protects you from almost all of the recent compromises `min-release-age=3` protects you from the rest. But you still typically need trusted dependency builds, which this script solves.<p>I hope that npm enables this by default in the future.</p>
]]></description><pubDate>Tue, 12 May 2026 21:10:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48114615</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=48114615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48114615</guid></item><item><title><![CDATA[Show HN: Safe-install – safer NPM installs with trusted build dependencies]]></title><description><![CDATA[
<p>In light of the ongoing npm supply chain compromises, I built safe-install:<p><a href="https://www.npmjs.com/package/@gkiely/safe-install" rel="nofollow">https://www.npmjs.com/package/@gkiely/safe-install</a><p>It brings a couple of protections I wanted from npm but are not built in.<p>Similar to Bun’s trusted dependencies, it lets you disable install scripts by default and define a list of dependencies that are allowed to run build/install scripts:<p><a href="https://bun.com/docs/guides/install/trusted" rel="nofollow">https://bun.com/docs/guides/install/trusted</a><p>It also supports blocking exotic sub-dependencies, similar to pnpm’s `blockExoticSubdeps` setting:<p><a href="https://gajus.com/blog/3-pnpm-settings-to-protect-yourself-from-supply-chain-attacks#2-set-blockexoticsubdeps" rel="nofollow">https://gajus.com/blog/3-pnpm-settings-to-protect-yourself-f...</a><p>I was hoping npm would eventually add something like this, but it does not seem to be happening soon, so I made a small package for it.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48102636">https://news.ycombinator.com/item?id=48102636</a></p>
<p>Points: 19</p>
<p># Comments: 5</p>
]]></description><pubDate>Tue, 12 May 2026 00:30:10 +0000</pubDate><link>https://www.npmjs.com/package/@gkiely/safe-install</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=48102636</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48102636</guid></item><item><title><![CDATA[New comment by gkiely in "What happened to Apple's legendary attention to detail?"]]></title><description><![CDATA[
<p>Jobs would’ve went all-in on Siri. He acquired it and loved it.</p>
]]></description><pubDate>Fri, 24 Oct 2025 05:14:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45691000</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=45691000</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45691000</guid></item><item><title><![CDATA[New comment by gkiely in "Svelte’s characteristics that likely contribute most to improved performance"]]></title><description><![CDATA[
<p>A HTML page, web components  and no build process solves this.<p>Pinned package versions in npm  solves this.<p>If you want to use the latest dependencies then yes there is ongoing management required. There are tools to help with this.</p>
]]></description><pubDate>Thu, 09 Oct 2025 15:26:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45529032</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=45529032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45529032</guid></item><item><title><![CDATA[New comment by gkiely in "Behind the scenes of Bun Install"]]></title><description><![CDATA[
<p>bun test is a killer feature</p>
]]></description><pubDate>Thu, 11 Sep 2025 19:04:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45215013</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=45215013</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45215013</guid></item><item><title><![CDATA[New comment by gkiely in "U.S. alcohol consumption drops to a 90-year low, new poll finds"]]></title><description><![CDATA[
<p>Lagunitas IPNA is really good  but it’s not always easy to find.</p>
]]></description><pubDate>Wed, 13 Aug 2025 22:37:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44894713</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=44894713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44894713</guid></item><item><title><![CDATA[New comment by gkiely in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>You were doing ok up until this comment.</p>
]]></description><pubDate>Mon, 12 May 2025 01:01:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=43958687</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=43958687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43958687</guid></item><item><title><![CDATA[New comment by gkiely in "Show HN: Low false-positive website spellchecker"]]></title><description><![CDATA[
<p>Thanks!<p>Let me know your use case as I am still learning where it can provide the most value and how I should go about charging for it.<p>I welcome feedback on pricing/self-hosted.</p>
]]></description><pubDate>Thu, 06 Mar 2025 09:14:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43278094</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=43278094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43278094</guid></item><item><title><![CDATA[Show HN: Low false-positive website spellchecker]]></title><description><![CDATA[
<p>Article URL: <a href="https://typotamer.com">https://typotamer.com</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43277784">https://news.ycombinator.com/item?id=43277784</a></p>
<p>Points: 1</p>
<p># Comments: 2</p>
]]></description><pubDate>Thu, 06 Mar 2025 08:22:48 +0000</pubDate><link>https://typotamer.com</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=43277784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43277784</guid></item><item><title><![CDATA[New comment by gkiely in "Show HN: I'm making a spiritual successor to Ski Free that runs in a browser"]]></title><description><![CDATA[
<p>Nice one and good job on the perf it’s noticeable.</p>
]]></description><pubDate>Mon, 25 Nov 2024 20:24:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=42239812</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=42239812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42239812</guid></item><item><title><![CDATA[New comment by gkiely in "Show HN: I'm making a spiritual successor to Ski Free that runs in a browser"]]></title><description><![CDATA[
<p>Pretty cool man.<p>1. I would replace the chairlift sequence in place of a shortened animation or just make it teleport.<p>2. Keyboard shortcuts.<p>3. Where's the monster? ;)</p>
]]></description><pubDate>Sun, 24 Nov 2024 23:01:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=42231362</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=42231362</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42231362</guid></item><item><title><![CDATA[New comment by gkiely in "Zod: TypeScript-first schema validation with static type inference"]]></title><description><![CDATA[
<p>It does: <a href="https://valibot.dev/guides/optionals/#use-in-objects" rel="nofollow">https://valibot.dev/guides/optionals/#use-in-objects</a><p><pre><code>  import * as v from 'valibot';
  const OptionalKeySchema = v.object({ key: v.optional(v.string()) });
  type t1 = v.InferInput<typeof OptionalKeySchema>; // { key?: string }

  const UndefinedKeySchema = v.object({ key: v.undefinedable(v.string()) });
  type t2 = v.InferInput<typeof UndefinedKeySchema>; // { key: undefined }</code></pre></p>
]]></description><pubDate>Thu, 10 Oct 2024 13:49:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=41798795</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=41798795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41798795</guid></item><item><title><![CDATA[New comment by gkiely in "Founder Mode"]]></title><description><![CDATA[
<p>Some of his recent talks cover it: 
<a href="https://youtu.be/aZ-BjJZxNoA?si=yPYH71a76Mr1RWLr" rel="nofollow">https://youtu.be/aZ-BjJZxNoA?si=yPYH71a76Mr1RWLr</a><p><a href="https://youtu.be/4ef0juAMqoE?si=fya1OCfUUR4n_gd1" rel="nofollow">https://youtu.be/4ef0juAMqoE?si=fya1OCfUUR4n_gd1</a></p>
]]></description><pubDate>Wed, 04 Sep 2024 12:07:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=41444694</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=41444694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41444694</guid></item><item><title><![CDATA[New comment by gkiely in "Show HN: A web debugger an ex-Cloudflare team has been working on for 4 years"]]></title><description><![CDATA[
<p>Nice work, looks like you've got some big names using it too, congrats.<p>I have some feedback on your homepage & messaging.<p>Initially scrolling the home page I thought it was a tool for viewing customer bug sessions, similar to TrackJS or Sentry.<p>Reading this post it became clear this is for product managers and/or team members to file bugs. The line "Built for everyone" on the home page threw me off.<p>I think if you make the distinction that this is an internal tool for teams vs. an external tool for tracking customer issues it might help make this messaging clearer.<p>I'm not sure of your plans (perhaps you also intend for external users to use it) this was just my first pass impression.<p>I think this is a great tool. The structured format combined with the information provided by the extension are what make it valuable to me. The last minute feature is also nice as re-creating bugs can be a PITA.<p>As a dev, I would ideally also want to be able to view stack traces with source maps, but having a consistent structured format combined with the extension data is enough of a value prop to start using it.</p>
]]></description><pubDate>Fri, 10 May 2024 14:36:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=40319536</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=40319536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40319536</guid></item><item><title><![CDATA[New comment by gkiely in "Cloudflare defeats patent troll Sable at trial"]]></title><description><![CDATA[
<p>Why did none of the other companies listed in the article fight it, if this is the case?</p>
]]></description><pubDate>Mon, 12 Feb 2024 17:46:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=39347893</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=39347893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39347893</guid></item><item><title><![CDATA[New comment by gkiely in "Airlines lobbying FAA to have only one pilot in the cockpit"]]></title><description><![CDATA[
<p>I didn’t phrase this well, good call out.<p>Now that I’ve thought about it what I’m actually trying to ask is…<p>What would it take to drop flight prices 50%?<p>Automated flights, a change in fuel technology, 0 marketing spend, reduced maintenance?<p>More specifically, what is the bare bones cost to transport a human from point a to b, safely, in the same or less time it takes a flight.</p>
]]></description><pubDate>Sun, 11 Dec 2022 04:26:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=33940068</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=33940068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33940068</guid></item><item><title><![CDATA[New comment by gkiely in "Airlines lobbying FAA to have only one pilot in the cockpit"]]></title><description><![CDATA[
<p>I take a contrarian opinion on this, the price of a flight in the US outside of major hubs is egregious. Especially during peak times or holidays.<p>What is the long term plan here? Will there still be duo pilots in 2040? 2060?<p>Surely long term it will be automated with remote supervision/override and a cabin crew who have basic training to emergency land.<p>Do the testing on mail delivery, get it good enough, introduce it into domestic with pilots still present, slowly phase out pilots to be remote.<p>I would fly domestic automated flights if the automation was proven as safe, the above conditions were met, and the price was 40-50% cheaper.<p>I don’t see why a company hasn’t gone all in on this yet, but would love to hear why it’s a dumb idea/not feasible.<p>* Edit: based off this link it seems that staffing is only 12% of costs which would not address my criteria of significantly cheaper flights.
<a href="https://aviation.stackexchange.com/questions/33770/how-much-of-an-airlines-costs-are-labor-costs" rel="nofollow">https://aviation.stackexchange.com/questions/33770/how-much-...</a></p>
]]></description><pubDate>Sun, 11 Dec 2022 01:53:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=33939187</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=33939187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33939187</guid></item><item><title><![CDATA[New comment by gkiely in "The ability to reset your iCloud password with a keycode is a security flaw"]]></title><description><![CDATA[
<p>After much digging, here is a way to prevent account changes from the device.<p>Steps:<p>1. Settings > Screen time > Use screen time pass code > Enter a different passcode to your main one that you will remember<p>2. Settings > Screen time > Content & Privacy Restrictions > Scroll down to Account changes > Don’t allow<p>This prevents account changes from the device, unless you have the second passcode.<p>This would not prevent a thief who was aware of this (they could attempt to disable screen time then request the second passcode), but it would prevent a pickpocket who happens to see your passcode being entered from changing your iCloud account details.</p>
]]></description><pubDate>Mon, 14 Nov 2022 23:01:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=33602627</link><dc:creator>gkiely</dc:creator><comments>https://news.ycombinator.com/item?id=33602627</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33602627</guid></item></channel></rss>