Daily Show HN

Upvote0

Show HN for December 17, 2025

38 items
93

High-Performance Wavelet Matrix for Python, Implemented in Rust #

pypi.org faviconpypi.org
10 comments7:35 PMView on HN
I built a Rust-powered Wavelet Matrix library for Python.

There were surprisingly few practical Wavelet Matrix implementations available for Python, so I implemented one with a focus on performance, usability, and typed APIs. It supports fast rank/select, top-k, quantile, range queries, and even dynamic updates.

Feedback welcome!

92

Learn Japanese contextually while browsing #

lingoku.ai faviconlingoku.ai
56 comments12:50 AMView on HN
Hi HN,

Just wanted to share a tool i've been working on to help with my own study routine. It’s a browser extension called Lingoku.

The idea is simple: we spend hours browsing the web in English every day. This tool replaces some of the english words with Japanese vocabulary based on your japanese level (Similar to Toucan, but with a better user experience).

It’s basically an attempt to make the "i+1" method actually passive, you understand the sentence because it's mostly english, but you pick up Japanese words naturally from the context. It uses an LLM in the backend to make sure the translations fit the context (so it distinguishes between different meanings of the same word).

since it uses paid AI APIs for the words replacement, I couldn't make it 100% free (server costs are real, unfortunately). However, there is a "forever free" plan with daily credits that doesn't require a credit card. it should be enough for casual daily browsing.

I built this because I struggle with Anki burnout and wanted a way to review words without feeling like i am "studying"

It supports Chrome, Edge, and Firefox now. would love any feedback or feature requests!

https://lingoku.ai/learn-japanese

40

GitForms – Zero-cost contact forms using GitHub Issues as database #

gitforms-landing.vercel.app favicongitforms-landing.vercel.app
28 comments7:19 PMView on HN
got tired of paying $29–99/month for simple contact forms on landing pages and side projects (Typeform, Tally, etc.).So I built GitForms: an open-source contact form that stores submissions as GitHub Issues.How it works:Form runs on your Next.js 14 site (Tailwind + TypeScript) On submit → creates a new Issue in your repo via GitHub API You get instant email notifications from GitHub (free)

Zero ongoing costs:No database, no backend servers Deploy on Vercel/Netlify free tier in minutes Configurable via JSON (themes, text, multi-language)

Perfect for MVPs, landing pages, portfolios, or any low-volume use case.Repo: https://github.com/Luigigreco/gitforms License: CC-BY-NC-SA-4.0 (non-commercial only – fine for personal projects, not client work).Curious what HN thinks: would you use this? Any obvious improvements or edge cases I missed?Thanks!

28

MCPShark Viewer (VS Code/Cursor extension)- view MCP traffic in-editor #

0 comments6:19 PMView on HN
A few days ago I posted MCPShark (a traffic inspector for the Model Context Protocol). I just shipped a VS Code / Cursor extension that lets you view MCP traffic directly in the editor, so you’re not jumping between terminals, logs, and "I think this is what got sent".

VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=MCPShark...

Main repo: https://github.com/mcp-shark/mcp-shark

Feature requests / issues: https://github.com/mcp-shark/mcp-shark/issues

Site: https://mcpshark.sh/

If you’re building MCP agents/tools: what would make MCP debugging actually easy—timeline view, session grouping, diffing tool args, exporting traces, something else? I’d be thankful if you could open a feature request here: https://github.com/mcp-shark/mcp-shark/issues

21

Mephisto – A RAM-only, ad-free disposable email PWA built with React #

mephistomail.site faviconmephistomail.site
33 comments9:54 AMView on HN
Hi HN,

I built Mephisto because I was frustrated with the current state of disposable email services—most are riddled with intrusive ads, trackers, and captchas.

I wanted a tool that felt like a proper developer utility rather than a spam farm.

The stack is React, Vite, and Tailwind. Key architectural decisions:

1. Volatile Memory: The backend writes nothing to disk. Once a session terminates, the data is irretrievable. 2. Client-Side Entropy: The password generator runs locally in the browser; keys are never sent to the server. 3. PWA: It's installable and designed for low latency using WebSockets for incoming mail (no polling). 4. Mobile Handoff: You can transfer an active session to mobile via an encrypted QR code.

It is completely free and open for public use. I'd love to hear your feedback on the implementation and UI.

20

I wrote a small lib to turn a USB gamepad into a Bluetooth one #

github.com favicongithub.com
23 comments12:03 AMView on HN
I had two old USB gamepads lying around that I wanted to use, but my computer is too far from the couch, so I wrote a little ESP32-S3 firmware that turns USB gamepads into Bluetooth ones.

You connect your gamepad to the ESP32-S3 with an OTG cable, power the ESP32 with either 5V somehow or a powered USB hub, and now you can pair the controller via Bluetooth to your PC!

11

X Writer – Tweet from VS Code Without Distractions (BYOK, Open Source) #

github.com favicongithub.com
5 comments8:21 PMView on HN
Hi HN,

I built this extension because the context switching was killing my productivity. Every time I switched to the browser to share a coding update (#BuildInPublic), I ended up doomscrolling for 20 minutes and losing my flow.

Since existing extensions broke with the X API v2 changes, I decided to build my own solution focusing on privacy and the Free Tier limits.

How it works:

BYOK (Bring Your Own Keys): It uses your own API credentials.

Security: Keys are stored locally using vscode.SecretStorage (never in settings.json).

Limits: It implements a local counter to respect the strict 17 tweets/24h limit of the Free API tier.

Write-only: It intentionally doesn't read your timeline to keep you focused.

It's open source and my first extension. Feedback on the code structure is welcome!

Marketplace: https://marketplace.visualstudio.com/items?itemName=Jawuilp.... Repo: https://github.com/Jawuilp/X-writer

8

Planes.fyi – 3D aircraft and airport visualizations #

planes.fyi faviconplanes.fyi
2 comments6:14 PMView on HN
Hey HN!

A long time ago I built a map of trains at trains.fyi, and then realized nobody had bought planes.fyi - so this is my new map project.

It's a bunch of things, but mostly, a 3D map of aircraft around given airports, as well as the weather, ATIS, and other data sources visualized in 3D and unique ways.

Like most of the stuff I build, it's got no real use, but I think it's neat. If you like planes, check out the CYYZ/KJFK map, weather, and runway tabs - I put the most work into that.

Also any feature requests, questions, comments, etc are always appreciated!

7

Prompt-refiner – Lightweight optimization for LLM inputs and RAG #

github.com favicongithub.com
0 comments10:40 PMView on HN
Hi HN,

While building RAG agents, I noticed a lot of token budget was wasted on formatting overhead (HTML tags, JSON structure, whitespace). Existing solutions felt too heavy (often requiring torch/transformers), so I wrote this lightweight, zero-dependency library to solve it.

It includes strategies for context packing, PII redaction, and tool output compression. Benchmarks show it can save ~15% of tokens with negligible latency overhead (<0.5ms).

Happy to answer any questions!

6

Yet another tool to wrap agents in a loop #

github.com favicongithub.com
0 comments9:52 PMView on HN
I was randomly browsing claude codes ralph wiggum plugin[1] and was surprised to see my toy project referenced. Since it appears people are getting some value out of it, thought I'd share it here...

Full disclosure, this repo itself was built with a primitive ralph wiggum loop so expect AI slop. It works though. ¯\_(ツ)_/¯

https://mikeyobrien.github.io/ralph-orchestrator/

[1] https://github.com/anthropics/claude-code/tree/main/plugins/...

5

MDXport – Browser-Based Markdown to PDF Using Typst and WASM #

mdxport.com faviconmdxport.com
1 comments11:46 PMView on HN
Hi HN,

I built this because I was frustrated with existing Markdown-to-PDF converters. Most of them rely on HTML/CSS (puppeteer) which often messes up pagination and tables, or they require uploading data to a server (privacy concerns).

MDXport is a purely client-side tool.

The Stack: - Core: Typst (a modern LaTeX alternative) compiled to WebAssembly. - Privacy: Zero data leaves your browser. All rendering happens locally via WASM. - Feature: It handles page breaks and complex tables much better than standard CSS print drivers.

I also added some heuristics to automatically fix common formatting errors from LLM generated markdown (e.g., broken nested lists or overflowing tables).

It's currently an MVP. No sign-up required, free to use.

I'd love to hear your feedback on the rendering quality compared to Pandoc/LaTeX.

Link: https://www.mdxport.com

4

Modeling the US Debt as a Healthcare Pricing Failure ($26T Gap) #

taprootlogic.substack.com favicontaprootlogic.substack.com
2 comments6:53 PMView on HN
I spent the last month rebuilding the US federal budget from 1970–2024 to find the 'Taproot' of our fiscal collapse.

The math suggests we don't have a sovereign debt crisis; we have a pricing crisis.

I isolated federal healthcare spending and compared it to a baseline of CPI + a 1.7% 'Innovation Premium' (using Germany as a control group).

The findings: Federal healthcare overpayment accounts for $26T of our national debt. Without this 'Monopoly Premium,' the US would have barely 9T in debt today. The Structural Cause: I trace this back to the 1997 Residency Cap (supply freeze) and the 85% MLR (which turns insurers into cost-plus contractors)

I'm interested in the community's feedback on the 'Triple Multiplier' logic (Price + Innovation + Interest).

P.S. I'm currently hosting a deeper discussion on the policy implications of this data over on LinkedIn bit.ly/3YEv6kl

3

HN++ #

hnplusplus.vercel.app faviconhnplusplus.vercel.app
3 comments11:45 AMView on HN
I know many are happy with the HN frontend. I wrote this for fun and it turned out really useful so I published it. Here are the most important features:

- Rainbow indentation: This is inspired by the Rainbow CSV extension - comments of the same "depth" have the same colored stripe on the left.

- Native filters: Filter the various frontpages (Top, Show...) by upvote count or comment count. There is a "Controversial" (comment count > upvote count) filter too, if you want drama.

- Read later: Save comments and posts and revisit them through a bookmark menu. Saved to local storage.

- Collapsible sticky header: No need to scroll back up to see thread details and navigate to submitted link

- Infinite scroll: No pagination, you just continue scrolling.

- Styled quotes: Paragraphs starting with ">" are styled as a blockquote

- Reply as usual: You can click on Write reply and it takes you to the same page that would open in the regular HN UI

- Favicons: Helps my brain focus. Uses the DuckDuckGo favicon service + caching.

- Dark mode!

- "Open links in new tab": Especially useful on mobile. Can be toggled in the settings.

- Slightly more intuitive navigation? Atleast to me it makes more sense. Clicking a submission title, c2a button or comment count directs you to the thread. Clicking a submission link takes you to the link.

If you have any good ideas or see a bug, feel free to tell me

3

Obsidenc – a Rust-based paranoid-grade encryption utility #

github.com favicongithub.com
0 comments3:46 AMView on HN
obsidenc uses XChaCha20-Poly1305 with per-chunk authentication tags, so tampering is detected immediately. The Argon2id key derivation adapts to available memory (512 MiB to 2 GiB), adjusting iterations to maintain security on constrained systems per RFC 9106.

Sensitive data is locked in RAM (mlock/VirtualLock) to prevent swap exposure, and the zeroize crate clears secrets when done. Decryption verifies authentication before exposing plaintext and streams data to minimize memory exposure.

The parser strictly validates container format, uses constant-time comparisons, and rejects malformed inputs. Zip-bomb protection caps file counts at one million and path lengths at 4KB. Decryption uses staging directories with atomic rename on success, preventing partial extractions. Automatic cleanup runs on failure.

You can combine a password with an optional keyfile (up to 4 MiB). On Unix, the tool checks that keyfiles aren't world-readable. Keys are derived via HKDF with distinct domain strings, preventing reuse between encryption and nonce generation.

The design prioritizes security: no compression to avoid side-channels, symlink rejection, permission sanitization on extract, and a 20-character minimum password.

3

The feature gap "Chat with PDF" tuts and a regulated enterprise system #

gist.github.com favicongist.github.com
1 comments5:50 PMView on HN
I've spent the last few months architecting a RAG system for a regulated environment. I am not a developer by trade, but I approached this with a strict "systems engineering" and audit mindset.

While most tutorials stop at "LangChain + VectorDB", I found that making this legally defensible and operationally stable required about 40+ additional components.

We moved from a simple ingestion script to a "Multi-Lane Consensus Engine" (inspired by Six Sigma) because standard OCR/extraction was too hallucination-prone for our use case. We had to build extensive auditing, RBAC down to the document level, and a hybrid Graph+Vector retrieval to get acceptable accuracy

The current architecture includes:

Ingestion: 4 parallel extraction lanes (Vision, Layout, Text, Legal) with a Consensus Engine ("Solomon") that only indexes data confirmed by multiple sources

Retrieval: Hybrid Neo4j (Graph) + ChromaDB (Vector) with Reciprocal Rank Fusion

Performance: Semantic Caching (Redis) specifically for similar-meaning queries (40x speedup)

Security: Full RBAC, Audit Logging of every prompt/retrieval, and PII masking.

I documented the complete feature list and gap analysis

https://gist.github.com/2dogsandanerd/2a3d54085b2daaccbb1125...

My question to the community: Looking at this list – where is the line between "robust production engineering" and "over-engineering"?

For those working in Fintech/Medtech RAG: what critical failure modes am I still missing in this list?

3

1,400 Yiddish quotes with translations and transliterations #

amazon.com faviconamazon.com
0 comments1:14 PMView on HN
Hi everyone,

I helped my dad publish his yiddish quote book.

He was writing and collecting yiddish quotes in a private whatsapp group for 6 years.

I helped him by exporting his chat logs, and GPT APIs to translate and transliterate his quotes.

The quotes are ordered semantically as scored by https://huggingface.co/sentence-transformers/all-MiniLM-L6-v...

Originally, we wanted the quotes to be in categories & chapters, but so many of them transcend categories.

The semantic ordering is strange, but the flow felt right, which was neat.

2

WhatDayIsIt – Hover over any date to see the day of the week #

chromewebstore.google.com faviconchromewebstore.google.com
0 comments10:12 AMView on HN
Hi HN, I’m the author of WhatDayIsIt.

I built this because I kept running into dates on blogs, tickets, and documentation (e.g., "Due by Dec 25") and constantly had to switch context to open my calendar just to see what day of the week that falls on. I wanted a way to see that context without leaving the page.

The extension is lightweight (<50KB) and works by scanning the DOM for common date formats (ISO, US, EU). When it finds a match, it adds a subtle highlight. Hovering over the date reveals a tooltip with the day of the week (Monday, Tuesday, etc.).

If you have any feedback I would appreciate it!

2

CommerceTXT – llms.txt for e-commerce (95% token reduction) #

0 comments8:45 AMView on HN
Problem: AI agents waste 8,500+ tokens scraping HTML to find a product price. They hallucinate inventory and merchants have no control.

Solution: CommerceTXT - a read-only protocol that gives AI deterministic commerce data.

Result: 95% cost reduction, zero hallucinations, accurate pricing.

Why it matters: - AI platforms: Massive inference cost savings - Merchants: Control + reduced server load - Users: Accurate information, faster responses

Like llms.txt, but for commerce. Open standard (CC0), vendor-neutral. Status: v1.0.0 stable just released

Links: Spec: https://github.com/commercetxt/commercetxt/blob/main/spec/RE...

GitHub: https://github.com/commercetxt/commercetxt/

Seeking feedback from: AI engineers, e-commerce developers, merchants. What would make this more useful? How can we improve the format?

2

GhostStream – zero-config hardware-accelerated video transcoding #

github.com favicongithub.com
0 comments5:14 PMView on HN
Hi HN,

I built GhostStream while working on a self-hosted media server and wanting a simple way to offload video transcoding to whatever hardware was available on the network.

GhostStream is an open-source video transcoding server with:

- zero configuration startup

- automatic GPU / encoder detection (NVENC, QuickSync, AMF, VideoToolbox)

- live HLS streaming, ABR, and batch modes

- automatic fallback to CPU if hardware encoding fails

- a small HTTP + WebSocket API for progress updates

It’s designed to run locally (no cloud dependency) and works well as a sidecar for lightweight media servers.

If you want to see it working quickly, the repo includes a demo that starts a transcode from a public video URL and opens playback automatically:

    python examples/demo.py
I’m mainly interested in feedback on the API surface, hardware detection, and real-world transcoding edge cases.
2

brig – a devcontainer CLI in Go #

github.com favicongithub.com
0 comments6:17 AMView on HN
Hi, HN.

Elevator pitch: brig is a CLI for spinning up containers based on the devcontainers spec that validates configuration against said spec and aims to be an almost drop-in replacement for the official CLI tool.

The validation bit is really important to me personally; I want to keep on using the same devcontainer.json files my team is using, and I want any enhancements I can make to them still be usable in their VSCode environments.

---

I really like the idea behind devcontainers[1], and have pushed for my team to adopt them on pretty much all of our codebases. I also really like how they're nominally not married to VSCode (they're just containers with a few convenience features). For years I just relied on a simple shell script[2] to spin up a container based on the Containerfile/Dockerfile of the project.

It wasn't until recently that I began diving into the spec; when I did, I found pretty nifty features (e.g., lifecycle scripts) that would be kinda nice to have without having to add kludges to my little start-dev-container.sh script.

As an aside, it's been years since I've written anything more than shell and Python scripts (and even longer since I contributed anything to FLOSS). Since Go is pretty widely used in the tools I use (OpenTofu, Podman, Docker), I figured that's not a bad excuse to learn Go.

I put my interest in devcontainers and learning Go together, and here's the result.

While I wrote this for my own needs, I hope someone else would find utility in it.

[1]: https://containers.dev

[2]: https://github.com/nlsantos/brig/blob/38d4ae10557422c37af349...

2

Post2X – create, score, and schedule X/LinkedIn posts in one workflow #

post2x.com faviconpost2x.com
1 comments5:59 AMView on HN
Hello HN,

I’m the creator of Post2X. I recently left a 7-year career in Data Science and started to build my own tool.

The problem I faced was tool fragmentation. To do content marketing on social media, I was context-switching between LLMs for copy, meme databases for visuals, and Buffer for scheduling. It was inefficient.

I built Post2X to unify this entire stack into one flow. My internal benchmark is to create and schedule 100+ posts in under 1 hour, allowing me to batch my content marketing work and get back to coding.

How the workflow achieves that speed:

* Unified Drafting (Voice & Text): You provide the input/topics, and it generates drafts using a "Voice Mimicry" layer so the output sounds like you or the username you provided, not a generic bot.

* Integrated Visuals: No need to switch tabs to find images. You can generate images via prompt directly in the editor, or pull from trending memes to add context to your posts.

* Heuristic Scoring: Instead of guessing if a post is good, the tool grades drafts before you publish. Note: This isn't just historical regression; it scores text based on specific writing heuristics (Hook strength, Clarity, Replyability, Tension, and more).

* One-Tap Queueing: I removed the friction of manual scheduling dates. You set your "slots" once, and then push content to the queue (for both X and LinkedIn) with a single click.

Tech Stack: TypeScript, Tailwind CSS, Python, Supabase, OpenAI API, Gemini API, X API

It is free to try. (No credit-card required)

I’d love feedback on the ecosystem flow. Does the overall experience feel smooth and fast, or does anything slow you down or feel cluttered?

1

Better Gmail Tabs – turn search queries into tabs for fast email load #

chromewebstore.google.com faviconchromewebstore.google.com
0 comments3:49 AMView on HN
Github repo: https://github.com/jharohit/better-gmail-tabs

Given how we use widescreen aspect ratios today, a tab interface has been significantly more faster to separate out emails quickly!

~~~~~

Key Features:

- Custom Tabs: Create tabs for any Gmail label or search query.

- Seamless Integration: Tabs appear directly in the Gmail interface for quick access.

- Customization: Rename tabs and change their text/background colors to organize your workflow visually.

- Automatic Coloring: New tabs are automatically assigned unique, complementary color combinations (random background with high-contrast text) so you don't have to manually pick colors every time.

- Context Menu: Right-click any tab to rename, recolor, or delete it. Admin Panel: Click the settings gear icon to manage all your tabs in one place.

- Smart Navigation: Automatically detects if you are viewing a label or a search result when creating a tab.

- Export & Import: Backup your tab configurations or share them across devices using JSON files.

~~~~~~~~~

I was using a similar one called Gmail Tabs by CloudHQ but they charge now $2 per month (How dare they! But honestly shoutout to them for doing it first \m/).

So like all geeks I used Gemini 3.0 AI Vibe Code to redo it in ~4 hours (initial build) and launched on Google Chrome Store! Also added tons of features like local backup/restore with json, automated tab colors, ultrafast response due to localized css and no remote load, etc - things I wished the CloudHQ guys had!

If you get a lot of emails like me, please try it and let me know how it is. OR any features you want - project is open source so you can add yourself! I will try to merge back once every two weeks and launch on webstore.

OR let me know if you need anything on https://x.com/@jharohit

P.S. I got excited to do this also because I did another extension last year to just click "save" in Google AIStudio (when they didn't automatically save AIStudio chats!!). 4.5 Star Rating, 2.3k installs, 8k page views, 1.7k Weekly Active Users (as of Dec 2025). They have since fixed this but somehow I still have active users..

1

A netcat for the NAT era – connect peers via passphrase only #

gonc.cc favicongonc.cc
0 comments7:51 PMView on HN
Hi HN,

I’ve always found traditional nc frustrating when dealing with modern networks. It assumes one side has a reachable IP and a listening port—conditions rarely met when both peers are behind NATs, CGNATs, or firewalls. I built a Go-based netcat-style tool that enables ad-hoc P2P connections using only a shared high-entropy passphrase. No inbound ports, no known IPs, and no manual coordination required. Both peers just run the same command, e.g. nc -p2p <passphrase>

Practical example:

like a FRP alternative, no public server doing reverse-proxy, no exposed ports. For example, if you frequently need to reach 10.0.0.1:22 inside your company network, run this on any host inside the company LAN:

gonc -p2p <passphrase> -linkagent

Later, from home you can initiate a tunnel with the same passphrase:

gonc -p2p passphrase -link 3080;3080

After that, both sides can proxy to any IP:port on the peer LAN using the local SOCKS5 listener.

The "Magic" behind it:

Instead of a central relay or a complex VPN, it uses a three-stage handshake:

1. Rendezvous: The passphrase deterministically derives a unique MQTT topic and a self-signed TLS certificate/key pair.

2. Discovery: Both peers connect to a public MQTT broker (acting as a "bulletin board") to exchange STUN-discovered candidate addresses. The broker never sees the passphrase or the raw traffic.

3. Connectivity: It tries direct TCP first, then falls back to UDP hole punching. If the NAT is particularly "difficult," it uses a "birthday paradox" strategy (spraying 600+ ports) to force a collision.

4. Security: Once connected, the MQTT channel is dropped. All data flows P2P over mTLS. Since the TLS certs are derived from the secret, impersonation is impossible without the passphrase.

Key Features:

- No "Client" or "Server": Both sides run the exact same command.

- Zero Infrastructure: Uses public MQTT/STUN servers; no need to host your own signaling server.

- Familiar Interface: Supports stdin/stdout piping and -e for executing programs (like a p2p reverse shell or service portal).

- SOCKS5 Built-in: Can act as a persistent tunnel/agent to access internal LANs (FRP/NGROK alternative without the central proxy).

Why not just use Tailscale/Wireguard?

    Tailscale is great for a permanent mesh, but sometimes you just want to pipe a 500MB tarball or a quick shell to a friend's laptop right now without managing nodes, ACLs, or login providers. This is meant to be a "throwaway" secure pipe.
Looking forward to your thoughts!
1

I built RetroRTC A privacy-first,P2P retrospective tool /w no back end #

github.com favicongithub.com
0 comments8:40 AMView on HN
Hi HN, I built this because I believe retrospective data should belong to the team, so it runs entirely client side using WebRTC/BitTorrent for P2P sync. It was also an experiment in 'vibe coding' with AI to see if I could ship a robust, privacy-first app without a traditional backend. I’d love your feedback on the architecture and the offline-first approach!