每日 Show HN

Upvote0

2025年8月17日 的 Show HN

27 条
533

NextDNS Adds "Bypass Age Verification" #

198 评论2:29 PM在 HN 查看
We just shipped a new feature in NextDNS: Bypass Age Verification.

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.

This new setting workarounds those verification flows via DNS tricks. It’s available today to all users, including free accounts.

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?

https://nextdns.io

470

OverType – A Markdown WYSIWYG editor that's just a textarea #

99 评论4:13 PM在 HN 查看
Hi HN! I got so frustrated with modern WYSIWYG editors that I started to play around with building my own.

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.

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.

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.

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.

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!

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.

But those were tradeoffs I could live with.

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:

- Lists were hard to align - bullet points threw off character alignment. Solved with HTML entities (• for bullets) that maintain monospace width

- Not all monospace fonts are truly monospace - bold and italic text can have different widths even in "monospace" fonts, breaking the perfect overlay

- 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

The solution was obsessive normalization:

    // 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)
    })
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.

That experiment turned into OverType (https://overtype.dev), 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.

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.

I would love it if you would kick the tires and let me know what you think of it. Happy editing!

---

Demo & docs: https://overtype.dev

GitHub: https://github.com/panphora/overtype

259

Doxx – Terminal .docx viewer inspired by Glow #

github.com favicongithub.com
72 评论7:52 PM在 HN 查看
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!

What it does:

* View `.docx` files directly in your terminal with (mostly) proper formatting

* Tables actually look like tables (with Unicode borders!)

* Nested lists work correctly with indentation

* Full-text search with highlighting

* Copy content straight to clipboard with `c`

* Export to markdown/CSV/JSON

Why I made this:

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](https://github.com/charmbracelet/glow) but for Word documents.

The good stuff:

* 50ms startup vs Word's 8+ seconds

* Works over SSH (obviously)

* Preserves document structure and formatting

* Smart table alignment based on data types

* Interactive outline view for long docs

Built with Rust + ratatui and heavily inspired by Charm's [glow](https://github.com/charmbracelet/glow) package for viewing Markdown in the CLI (built in Go)!

    # Install
    cargo install --git https://github.com/bgreenwell/doxx
    
    # Use
    doxx quarterly-report.docx
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!
21

Chatbang – Access ChatGPT from the terminal without an API key #

github.com favicongithub.com
2 评论2:21 PM在 HN 查看
How does it work? Chatbang works by scraping ChatGPT's website. It opens ChatGPT on a headless session when you execute Chatbang and take your prompt and paste it in ChatGPT's prompt area and execute that prompt, then it waits for the response and copies it as a markdown format and then render it in the terminal.
19

RouteScout – A bike routing app that lets you love or hate hills #

8 评论11:14 PM在 HN 查看
Hi HN, I’m a high school student in Seattle who loves riding hills.

I found that route makers like Google Maps get you from point A to B on a bike, but they don’t give you fun routes. So i made my own

RouteScout lets you: - Control the surfaces (never gravel or dirt with a road bike!) on the route - Indicate your preference for hills (I LOVE or HATE hills gives you different routes) - Prefer routes with bike lanes and cycling paths and roads made for bikes. - Filter types of roads (big roads gone!) - And when looping around it won’t take you back on the same exact road on the way back

*Upcoming feature*: Being able to use your previous activities from Strava to give you the option to favor roads that you’ve never been on (or have been on).

The app is free forever (without selling daya). Try it here: https://routescout.tennisbowling.com

I wrote all of the routing, database, and logic (no AI) So if you end up running into any issues please email me at [email protected] and i’ll fix them asap.

6

RedactMyPDF.com - AI-assisted PDF redaction with human review #

redactmypdf.com faviconredactmypdf.com
1 评论11:29 AM在 HN 查看
Hi HN,

I built RedactMyPDF.com after struggling to manually redact a large legal PDF, and I found that existing tools were either expensive or clunky.

RedactMyPDF uses AI (Gemini) + OCR + human review to make redaction fast but safe:

Auto-detects sensitive info based on document context (names, addresses, IDs, etc.)

Full control to accept, reject, or add redactions

Works on scanned PDFs (OCR with Tesseract)

Secure & GDPR-compliant (AES-256, EU storage, one-click deletion)

Irreversible blackouts + metadata removal

Audit logs (CSV export for compliance)

Try it here: www.redactmypdf.com

Thanks!

4

Procrastinope, an open-source website blocker #

github.com favicongithub.com
0 评论2:58 AM在 HN 查看
I built Procrastinope, an open-source alternative to Cold Turkey Blocker that focuses on privacy.

Cold Turkey Blocker is fantastic, but I was frustrated that it required trusting closed-source software that can see effectively all activity on my computer.

The main differentiator for Procrastinope is transparency -- unlike proprietary blockers, you can inspect exactly what it's doing to your system. In short, it works by modifying `/etc/hosts` and includes several anti-bypass features:

- Challenge-protected controls (type random strings to disable blocks) - Auto-restart daemon to prevent killing the process - Anti-tamper logic which prevents manual edits to /etc/hosts config files - System-level blocking across all browsers

GitHub: https://github.com/danesherbs/procrastinope-public

4

DNC – A Decentralized Economic Protocol (No Blockchain) #

github.com favicongithub.com
0 评论5:16 PM在 HN 查看
I just released the open-source beta of DNC (DIAC NET CHAIN), a decentralized Python-based economic system with no global blockchain. Each peer acts as a wallet, miner, and validator, with LAN and WAN discovery, mining metrics, a basic GUI, reputation scoring, guardian-based recovery, and a working Proof-of-Storage demo. There’s also a compiled .exe for Windows. The repo is fully open—please fork it, test it, break it, and suggest or build improvements to the UI, peer protocol, recovery logic, or new features. Contributions to help stabilize and extend the core protocol are especially appreciated. GitHub: https://github.com/POlLLOGAMER/DNC-DIAC-NET-CHAIN
3

Promptproof – GitHub Action to test LLM prompts, catch bad JSON schemas #

github.com favicongithub.com
0 评论11:20 PM在 HN 查看
We kept breaking production with small prompt edits — suddenly outputs weren’t valid JSON, fields disappeared, or formats changed silently.

So we built Promptproof, a GitHub Action that runs in CI and blocks PRs when prompts produce invalid outputs.

Features:

- Validates JSON output

- Enforces required keys & schemas

- Runs fast in CI (no external infra)

- Works with OpenAI, Anthropic, and local models

- Adds PR comments so reviewers see failures immediately

We’d love feedback: which rules or integrations would make this most useful for you?

Repo: https://github.com/geminimir/promptproof-action

3

A simple site for Tao Te Ching And I Ching #

ichingdao.love faviconichingdao.love
0 评论7:42 PM在 HN 查看
Hi Hacker News:

A few months ago, I got really into Tao Te Ching and I Ching. The ideas inside stuck with me so much that I felt a real need to build something to share them. So, I made this: https://IChingDAO.Love

The goal is to create a simple, quiet place online where anyone can read and reflect without distraction. No ads, no analytics, no pop-ups—just the original texts and some interpretations.

I just launched it and would love to hear your thoughts.

3

Heicconvert.it – HEIC → JPEG, PNG, WebP or AVIF In-Browser (No Upload) #

heicconvert.it faviconheicconvert.it
0 评论7:46 PM在 HN 查看
I built heicconvert.it — a fast, private, and completely browser-based HEIC/HEIF image converter that supports output conversion to JPEG, PNG, WebP, or even AVIF.

Why I made it: - Photos from iPhones often come in HEIC format, which isn’t broadly supported everywhere. - Existing tools tend to require uploads, compromise privacy, or feel clunky. - I wanted a zero-friction, client-side tool where conversion happens instantly, in your browser, without ever touching a server.

Try it - https://www.heicconvert.it - No signup, no tracking, and no data is sent to anyone.

What’s inside: - Built entirely in-browser using WebAssembly and client-side APIs—so nothing gets uploaded :contentReference[oaicite:2]{index=2}. - Drag-and-drop / file picker, selection of output format, and instant conversion UI. - Future formats supported: JPEG, PNG, WebP, and AVIF :contentReference[oaicite:3]{index=3}.

Limitations: - Might be slower on very large files or older browsers. - AVIF output support is experimental and may vary.

I’d love feedback on: - UI clarity: is converting as easy to understand as it seems? - Browser compatibility—any weird failures on certain browsers or devices? - Any missing formats or quality options you’d like.

Happy to answer any questions — thanks for trying it out!

3

Predict when you'll be financially independent #

nesteggly.com faviconnesteggly.com
0 评论1:50 PM在 HN 查看
As a burnt-out software engineer, I occasionally fantasize about not needing to worry about holding on to my job. To this end, I've been working on a calculator to help me count down the date until I achieve financial independence. This past weekend I've improved upon the calculator such that it can more precisely predict the date, within tenths-of-a-year.

I know not everyone is a fan of forecasting, or may have concerns about the underlying methodology behind dynamic withdrawals. Fortunately for you, the underlying withdrawal strategy is available on ficalc.app, where you can run historical simulations to see how it would have performed in various scenarios throughout US history. Just select "Dynamic SWR" in the Withdrawal Strategy dropdown.

2

Website Emails Scraper, find emails on any site with API and CLI #

apify.com faviconapify.com
4 评论11:57 AM在 HN 查看
I built a small scraper that does one thing well. You pass URLs. It follows internal links and returns the emails it finds. Focus is speed and low noise.

Stack and guardrails: Crawlee + Cheerio. 15s timeout per page, 2 retries, cap at ~100 requests, deduped emails. Pulls from mailto and visible text. A typical site finishes in under 30s.

Output: JSON rows { url, email }. Export as CSV or pipe to your own thing.

Use it from code: API clients in JS and Python, OpenAPI, CLI, and an MCP endpoint. One token and a single call.

Pricing: pay per result. 5 dollars per 1,000 emails. You can try it free first.

What I want from HN: edge cases where it breaks, false positives you notice, limits that feel off. Sample sites welcome.

2

A catalog of single-file MCP servers build with C# #

github.com favicongithub.com
0 评论11:00 AM在 HN 查看
Since last week I played a lot with using new dotnet run app.cs feature, as well as Agents in Visual Studio and in terminal. And I found out that this feature works very good with MCP concepts

You basically could write whatever you need (like I did with image resizer), add it to .mcp.json and run it locally, no Docker containers or npm dependencies or anything else required. Each server is completely self-contained: everything from the MCP protocol implementation to the actual tools in one .cs file

So over the weekend I created open-source catalogue to collect cool and useful one-file MCPs and I welcome you to try to create some MCPs for your work and maybe share them with the world

2

Daily analysis of 9k GitHub repos using AI Coding Agents #

ai-coding.info faviconai-coding.info
0 评论7:56 PM在 HN 查看
I’ve been running a daily analysis of 9,000 GitHub repos across 30 programming languages, tracking how developers use AI coding agents.

Some interesting patterns: – TypeScript is consistently the top language paired with AI coding tools – Claude Code has actually overtaken GitHub Copilot in usage – Covers 16 agents across 30 languages

This is a personal project I built out of curiosity, updated daily: https://ai-coding.info/en

Curious what other signals people would want to see from the data.

1

I Made a Chess Game #

github.com favicongithub.com
0 评论11:25 PM在 HN 查看
# Da-Chess My attempt on a basic, in the works, chess game made in C++ and SFML 2.6.0!

--- ### Features - All pawn movements (includes even complex ones like en passant, castling & pawn promotion) - Basic evaluation system (takes into account material count, piece positioning and total available moves) - Basic timer (Automatically stops/starts based on the turn) - Piece sounds (boop, bap, pop)

--- ### Libraries used: - SFML 2.6.0