The best Hacker News stories from Show from the past day
Latest posts:
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: NextDNS Adds "Bypass Age Verification"
We just shipped a new feature in NextDNS: Bypass Age Verification.<p>More and more sites (especially adult ones) are now forcing users to upload IDs or selfies to continue. We think that’s a terrible idea: handing over government documents to random sites is a huge privacy risk.<p>This new setting workarounds those verification flows via DNS tricks. It’s available today to all users, including free accounts.<p>We’re curious how the HN community feels about this. Is it the right way to protect privacy online, or will it just provoke regulators to push harder?<p><a href="https://nextdns.io" rel="nofollow">https://nextdns.io</a>
Show HN: NextDNS Adds "Bypass Age Verification"
We just shipped a new feature in NextDNS: Bypass Age Verification.<p>More and more sites (especially adult ones) are now forcing users to upload IDs or selfies to continue. We think that’s a terrible idea: handing over government documents to random sites is a huge privacy risk.<p>This new setting workarounds those verification flows via DNS tricks. It’s available today to all users, including free accounts.<p>We’re curious how the HN community feels about this. Is it the right way to protect privacy online, or will it just provoke regulators to push harder?<p><a href="https://nextdns.io" rel="nofollow">https://nextdns.io</a>
Show HN: PgHook – Docker image that streams PostgreSQL row changes to webhooks
I needed real-time updates in a web UI whenever PostgreSQL table rows change, so I built PgHook. It's a 23 MB Docker image (10.1 MB compressed), .NET9 AOT-compiled, that streams logical replication events and sends them to a configurable webhook.<p>In my setup, the webhook converts events to SignalR messages that push updates to the UI.<p>I know about Debezium but I needed something minimal, and I like playing with csharp.
Show HN: Evaluating LLMs on creative writing via reader usage, not benchmarks
Hey HN! I'd love to get some people to mess around with a little side project I built to teach myself DSPy! I've been a big fan of reading fiction + webnovels for a while now, and have always been curious about two things: how can LLMs iteratively learn to write better based on reader feedback, and which LLMs are actually best at creative writing (research benchmarks are cool, but don't necessarily translate to real-world usage).<p>That's exactly why I built narrator.sh! The platform takes in a user input for a novel idea, then generates serialized fiction chapter-by-chapter by using DSPy to optimize the writing based on real reader feedback. I'm using CoT and parallel modules to break down the writing task, refine modules + LLM-as-a-judge for reward functions, and the SIMBA optimizer to recompile user ratings from previous chapters to improve subsequent ones.<p>Instead of synthetic benchmarks, I track real reader metrics: time spent reading, ratings, bookmarks, comments, and return visits. This creates a leaderboard of which models actually write engaging fiction that people want to finish.<p>Right now the closest evals for creative writing LLMs come from the author perspective (OpenRouter's usage data for tools like Novelcrafter). But ultimately readers decide what's good, not authors.<p>You can try it at <a href="https://narrator.sh" rel="nofollow">https://narrator.sh</a>. Here's the current leaderboard: <a href="https://narrator.sh/llm-leaderboard" rel="nofollow">https://narrator.sh/llm-leaderboard</a> (it's a bit bare right now b/c there's not that many users haha)<p>(Fair warning: there's some adult content since I posted on Reddit for beta testers and people got creative with prompts. I'm working on diversifying the content!)
Show HN: Lue – Terminal eBook Reader with Text-to-Speech
Shown HN: Lue - Terminal eBook Reader with Text-to-Speech<p>Hello,<p>Just went live on GitHub with this project.<p>I really enjoy listening to my eBooks as audiobooks but was frustrated by the available options. Converting books into audiobooks with scripts is tedious, and most tools stumble over footnotes, headers, or formatting. I wanted something simple: just throw a book at it, and it starts reading immediately without any clicking or loading.<p>I also wanted it to be customizable and modular because new, better TTS engines are released all the time. For this initial release, I settled on Edge and Kokoro because they’re both fast (real-time) and good quality. I’ve already made modules for Kitten TTS, Gemini and a few others, and they work too. So I hope this setup is future-proof.<p>Here’s what Lue supports:<p>Multi-format: EPUB, PDF, TXT, DOCX, HTML, RTF, and Markdown.<p>Modular TTS system: Default Edge TTS (online) and Kokoro TTS (offline/local), with an architecture to add more models.<p>Rich terminal UI: Full keyboard and mouse support, customizable color themes, smooth scrolling.<p>Smart persistence: Automatically saves reading progress across sessions.<p>Cross-platform & multilingual: macOS, Linux, Windows, supporting 100+ languages.<p>I’d love feedback on both usability and the TTS experience. Are there any features you wish it had?
Show HN: unsafehttp – tiny web server from scratch in C, running on an orange pi
Hey HN, I wanted to get more familiar with C programming, *nix socket programming and C compilation, so I wrote this "web" ""server"". It's running on a tiny SBC in my office, and there's as little as possible between you and it.<p>Happy for you to try and break it, hopefully with something more interesting than a DoS though :) Please let me know if you find any issues.
Show HN: unsafehttp – tiny web server from scratch in C, running on an orange pi
Hey HN, I wanted to get more familiar with C programming, *nix socket programming and C compilation, so I wrote this "web" ""server"". It's running on a tiny SBC in my office, and there's as little as possible between you and it.<p>Happy for you to try and break it, hopefully with something more interesting than a DoS though :) Please let me know if you find any issues.
Show HN: unsafehttp – tiny web server from scratch in C, running on an orange pi
Hey HN, I wanted to get more familiar with C programming, *nix socket programming and C compilation, so I wrote this "web" ""server"". It's running on a tiny SBC in my office, and there's as little as possible between you and it.<p>Happy for you to try and break it, hopefully with something more interesting than a DoS though :) Please let me know if you find any issues.
Show HN: Zig-DbC – A design by contract library for Zig
Hi everyone,<p>I've made an open-source library for using design by contract (DbC) principles in the Zig programming language.<p>It's called Zig-DbC, and it currently provides the following features:<p>- A simple API to define preconditions, postconditions, and invariants.<p>- Contracts are active in `Debug`, `ReleaseSafe`, and `ReleaseSmall` modes to catch bugs early.<p>- All checks are removed at compile time in `ReleaseFast` mode for zero performance cost.<p>- An optional mode to handle partial state changes in functions that return errors.<p>- Transparent error handling that propagates errors from your code to the caller.<p>Project's GitHub repo: <a href="https://github.com/habedi/zig-dbc" rel="nofollow">https://github.com/habedi/zig-dbc</a>
Show HN: Vaultrice – A real-time key-value store with a localStorage API
Hi HN,<p>I'm Adriano, one of the makers of Vaultrice. I'm excited (and a little nervous!) to share what we've been building.<p>For years, we found ourselves in a frustrating loop: whenever we needed a simple real-time feature—like a "who's online" list, a collaborative app, or just sharing state between a marketing site and our main app — we'd end up spending days setting up the same stack or discarded to do it. Setting it up, it always involved wiring together a database, a WebSocket server, an API, and managing the connection state. It felt like massive overkill for what we were trying to achieve.<p>We wanted a tool that felt as simple to use as the browser's `localStorage` API but worked across domains and devices, with real-time sync and security built-in.<p>So, we built Vaultrice.<p>It’s a key-value data store built on top of Cloudflare's Durable Objects, which gives you a strongly consistent backend for each data object. You interact with it through our TS/JS SDK, which comes in two flavors:<p>1. `NonLocalStorage`: A low-level client with a `localStorage`-like API (`setItem`, `getItem`, etc.) plus real-time events and presence (`.on()`, `.join()`).<p>2. `SyncObject`: A higher-level, reactive JavaScript Proxy. You just change a property on an object (`doc.title = 'New Title'`), and it automatically syncs to all other connected clients.<p>The goal is to let you build the real-time features you want in minutes, not days. We've also put a lot of thought into a layered security model, allowing you to go from simple API key restrictions all the way to server-signed object IDs and client-side E2EE.<p>We’ve just launched and would be grateful for any feedback from the HN community. What do you think of the API design? Are there use cases we haven't considered? Any thoughts on the security model?<p>We'll be here (or via email (support@vaultrice.com)) to answer any questions. Thanks for checking it out!
Show HN: MCP Security Suite
Hi HN!<p>We kept seeing devs get pwned through MCP tools in ways that security scanners completely miss. So we built an open-source analyzer to catch these attacks. Our first OSS by Mighty team.<p>The problem: At Defcon, we saw MCP exploits with 100% success rate against Claude and Llama. Three attack patterns:<p>Hidden Unicode in "error messages" - Paste a colleague's error into Claude, your SSH keys get exfiltrated
Trusted tool updates - That database tool you've used for months? Last week's update added credential theft
Tool redefinition - Malicious tool redefines "deploy to prod" to run attacker's script<p>Traditional scanners (CodeQL, SonarQube) catch <15% of these. They're looking for SQLi, not prompt injections hidden in tool descriptions.<p>What we built:
git clone <a href="https://github.com/NineSunsInc/mighty-security" rel="nofollow">https://github.com/NineSunsInc/mighty-security</a><p>python analyzers/comprehensive_mcp_analyzer.py /path/to/your/mcp/tool<p>Scans for prompt injection, credential exfil, suspicious updates, tool shadowing. Runtime wrapper adds <10ms overhead. Fully local, no telemetry.<p>Why this matters: 43% of MCP tools have command injection vulns. GitHub's own MCP server was exploitable. We found Fortune 500s running database-connected MCP tools that hadn't been audited since installation.
We went from paranoid code review to "AI said it works" in 18 months. The magic is real, but so are the vulnerabilities.<p>Demo: <a href="https://www.loom.com/share/e830c56d39254a788776358c5b03fdc3" rel="nofollow">https://www.loom.com/share/e830c56d39254a788776358c5b03fdc3</a><p>GitHub: <a href="https://github.com/NineSunsInc/mighty-security" rel="nofollow">https://github.com/NineSunsInc/mighty-security</a><p>Would love feedback - what MCP security issues have you seen?
Show HN: JMAP MCP – Email for your agents
I wrote this JMAP MCP server that adds email management tools to Claude for searching, reading, and sending emails through FastMail and other JMAP providers in Deno!
Show HN: JMAP MCP – Email for your agents
I wrote this JMAP MCP server that adds email management tools to Claude for searching, reading, and sending emails through FastMail and other JMAP providers in Deno!
Show HN: Prime Number Grid Visualizer
Hello HN. I made this simple little tool that let's you input rows and columns to create a grid, then it plots the grid with prime numbers.<p>I made it for fun, but I'd love suggestions on how I can improve it in any way. Thanks, love you.
Show HN: Prime Number Grid Visualizer
Hello HN. I made this simple little tool that let's you input rows and columns to create a grid, then it plots the grid with prime numbers.<p>I made it for fun, but I'd love suggestions on how I can improve it in any way. Thanks, love you.
Show HN: Prime Number Grid Visualizer
Hello HN. I made this simple little tool that let's you input rows and columns to create a grid, then it plots the grid with prime numbers.<p>I made it for fun, but I'd love suggestions on how I can improve it in any way. Thanks, love you.
Show HN: Edka – Kubernetes clusters on your own Hetzner account
Hi HN,<p>I’ve been working with Kubernetes for over a decade, since the alpha days, and was involved in kube-aws project before AWS launched EKS. For the past four years, I’ve been helping friends and small businesses cut costs by running Kubernetes on Hetzner Cloud, which I’ve found to be rock solid and by far the best priced provider.<p>Provisioning a cluster on Hetzner is now straightforward, thanks to tools like k3s and hetzner-k3s, but configuring it for your specific needs still takes time and expertise. I built Edka to make that part easy: spin up a production ready cluster in ~2 minutes, then choose how low level or automated you want to go.<p>How it works:<p>Layer 1 – Cluster provisioning
- Creates a k3s-based Kubernetes cluster on Hetzner (lightweight, easy to manage, scales well).<p>Layer 2 – Add-ons
- One-click deploy for metrics-server, cert-manager, and various operators; preconfigured for Hetzner, no extra setup needed.<p>Layer 3 – Applications
- Minimal config UIs for apps built on top of add-ons.
- Example: Need PostgreSQL? Fill a few fields → platform installs CloudNativePG → provisions HA PostgreSQL with PITR → gives ready to use endpoints. Backups can be restored to any point in time with a click. Quick demo: <a href="https://edka.io/apps/" rel="nofollow">https://edka.io/apps/</a><p>Layer 4 – Deployments
- Connect your CI to push container images to a public/private registry.
- Edka updates deployments automatically (with semantic versioning rules), supports instant rollbacks, autoscaling, persistent volumes, secrets/env imports, and quick public exposure. Quick demo: <a href="https://edka.io/deployments/" rel="nofollow">https://edka.io/deployments/</a><p>Tech stack: TypeScript, React + Tailwind CSS, PostgreSQL, Redis, BullMQ, Vault + AWS KMS to encrypted sensitive data.<p>The platform is still in beta and I’m building it in my spare time, so there are some rough edges, but I’d love feedback from anyone running Kubernetes on Hetzner, exploring alternatives to EKS/GKE/AKS or looking to automate their infrastructure with Kubernetes.<p>More details: <a href="https://edka.io/" rel="nofollow">https://edka.io/</a><p>Thank you!
Show HN: Edka – Kubernetes clusters on your own Hetzner account
Hi HN,<p>I’ve been working with Kubernetes for over a decade, since the alpha days, and was involved in kube-aws project before AWS launched EKS. For the past four years, I’ve been helping friends and small businesses cut costs by running Kubernetes on Hetzner Cloud, which I’ve found to be rock solid and by far the best priced provider.<p>Provisioning a cluster on Hetzner is now straightforward, thanks to tools like k3s and hetzner-k3s, but configuring it for your specific needs still takes time and expertise. I built Edka to make that part easy: spin up a production ready cluster in ~2 minutes, then choose how low level or automated you want to go.<p>How it works:<p>Layer 1 – Cluster provisioning
- Creates a k3s-based Kubernetes cluster on Hetzner (lightweight, easy to manage, scales well).<p>Layer 2 – Add-ons
- One-click deploy for metrics-server, cert-manager, and various operators; preconfigured for Hetzner, no extra setup needed.<p>Layer 3 – Applications
- Minimal config UIs for apps built on top of add-ons.
- Example: Need PostgreSQL? Fill a few fields → platform installs CloudNativePG → provisions HA PostgreSQL with PITR → gives ready to use endpoints. Backups can be restored to any point in time with a click. Quick demo: <a href="https://edka.io/apps/" rel="nofollow">https://edka.io/apps/</a><p>Layer 4 – Deployments
- Connect your CI to push container images to a public/private registry.
- Edka updates deployments automatically (with semantic versioning rules), supports instant rollbacks, autoscaling, persistent volumes, secrets/env imports, and quick public exposure. Quick demo: <a href="https://edka.io/deployments/" rel="nofollow">https://edka.io/deployments/</a><p>Tech stack: TypeScript, React + Tailwind CSS, PostgreSQL, Redis, BullMQ, Vault + AWS KMS to encrypted sensitive data.<p>The platform is still in beta and I’m building it in my spare time, so there are some rough edges, but I’d love feedback from anyone running Kubernetes on Hetzner, exploring alternatives to EKS/GKE/AKS or looking to automate their infrastructure with Kubernetes.<p>More details: <a href="https://edka.io/" rel="nofollow">https://edka.io/</a><p>Thank you!
Show HN: Edka – Kubernetes clusters on your own Hetzner account
Hi HN,<p>I’ve been working with Kubernetes for over a decade, since the alpha days, and was involved in kube-aws project before AWS launched EKS. For the past four years, I’ve been helping friends and small businesses cut costs by running Kubernetes on Hetzner Cloud, which I’ve found to be rock solid and by far the best priced provider.<p>Provisioning a cluster on Hetzner is now straightforward, thanks to tools like k3s and hetzner-k3s, but configuring it for your specific needs still takes time and expertise. I built Edka to make that part easy: spin up a production ready cluster in ~2 minutes, then choose how low level or automated you want to go.<p>How it works:<p>Layer 1 – Cluster provisioning
- Creates a k3s-based Kubernetes cluster on Hetzner (lightweight, easy to manage, scales well).<p>Layer 2 – Add-ons
- One-click deploy for metrics-server, cert-manager, and various operators; preconfigured for Hetzner, no extra setup needed.<p>Layer 3 – Applications
- Minimal config UIs for apps built on top of add-ons.
- Example: Need PostgreSQL? Fill a few fields → platform installs CloudNativePG → provisions HA PostgreSQL with PITR → gives ready to use endpoints. Backups can be restored to any point in time with a click. Quick demo: <a href="https://edka.io/apps/" rel="nofollow">https://edka.io/apps/</a><p>Layer 4 – Deployments
- Connect your CI to push container images to a public/private registry.
- Edka updates deployments automatically (with semantic versioning rules), supports instant rollbacks, autoscaling, persistent volumes, secrets/env imports, and quick public exposure. Quick demo: <a href="https://edka.io/deployments/" rel="nofollow">https://edka.io/deployments/</a><p>Tech stack: TypeScript, React + Tailwind CSS, PostgreSQL, Redis, BullMQ, Vault + AWS KMS to encrypted sensitive data.<p>The platform is still in beta and I’m building it in my spare time, so there are some rough edges, but I’d love feedback from anyone running Kubernetes on Hetzner, exploring alternatives to EKS/GKE/AKS or looking to automate their infrastructure with Kubernetes.<p>More details: <a href="https://edka.io/" rel="nofollow">https://edka.io/</a><p>Thank you!