The best Hacker News stories from Show from the past week

Go back

Latest posts:

Show HN: I made an Animal Crossing style letter editor

I made a simple open-source letter editor inspired by Animal Crossing NH. Took me forever to look over each card, but I'm quite pleased with how it turned out. You can even click the bottle in the bottom right to see a random letter design shared by other users! Now to see how long it stays up...<p>Check out the source code here: <a href="https://github.com/IdreesInc/Animal-Crossing-Letter-Generator" rel="nofollow">https://github.com/IdreesInc/Animal-Crossing-Letter-Generato...</a>

Show HN: Hacker News em dash user leaderboard pre-ChatGPT

The use of the em dash (—) now raises suspicions that a text might have been AI-generated. Inspired by a suggestion from dang [1], I created a leaderboard of HN users according to how many of their posts before November 30, 2022—that is, before the release of ChatGPT—contained em dashes. Dang himself comes in number 2—by a very slim margin.<p>Credit to Claude Code for showing me how to search the HN database through Google BigQuery and for writing the HTML for the leaderboard.<p>[1] <a href="https://news.ycombinator.com/item?id=45053933">https://news.ycombinator.com/item?id=45053933</a>

Show HN: Sosumi.ai – Convert Apple Developer docs to AI-readable Markdown

I got tired of Claude hallucinating Swift APIs. It does a good job at Python and TypeScript, but ask it about SwiftUI and it's basically guessing.<p>The problem? Apple's docs are JavaScript-rendered, so when you paste URLs into AI tools, they just see a blank page. Copy-pasting works but... c'mon.<p>So I built something that converts Apple Developer docs to clean markdown. Just swap developer.apple.com with sosumi.ai in any Apple docs URL and you get AI-readable content.<p>For example:<p>- Before: <a href="https://developer.apple.com/documentation/swift/double" rel="nofollow">https://developer.apple.com/documentation/swift/double</a><p>- After: <a href="https://sosumi.ai/documentation/swift/double" rel="nofollow">https://sosumi.ai/documentation/swift/double</a><p>The site itself is a small Hono app running on Cloudflare Workers. Apple's docs are actually available as structured data, but Apple doesn't make it obvious how to get it. So what this does is map the URLs, fetch the original JSON, and render as Markdown.<p>It also provides an MCP interface that includes a tool to search the Apple developer website, which is helpful.<p>Anyway, please give this a try and let me know what you think!

Show HN: PageIndex – Vectorless RAG

Not all improvements come from adding complexity — sometimes it's about removing it.<p>PageIndex takes a different approach to RAG. Instead of relying on vector databases or artificial chunking, it builds a hierarchical tree structure from documents and uses reasoning-based tree search to locate the most relevant sections. This mirrors how humans approach reading: navigating through sections and context rather than matching embeddings.<p>As a result, the retrieval feels transparent, structured, and explainable. It moves RAG away from approximate "semantic vibes" and toward explicit reasoning about where information lives. That clarity can help teams trust outputs and debug workflows more effectively.<p>The broader implication is that retrieval doesn't need to scale endlessly in vectors to be powerful. By leaning on document structure and reasoning, it reminds us that efficiency and human-like logic can be just as transformative as raw horsepower.

Show HN: Turn Markdown into React/Svelte/Vue UI at runtime, zero build step

Show HN: A zoomable, searchable archive of BYTE magazine

A while ago I was looking for information on a obscure and short lived British computer.<p>I found an article[1] in the archives of BYTE magazine[2] - and was captivated immediately by the tech adverts of bygone eras.<p>This led to a long side project to be able to see all 100k pages of BYTE in a single searchable place.<p>[1]: <a href="https://byte.tsundoku.io/#198502-381" rel="nofollow">https://byte.tsundoku.io/#198502-381</a><p>[2]: <a href="https://news.ycombinator.com/item?id=17683184">https://news.ycombinator.com/item?id=17683184</a>

Show HN: I Built a XSLT Blog Framework

A few weeks ago a friend sent me grug-brain XSLT (1) which inspired me to redo my personal blog in XSLT.<p>Rather than just build my own blog on it, I wrote it up for others to use and I've published it on GitHub <a href="https://github.com/vgr-land/vgr-xslt-blog-framework" rel="nofollow">https://github.com/vgr-land/vgr-xslt-blog-framework</a> (2)<p>Since others have XSLT on the mind, now seems just as good of a time as any to share it with the world. Evidlo@ did a fine job explaining the "how" xslt works (3)<p>The short version on how to publish using this framework is:<p>1. Create a new post in HTML wrapped in the XML headers and footers the framework expects.<p>2. Tag the post so that its unique and the framework can find it on build<p>3. Add the post to the posts.xml file<p>And that's it. No build system to update menus, no RSS file to update (posts.xml is the rss file). As a reusable framework, there are likely bugs lurking in CSS, but otherwise I'm finding it perfectly usable for my needs.<p>Finally, it'd be a shame if XSLT is removed from the HTML spec (4), I've found it quite eloquent in its simplicity.<p>(1) <a href="https://news.ycombinator.com/item?id=44393817">https://news.ycombinator.com/item?id=44393817</a><p>(2) <a href="https://github.com/vgr-land/vgr-xslt-blog-framework" rel="nofollow">https://github.com/vgr-land/vgr-xslt-blog-framework</a><p>(3) <a href="https://news.ycombinator.com/item?id=44988271">https://news.ycombinator.com/item?id=44988271</a><p>(4) <a href="https://news.ycombinator.com/item?id=44952185">https://news.ycombinator.com/item?id=44952185</a><p>(Aside - First time caller long time listener to hn, thanks!)

Show HN: Sping – An HTTP/TCP latency tool that's easy on the eye

I've frequently found myself using [nvitop](<a href="https://github.com/XuehaiPan/nvitop" rel="nofollow">https://github.com/XuehaiPan/nvitop</a>) to diagnose GPU/CPU contention issues.<p>The two best things about it are:<p>- It's easy to install if I can access pip in the container<p>- It makes a compelling screenshot (which helps me communicate with coworkers.)<p>With those two lessons in mind: Here is Sping!<p>Purpose: Help observe and diagnose latency issues at layer 4+ (TCP/HTTP/HTTPS)<p>Two good things about it:<p>- It's easy to install if you have pip. (Available at [service-ping-sping](<a href="https://pypi.org/project/service-ping-sping/" rel="nofollow">https://pypi.org/project/service-ping-sping/</a>) on PyPi)<p>- It makes a compelling screenshot.<p>Not sure if this is the kind of thing that anyone else would be interested in. But I've enjoyed making it and intend to keep using it.

Show HN: Base, an SQLite database editor for macOS

I recently released v3 of Base, my SQLite editor for macOS.<p>The goal of this app is to provide a comfortable native GUI for SQLite, without it turning into a massive IDE-style app.<p>The coolest features are<p>- That it can handle full altering of tables, which is quite finicky to do manually with SQLite.<p>- It has a more detailed display of column constraints than most editors. Each constraint is shown as an icon if active, with full details available on clicking the icon.<p>This update also adds support for attaching databases, which is a bit fiddly with macOS sandboxing.<p>I'd love to hear any feedback or answer any questions.

Show HN: Clearcam – Add AI object detection to your IP CCTV cameras

This runs YOLOv8 + bytetrack with Tinygrad detections (depending on user config) are saved and can be sent to the companion iOS app along with a notification, all video processing is done locally, all footage is encrypted before leaving your computer, and the sending notifications + videos part is optional. This uses tinygrad, so it runs well on my apple silicon macs and should be able to run on a lot of hardware (or will be able to when I remove other deps).

How to build a coding agent

Show HN: JavaScript-free (X)HTML Includes

(spoiler: its XSLT)<p>I've been working on a little demo for how to avoid copy-pasting header/footer boilerplate on a simple static webpage. My goal is to approximate the experience of Jekyll/Hugo but eliminate the need for a build step before publishing. This demo shows how to get basic templating features with XSL so you could write a blog post which looks like<p><pre><code> <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="/template.xsl"?> <page> <title>My Article</title> <content> some content <ul> <li>hello</li> <li>hello</li> </ul> </content> </page> </code></pre> Some properties which set this approach apart from other methods:<p><pre><code> - no build step (no need to setup Jekyll on the client or configure Github/Gitlab actions) - works on any webserver (e.g. as opposed to server-side includes, actions) - normal looking URLs (e.g. `example.com/foobar` as opposed to `example.com/#page=foobar`) </code></pre> There's been some talk about removing XSLT support from the HTML spec [0], so I figured I would show this proof of concept while it still works.<p>[0]: <a href="https://news.ycombinator.com/item?id=44952185">https://news.ycombinator.com/item?id=44952185</a><p>See also: grug-brain XSLT <a href="https://news.ycombinator.com/item?id=44393817">https://news.ycombinator.com/item?id=44393817</a>

Show HN: OS X Mavericks Forever

Show HN: I was curious about spherical helix, ended up making this visualization

I was wondering how I can arrange objects along a spherical helix path, and read some articles on it.<p>I ended up learning about parametric equations again, and make this visualization to document what I learned:<p><a href="https://visualrambling.space/moving-objects-in-3d/" rel="nofollow">https://visualrambling.space/moving-objects-in-3d/</a><p>feel free to visit and let me know what you think!

Show HN: Fractional jobs – part-time roles for engineers

I'm Taylor, I spent about a year as a Fractional Head of Product. It was my first time not in a full-time W2 role, and I quickly learned that the hardest part of the job wasn't doing the Product work (I was a PM for 10+ years), it was finding good clients to work with.<p>So I built Fractional Jobs.<p>The goal is to help more people break out of W2 life and into their own independent careers by helping them find great clients to work with.<p>We find and vet the clients, and then engineers can request intros to any that seem like a good fit. We'll make the intro assuming the client opts in after seeing your profile.<p>We have 9 open engineering roles right now: - 2x Fractional CTO - 2x AI engineers - 3x full-stack - 1x staff frontend - 1x mobile

Show HN: Whispering – Open-source, local-first dictation you can trust

Hey HN! Braden here, creator of Whispering, an open-source speech-to-text app.<p>I really like dictation. For years, I relied on transcription tools that were <i>almost</i> good, but they were all closed-source. Even a lot of them that claimed to be “local” or “on-device” were still black boxes that left me wondering where my audio really went.<p>So I built Whispering. It’s open-source, local-first, and most importantly, transparent with your data. Your data is stored locally on your device, and your audio goes directly from your machine to a local provider (Whisper C++, Speaches, etc.) or your chosen cloud provider (Groq, OpenAI, ElevenLabs, etc.). For me, the features were good enough that I left my paid tools behind (I used Superwhisper and Wispr Flow before).<p>Productivity apps should be open-source and transparent with your data, but they also need to match the UX of paid, closed-software alternatives. I hope Whispering is near that point. I use it for several hours a day, from coding to thinking out loud while carrying pizza boxes back from the office.<p>Here’s an overview: <a href="https://www.youtube.com/watch?v=1jYgBMrfVZs" rel="nofollow">https://www.youtube.com/watch?v=1jYgBMrfVZs</a>, and here’s how I personally am using it with Claude Code these days: <a href="https://www.youtube.com/watch?v=tpix588SeiQ" rel="nofollow">https://www.youtube.com/watch?v=tpix588SeiQ</a>.<p>There are plenty of transcription apps out there, but I hope Whispering adds some extra competition from the OSS ecosystem (one of my other OSS favorites is Handy <a href="https://github.com/cjpais/Handy" rel="nofollow">https://github.com/cjpais/Handy</a>). Whispering has a few tricks up its sleeve, like a voice-activated mode for hands-free operation (no button holding), and customizable AI transformations with any prompt/model.<p>Whispering used to be in my personal GH repo, but I recently moved it as part of a larger project called Epicenter (<a href="https://github.com/epicenter-so/epicenter" rel="nofollow">https://github.com/epicenter-so/epicenter</a>), which I should explain a bit...<p>I’m basically obsessed with local-first open-source software. I think there should be an open-source, local-first version of every app, and I would like them all to work together. The idea of Epicenter is to store your data in a folder of plaintext and SQLite, and build a suite of interoperable, local-first tools on top of this shared memory. Everything is totally transparent, so you can trust it.<p>Whispering is the first app in this effort. It’s not there yet regarding memory, but it’s getting there. I’ll probably write more about the bigger picture soon, but mainly I just want to make software and let it speak for itself (no pun intended in this case!), so this is my Show HN for now.<p>I just finished college and was about to move back with my parents and work on this instead of getting a job…and then I somehow got into YC. So my current plan is to cover my living expenses and use the YC funding to support maintainers, our dependencies, and people working on their own open-source local-first projects. More on that soon.<p>Would love your feedback, ideas, and roasts. If you would like to support the project, star it on GitHub here (<a href="https://github.com/epicenter-so/epicenter" rel="nofollow">https://github.com/epicenter-so/epicenter</a>) and join the Discord here (<a href="https://go.epicenter.so/discord">https://go.epicenter.so/discord</a>). Everything’s MIT licensed, so fork it, break it, ship your own version, copy whatever you want!

Show HN: I built an app to block Shorts and Reels

I wanted to find a way to use Instagram without ending up scrolling for two hours every time I open the app to see a friend's story.<p>Most screen time apps I found focus on blocking the app itself instead of the addictive feed, so I created this app to allow me to keep using the "healthy" and "social" features and block the infinite scrolling (Reels)<p>After implementing the block on Instagram Reels, I got addicted to YouTube Shorts and Reddit feed. So, I extended the app to cover these as well.<p>To avoid replacing the scrolling for regular feeds, I also added a feature that shows a pop-up when I'm overscrolling in any app. It forces me to stop and think for a minute before I continue scrolling.<p>I built it on Android Studio, using Kotlin and Jetpack Compose for the UI. I use the Accessibility Service to detect scrolls and navigate out of them. Unfortunately, this only works for Android. There is no way (as far as I know) to do this on iOS.<p>I'd love to hear your thoughts

Show HN: Doxx – Terminal .docx viewer inspired by Glow

I got tired of open file.docx → wait 8 seconds → close Word just to read a document, so I built a terminal-native Word viewer!<p>What it does:<p>* View `.docx` files directly in your terminal with (mostly) proper formatting<p>* Tables actually look like tables (with Unicode borders!)<p>* Nested lists work correctly with indentation<p>* Full-text search with highlighting<p>* Copy content straight to clipboard with `c`<p>* Export to markdown/CSV/JSON<p>Why I made this:<p>Working on servers over SSH, I constantly hit Word docs I needed to check quickly. The existing solutions I'm aware of either strip all formatting (docx2txt) or require GUI apps. Wanted something that felt as polished as [glow](<a href="https://github.com/charmbracelet/glow" rel="nofollow">https://github.com/charmbracelet/glow</a>) but for Word documents.<p>The good stuff:<p>* 50ms startup vs Word's 8+ seconds<p>* Works over SSH (obviously)<p>* Preserves document structure and formatting<p>* Smart table alignment based on data types<p>* Interactive outline view for long docs<p>Built with Rust + ratatui and heavily inspired by Charm's [glow](<a href="https://github.com/charmbracelet/glow" rel="nofollow">https://github.com/charmbracelet/glow</a>) package for viewing Markdown in the CLI (built in Go)!<p><pre><code> # Install cargo install --git https://github.com/bgreenwell/doxx # Use doxx quarterly-report.docx </code></pre> Still early but handles most Word docs I throw at it. Always wanted a proper Word viewer in my terminal toolkit alongside `bat`, `glow`, and friends. Let me know what you think!

Show HN: OverType – A Markdown WYSIWYG editor that's just a textarea

Hi HN! I got so frustrated with modern WYSIWYG editors that I started to play around with building my own.<p>The problem I had was simple: I wanted a low-tech way to type styled text, but I didn't want to load a complex 500KB library, especially if I was going to initialize it dozens of times on the same page.<p>Markdown in a plain <textarea> was the best alternative to a full WYSIWYG, but its main drawback is how ugly it looks without any formatting. I can handle it, but my clients certainly can't.<p>I went down the ContentEditable rabbit hole for a few years, but always came to realize others had solved it better than I ever could.<p>I kept coming back to this problem: why can't I have a simple, performant, beautiful markdown editor? The best solution I ever saw was Ghost's split-screen editor: markdown on the left, preview on the right, with synchronized scrolling.<p>Then, about a year ago, an idea popped into my head: what if we layered a preview pane behind a <textarea>? If we aligned them perfectly, then even though you were only editing plain text, it would look and feel like you were editing rich text!<p>Of course, there would be downsides: you'd have to use a monospace font, all content would have to have the same font size, and all the markdown markup would have to be displayed in the final preview.<p>But those were tradeoffs I could live with.<p>Anyways, version 1 didn't go so well... it turns out it's harder to keep a textarea and a rendered preview in alignment than I thought. Here's what I discovered:<p>- Lists were hard to align - bullet points threw off character alignment. Solved with HTML entities (• for bullets) that maintain monospace width<p>- Not all monospace fonts are truly monospace - bold and italic text can have different widths even in "monospace" fonts, breaking the perfect overlay<p>- Embedding was a nightmare - any inherited CSS from parent pages (margin, padding, line-height) would shift alignment. Even a 1px shift completely broke the illusion<p>The solution was obsessive normalization:<p><pre><code> // The entire trick: a transparent textarea over a preview div layerElements(textarea, preview) applyIdenticalSpacing(textarea, preview) // Make textarea invisible but keep the cursor textarea.style.background = 'transparent' textarea.style.color = 'transparent' textarea.style.caretColor = 'black' // Keep them in sync textarea.addEventListener('input', () => { preview.innerHTML = parseMarkdown(textarea.value) syncScroll(textarea, preview) }) </code></pre> A week ago I started playing with version 2 and discovered GitHub's <markdown-toolbar> element, which handles markdown formatting in a plain <textarea> really well.<p>That experiment turned into OverType (<a href="https://overtype.dev" rel="nofollow">https://overtype.dev</a>), which I'm showing to you today -- it's a rich markdown editor that's really just a <textarea>. The key insight was that once you solve the alignment challenges, you get everything native textareas provide for free: undo/redo, mobile keyboard, accessibility, and native performance.<p>So far it works surprisingly well across browsers and mobile. I get performant rich text editing in one small package (45KB total). It's kind of a dumb idea, but it works! I'm planning to use it in all my projects and I'd like to keep it simple and minimal.<p>I would love it if you would kick the tires and let me know what you think of it. Happy editing!<p>---<p>Demo & docs: <a href="https://overtype.dev" rel="nofollow">https://overtype.dev</a><p>GitHub: <a href="https://github.com/panphora/overtype" rel="nofollow">https://github.com/panphora/overtype</a>

Show HN: OverType – A Markdown WYSIWYG editor that's just a textarea

Hi HN! I got so frustrated with modern WYSIWYG editors that I started to play around with building my own.<p>The problem I had was simple: I wanted a low-tech way to type styled text, but I didn't want to load a complex 500KB library, especially if I was going to initialize it dozens of times on the same page.<p>Markdown in a plain <textarea> was the best alternative to a full WYSIWYG, but its main drawback is how ugly it looks without any formatting. I can handle it, but my clients certainly can't.<p>I went down the ContentEditable rabbit hole for a few years, but always came to realize others had solved it better than I ever could.<p>I kept coming back to this problem: why can't I have a simple, performant, beautiful markdown editor? The best solution I ever saw was Ghost's split-screen editor: markdown on the left, preview on the right, with synchronized scrolling.<p>Then, about a year ago, an idea popped into my head: what if we layered a preview pane behind a <textarea>? If we aligned them perfectly, then even though you were only editing plain text, it would look and feel like you were editing rich text!<p>Of course, there would be downsides: you'd have to use a monospace font, all content would have to have the same font size, and all the markdown markup would have to be displayed in the final preview.<p>But those were tradeoffs I could live with.<p>Anyways, version 1 didn't go so well... it turns out it's harder to keep a textarea and a rendered preview in alignment than I thought. Here's what I discovered:<p>- Lists were hard to align - bullet points threw off character alignment. Solved with HTML entities (• for bullets) that maintain monospace width<p>- Not all monospace fonts are truly monospace - bold and italic text can have different widths even in "monospace" fonts, breaking the perfect overlay<p>- Embedding was a nightmare - any inherited CSS from parent pages (margin, padding, line-height) would shift alignment. Even a 1px shift completely broke the illusion<p>The solution was obsessive normalization:<p><pre><code> // The entire trick: a transparent textarea over a preview div layerElements(textarea, preview) applyIdenticalSpacing(textarea, preview) // Make textarea invisible but keep the cursor textarea.style.background = 'transparent' textarea.style.color = 'transparent' textarea.style.caretColor = 'black' // Keep them in sync textarea.addEventListener('input', () => { preview.innerHTML = parseMarkdown(textarea.value) syncScroll(textarea, preview) }) </code></pre> A week ago I started playing with version 2 and discovered GitHub's <markdown-toolbar> element, which handles markdown formatting in a plain <textarea> really well.<p>That experiment turned into OverType (<a href="https://overtype.dev" rel="nofollow">https://overtype.dev</a>), which I'm showing to you today -- it's a rich markdown editor that's really just a <textarea>. The key insight was that once you solve the alignment challenges, you get everything native textareas provide for free: undo/redo, mobile keyboard, accessibility, and native performance.<p>So far it works surprisingly well across browsers and mobile. I get performant rich text editing in one small package (45KB total). It's kind of a dumb idea, but it works! I'm planning to use it in all my projects and I'd like to keep it simple and minimal.<p>I would love it if you would kick the tires and let me know what you think of it. Happy editing!<p>---<p>Demo & docs: <a href="https://overtype.dev" rel="nofollow">https://overtype.dev</a><p>GitHub: <a href="https://github.com/panphora/overtype" rel="nofollow">https://github.com/panphora/overtype</a>

1 2 3 ... 146 147 148 >