Thursday, July 23, 2026

Show HN: Advanced Coffee Search Covering Over 17,000 coffees https://ift.tt/50JqN1K

Show HN: Advanced Coffee Search Covering Over 17,000 coffees https://ift.tt/jTHiady July 24, 2026 at 01:29AM

Show HN: Notebooker.ai – NotebookLM alternative, your own models, keys, storage https://ift.tt/DF0zQsG

Show HN: Notebooker.ai – NotebookLM alternative, your own models, keys, storage Hi HN. This is a personal side project I've been building for about six months on top of the open-source Open Notebook platform ( https://ift.tt/NVx0Ljv ). Notebooker saves the stuff you'd otherwise lose in tabs and bookmarks - links, PDFs, audio, video - and makes it useful later: chat with a notebook and get answers that cite the exact source, turn a reading list into a podcast episode (private RSS feed, works in any player), or generate study material from your own sources. The part I've had the most fun with is a plugin engine for creation types - flashcards, charts, infographics, mindmaps, textbooks, essays, slideshows, timelines, wikis are each plugins, and new ones can be added without touching the core. Everything I've built on top of open-notebook has either been submitted upstream as PRs or is open source at https://ift.tt/KAe5Nci . Decisions this crowd might care about: - Bring your own AI keys (OpenAI, Anthropic, local/OpenAI-compatible endpoints) or use the built-in defaults. I enjoy testing Cloudflare Worker AI models. Nothing you save is used for training. You can deploy you own OpenAI compatible endpoint to play with at https://ift.tt/zFBT5DC - Bring your own S3-compatible storage (R2, Spaces, AWS) if you want your files in a bucket you control. - Webhooks in and out — anything that can POST JSON can trigger a workflow, and workflows can POST anywhere. Notebook also processes incoming RSS feeds and generates its own - Export everything or delete your account with a click. There's a view-only demo notebook at https://ift.tt/IM6Rxjw . Happy to answer any questions. I'm expecting some hiccups in releasing, feel free to report bugs or feedback. https://notebooker.ai/ July 23, 2026 at 11:02PM

Show HN: Trifle – Open-source analytics that stores answers, not events https://ift.tt/NSs9B4j

Show HN: Trifle – Open-source analytics that stores answers, not events Trifle is an open-source time-series analytics library that aggregates nested counters instead of storing raw events. All in the database you already have. After rebuilding it twice over 10 years, it now tracks ~1B events a day at my day job. It started in 2015 as my own Rails APM. I plugged into ActiveSupport::Notifications, got a few small users, and one bigger one whose scraping app broke everything. That sparked the core idea: aggregate counters into pre-defined time buckets, so a single write increments multiple buckets at once. The APM eventually faded away without much traction. Later in 2021 I needed analytics at my day job. Instead of going for something out there I revised the idea of Trifle as a more generic analytics library, borrowing some data warehouse ideas. First used Redis, then Postgres, eventually MongoDB. Hence why Trifle::Stats comes with multiple drivers that keep the DSL unified while storage layer changes with your needs. In our case (huge write volume, some reads) PG read faster but slowed on large writes. The nested values are the whole trick here. Single: Trifle::Stats.track( key: 'requests::aws::s3_uploads', values: { count: 1, status: { request.response_code => 1 }, size: payload.bytes, duration: { sum: request.duration, count: 1 } } ) builds up counts for requests, success rate, result status codes, duration for multiple time buckets at once. Single bucket from 2am then looks like: { count: 14, status: { 200: 12, 500: 2 }, size: 5628341, duration: { sum: 43, count: 14 } } If request.duration is in seconds, then sum stored under duration would be in seconds as well. Success rate is never stored, but it is calculated by dividing 200s over total number of requests. Same with average duration: sum over count. You ask for a metrics key, granularity and timeframe and you get back aggregated values at each point. Ready for charts or to answer "Average response time over last 30 days". There's a Series wrapper for aggregating and formatting values for charts in a simple call. And as building dashboards is not as much fun for other devs as I thought, I built Trifle App - a visual layer with dashboards, scheduled digests and alerts. It's written in Elixir, so I ported the library to Elixir too. And later to Go for a CLI. All three are compatible, write in one and read in another. Today we track activity from over 100M background jobs a day which turns into about 1B events. It runs surprisingly cheap when you're willing to trade some safety away (turn off journaling and write concerns in Mongo). 3-node Hetzner MongoDB cluster where the primary does 20% utilization costs us around $1k/month. It has its limitations. Payloads can't hold tens of thousands of keys. Documents becomes too large to update efficiently. Some planning ahead is needed. And then there are no dimensions. Sometimes you can nest them (country - there are only so many countries), sometimes it's better to have dedicated metrics key per dimension (customer - growing forever). That multiplies tracked events, hence 1B events from 100M jobs. The libraries are MIT. The App is source-available under ELv2 - free to self-host and paid cloud if you want it managed. I build this on the side with no investor money to burn on a free service. Happy to answer anything about architecture, storage models, my failures or why I didn't give up on this yet. https://trifle.io/ July 22, 2026 at 06:39PM

Wednesday, July 22, 2026

Show HN: LiquidBrain – Unlimited Tokens. Unlimited Context. One Fixed Price https://ift.tt/lorKNI1

Show HN: LiquidBrain – Unlimited Tokens. Unlimited Context. One Fixed Price https://liquidbrain.ai/ July 23, 2026 at 12:59AM

Show HN: The Daily FM – Turn any source into a daily podcast https://ift.tt/SM7UNoL

Show HN: The Daily FM – Turn any source into a daily podcast I built The Daily FM because I wanted a daily summary of the latest AI news sent to my podcast app and then realized it was useful in summarizing other stuff: - Any blogs, websites, or X handles - The top Hacker News stories with comments - Long podcasts (think Lex Fridman) - Changes in state/federal legislation It pulls your sources, writes a script with a frontier-ish model of your choice, runs it through TTS (MAI-2 studio voices), and publishes a standard RSS feed. You can also combine several pods into one feed for one subscribe point. Under the hood it’s using Cloudflare Workers, queues, browser rendering, and the AI Gateway, but the TTS models aren’t very good on Cloudflare so I switched to the MAI-Voice-2 models with OpenRouter. I also created a public library you can subscribe to without ever signing up, or if you sign up, you can combine a bunch into a single feed and use your own sources as well and choose from other voice options if you don’t like “Excited Ethan” at 1.1x speed. Feedback welcome. https://thedaily.fm/ July 23, 2026 at 12:50AM

Show HN: Szr: A safer command output reduction for coding agents https://ift.tt/nsAXaVx

Show HN: Szr: A safer command output reduction for coding agents https://ift.tt/hf6EgPm July 22, 2026 at 10:03PM

Tuesday, July 21, 2026

Show HN: DocCharm – The help center that keeps itself up to date https://ift.tt/W6x5LFI

Show HN: DocCharm – The help center that keeps itself up to date Hello HN! We were finding it too much work to keep our Zendesk help center up to date as our product kept changing, so I built DocCharm — it keeps a help center up to date automatically by watching PRs as they land in your GitHub repository. It suggests updates (with AI) to existing articles, or drafts entirely new ones if nothing appropriate exists yet. Everything goes into a review queue first, so a human always checks (and can optionally edit) before anything publishes. In practice this has proven to be a pretty slick workflow (in my opinion anyway, but not only!). We’ve been using it at my main job for a while now and it’s a big time saver. It’s also gaining some traction with other companies in the same investor portfolio. My sales process so far has been high-touch outbound. This probably won’t scale in the long run, but I’m hoping to learn as much as I can by nurturing all of the initial relationships. If you run a business with a help center that’s drifting out of date, email me and I’ll comp your first couple of months. Email is in my HN profile. Both Zendesk and Mintlify help centers can already be automatically imported into DocCharm. If you use a different help center, let me know and I’ll get it automatically imported one way or another. I've also implemented some support for theming, so you can keep your own branding. The tech is essentially the same that I use for most of my work (and it's not a differentiator, but we're all tech-curious here): - Haskell/Yesod - NixOS - SQLite with Litestream (db per tenant; backed up on both Hetzner and Cloudflare; encrypted) - Sentry for error reporting - Stripe for billing - Healthchecks.io as a dead man’s switch - Prometheus and Grafana for telemetry - Resend for transactional email There's plenty still to do on the roadmap, but this is already working nicely and providing value as is. I'm not building in the open, though what I prioritise will naturally be heavily guided by the needs of the earliest users. WDYT? https://doccharm.com/ July 21, 2026 at 09:34PM