<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: amortka</title><link>https://news.ycombinator.com/user?id=amortka</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 12:28:49 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=amortka" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Show HN: I'd never touched Swift. Built a Mac app in 4 weeks]]></title><description><![CDATA[
<p>Hey HN!<p>3-4 weeks ago I was trying to record a webinar for another side project. Screen recording, full screen presentation, talking through slides — should be simple.<p>Except I kept forgetting what I wanted to say. And every time I glanced at my notes, it was obvious on camera. Worse — when recording full screen, there's nowhere to put notes without them being captured.<p>Tried a few teleprompter apps. They either covered half my screen, scrolled at a fixed speed I couldn't match, or showed up in the recording.<p>So I thought: I've been a full-stack dev for 20+ years. Never touched Swift or SwiftUI. Can I actually build a native Mac app?<p>Turns out — yes. Took about 4 weeks of evenings and weekends. Claude helped me get past the Swift learning curve when I got stuck, but the architecture and problem-solving was mine.<p>What it does:
- Sits in the MacBook notch area (right below camera)
- Scrolls based on voice — speak and it moves, pause and it waits
- Invisible during screen sharing/recording (uses a specific NSWindow level that screen capture APIs ignore)
- Runs 100% locally, no cloud<p>The technically interesting bits:
- Voice detection uses just audio input, mic — just detecting audio levels, not transcribing
- The "invisible during screen share" trick is just the right window level + excluding from capture
- SwiftUI made the UI surprisingly fast to build coming from React/NodeJS<p>The biggest surprise: Launched on Product Hunt on Dec 31st. No prep, no audience, no hunter — just posted it myself. Hit #4 for the day, got into their newsletter (1M+ subs), 75 sales so far. Wild.<p>For a niche utility I built to scratch my own itch, this exceeded every expectation.<p>Curious if others here have jumped into unfamiliar stacks for side projects. How steep was the learning curve?<p>Site: notchie.app</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46512032">https://news.ycombinator.com/item?id=46512032</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 06 Jan 2026 13:35:50 +0000</pubDate><link>https://www.notchie.app/</link><dc:creator>amortka</dc:creator><comments>https://news.ycombinator.com/item?id=46512032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46512032</guid></item><item><title><![CDATA[New comment by amortka in "Show HN: My not-for-profit search engine with no ads, no AI, & all DDG bangs"]]></title><description><![CDATA[
<p>I’d be more convinced if the project explicitly scoped itself as “best possible frontend + governance model” first, and treated a custom index as an aspirational, separate phase.</p>
]]></description><pubDate>Mon, 29 Dec 2025 20:04:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46424889</link><dc:creator>amortka</dc:creator><comments>https://news.ycombinator.com/item?id=46424889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46424889</guid></item><item><title><![CDATA[New comment by amortka in "Show HN: Superset – Terminal to run 10 parallel coding agents"]]></title><description><![CDATA[
<p>The real bottleneck isn’t human review per se, it’s unstructured review. Parallel agents only make sense if each worktree has a tight contract: scoped task, invariant tests, and a diff small enough to audit quickly. Without that, you’re just converting “typing time” into “reading time,” which is usually worse. Tools like this shine when paired with discipline: one hypothesis per agent, automated checks gate merges, and humans arbitrate intent—not correctness.</p>
]]></description><pubDate>Mon, 29 Dec 2025 20:02:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46424868</link><dc:creator>amortka</dc:creator><comments>https://news.ycombinator.com/item?id=46424868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46424868</guid></item><item><title><![CDATA[New comment by amortka in "When someone says they hate your product"]]></title><description><![CDATA[
<p>The underrated trick here is separating “signal” from “status game.” Even hostile reviews often contain one actionable invariant (“this workflow is brittle”, “pricing feels dishonest”), and the rest is just the reviewer performing for an audience. If you respond only to the invariant (and maybe ask one concrete follow-up), you de-escalate without rewarding the theatrics — and you also create a public artifact future users can trust.</p>
]]></description><pubDate>Mon, 29 Dec 2025 20:02:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=46424852</link><dc:creator>amortka</dc:creator><comments>https://news.ycombinator.com/item?id=46424852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46424852</guid></item><item><title><![CDATA[New comment by amortka in "LLMs Are Not Fun"]]></title><description><![CDATA[
<p>There’s a third axis here besides “process vs result”: feedback loop latency. Hand-coding keeps the loop tight (think → type → run → learn), which is where a lot of the craft/joy lives. LLMs can either compress that loop (generate boilerplate/tests, unblock yak-shaves) or stretch it into “read 200 LOC of plausible code, then debug the one wrong assumption,” which feels like doing code review for an intern who doesn’t learn. The sweet spot for me has been using them to increase iteration speed while keeping myself on the hook for invariants (tests, types, small diffs), otherwise you’re just trading typing for auditing.</p>
]]></description><pubDate>Mon, 29 Dec 2025 20:00:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46424831</link><dc:creator>amortka</dc:creator><comments>https://news.ycombinator.com/item?id=46424831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46424831</guid></item><item><title><![CDATA[New comment by amortka in "HTML Attributes vs. DOM Properties"]]></title><description><![CDATA[
<p>well explained, good read.</p>
]]></description><pubDate>Thu, 25 Apr 2024 11:17:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=40156041</link><dc:creator>amortka</dc:creator><comments>https://news.ycombinator.com/item?id=40156041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40156041</guid></item></channel></rss>