MurphyA/hacker-news huggingface dataset:
by pkhodiyar | 2025-09-04 15:45:24+00:00
We've been using CustomGPT.ai's RAG API for client projects but kept rebuilding the same UI components. Today we're open-sourcing our complete implementation (think ChatGPT interface open sourced).

No vendor lock-in. No telemetry. No "premium" features.

We built this because we needed it. We're sharing it because you need it too.

What does it mean to you? 1. Free and Ready to use UI like ChatGPT with Voice 2. 100% Customizable for you to build on top of it 3. Dev community to fix bugs and feature requests 4. Why create RAG from scratch when you can use free templates?

Technical details: 1. Next.js 14 + TypeScript + Zustand for state 2. Proxy architecture keeps API keys server-side 3. Proper SSE streaming with cleanup and error boundaries 4. Voice: OpenAI Whisper STT + TTS (6 voices) 5. Three deployment modes: widget.js bundle, iframe, or standalone 6. PWA support with service worker 7. Dark mode + full mobile responsiveness.

Interesting challenges solved: 1. Concurrent message streams without memory leaks 2. Widget state isolation when multiple instances on the same page, 100% customizable. 3. CORS handling for cross-domain embedding 4. Citation preview just like ChatGPT

Deployment options: 1. Vercel/Netlify (one-click) 2. Railway/Render 3. Docker 4. Google Apps Script (single file, 20k req/day free for select social RAG AI bots)

Also includes 9 social platform bots (Slack, Discord, Telegram, etc.) that connect to the same CustomGPT.ai backend.

Code: github.com/Poll-The-People/customgpt-starter-kit

Demo: starterkit.customgpt.ai (10-min free trial or BYO key)

MIT licensed. No telemetry. No premium tiers.

We built this for ourselves but figured others might find it useful. Feedback welcome.
by CGMthrowaway | 2025-09-04 15:45:33+00:00
In Japanese (注意を払う), you pay attention, much like in English. However, the verb 払う also means "to sweep away" or "to clear" suggesting a sense of effort or focus in clearing distractions to direct attention

In Korean 신경 쓰다 literally means "to use nerves." The idea of investing mental energy into something

In Finnish, you fasten or attach attention (kiinnittaa huomiota)
by freedomben | 2025-09-04 15:45:39+00:00
Same. I love vim and have no plans to leave, but I have no interest in being on the upgrade treadmill when my current system isn't broken. I've also had plugin updates break stuff, and it's a simple rollback in git back to a working state. I'm not sure how hard that is with these various plugin managers, but it's quite simple with git and I don't have to learn yet another tool/way of doing things.
by justinrubek | 2025-09-04 15:46:04+00:00
In my experience, wordpress is very confusing for non-technical people to navigate. It is largely not different than a "custom" setup because it's always some patched together job of various plugins to the point that it becomes brittle and difficult to work with. I get the sense that technical people think it is more straightforward and prescribe it to people, but any non-technical person I've worked with is utterly lost in it.

I don't think the LLMs change the argument either. If anything, dealing with the complexities of wordpress could make it even more difficult without someone who knows what they're doing.

Somewhere around 15 years ago, I thought wordpress was viable, but I think we need to leave it in the dust. I worked with it again 5 years ago, and the situation was no different from what I could tell.
by Eggpants | 2025-09-04 15:46:14+00:00
I went into EE wanting to learn how to design CPU’s and thought the analog side would be boring.

However, control theory turned out to be my favorite class. Learning how negative feedback loops are everywhere was an eye opener.

Also learning Laplace transforms was one of my first “holy shit this is freaking clever and cool” moments. Just like how parity bits in data streams can be used to detect AND correct errors.
by fl7305 | 2025-09-04 15:46:33+00:00
> What Stallman did a decade later was great if you happened to have access to the type of computer that could run Emacs. Even then, you probably didn't own the machine and maybe even had to pay for time on it by the hour. The small machines that ran Microsoft Basic were in people's homes.

No, a decade later was at the end of the 1980's. At that time, many middle class families could afford home computers like the Atari ST, which could run many of the GNU compilers/tools.

It was a great learning experience porting Unix apps and games to the ST.
by djoldman | 2025-09-04 15:46:39+00:00
Getting LASIK never made sense to me given the risks.

Essentially, take a very very low risk of permanent eye problems to not have to wear contact lenses.

I'd rather pay for contact lenses forever, put them in, and take them out every day than risk anything to my vision.

Obviously contacts have risks as well but infinitesimal if used correctly.
by thegrim33 | 2025-09-04 15:46:40+00:00
"LLMs can get me up to speed on new APIs and libraries far faster than I can myself, a gigantic speedup"

Just a random personal anecdote I wanted to throw out. I recently had to build some custom UI with Qt. I hadn't worked with Qt in a decade and barely remembered it. Seems like a perfect use case for AI to get me "up to speed" on the library, right? It's an incredibly well documented library with lots written on it, perfect fodder for an AI to process.

So, I gave it a good description of the widget I was trying to make, what I needed it to look like and how it should be behave, and behold, it spit out the specific widget subclass I should use and how I should be overriding certain methods to customize behavior. Wow, it worked exactly like promised.

So I implemented it like it suggested and was seemingly happy with the results. Went on with working on other parts of the project, dealing with Qt more and more here and there, gaining more and more experience with Qt over time.

A month or two later, after gaining more experience, I looked back at what AI had told me was the right approach on that widget and realized it was completely messed up. It had me subclassing the completely wrong type of widget. I didn't need to override methods and write code to force it to behave the way I wanted. I could instead just make use of a completely different widget that literally supported everything I needed already. I could just call a couple methods on it to customize it. My new version removes 80% of the code that AI had me write, and is simpler, more idiomatic, and actually makes more sense now.

So yeah, now any time I see people write about how "well, it's good for learning new libraries or new languages", I'll have that in the back of my mind. If you don't already know the library/language, you have zero idea whether what the AI teaching you is horrible or not. Whether there's a "right/better" way or not. You think it's helping you out when really you're likely just writing horrible code.
by thewebguyd | 2025-09-04 15:46:53+00:00
> a real business model other than grow and sell out.

This is why I have problems trusting any new SaaS these days. The industry has changed from wanting to build a good product to wanting to grow fast and then exit, and typically the users get screwed.

You just can't trust that anything will stick around, so why bother adopting the tool in the first place, especially for anything that's not open source.
by lisper | 2025-09-04 15:46:59+00:00
> You can't rip apart that word into "auf" and "passen" and then individually translate them literally.

Sure, just like you can't separate "pay attention". Both are idiomatic. But you can separate "aufpassen" into "Paß auf". (For the benefit of non-German lurkers, "Paß auf" is a command to pay attention.)
by samurai_sword | 2025-09-04 15:47:00+00:00
You are absolutely right. I work as Robotics Engineer at autonomous company. I use cursor and currently using gpt-5-high for coding. When I started out coding for my project 3 years ago there was no AI coding. I had to learn how to code by reading lots of docs and reading lots & lots of code(nav2 stack). This gave me the sense of how code is architected, why it is the way it is, etc. I also try to not blindly follow any code I see but every single piece of code I critically ask lots of questions(this made me crazy, good kind). This helped me to learn extremely fast. So the point is "everyone must know when their brain is being used and when not. If your brain is not being used at anytime of a project then you are probably out of loop".

The thing about AI is when it started out(coding models) they were kinda bad. But I feel any tool that provides value to time or effort is a useful tool. I use AI now mostly to add some methods, ask questions about the code base and brainstorm ideas against that code base. There are levels on how you use this tool(AI).

1. Complete trust(if its easy task and you can verify quickly). 2. medium trust( you ask questions back to AI to critically understand why it did what it did). 3. zero trust.(this is very important for learning fast, not coding. You need to stress AI to give me lots of information, right or wrong, cross-check it manually and soak it in your brain carefully. Here you will know whether that AI is good or bad.)

Conclusion: We are human beings. Any tool must be used with caution, especially AI that is capable of playing tricks with your precious brain. Build razor sharp instincts and trust them ONLY.
by michaelcampbell | 2025-09-04 15:47:02+00:00
> Suppose there are a million doors,...

This is a common way to explain it, but I always found it less intuitive; not sure why.

My go to thought experiment along these lines is rather this:

Adjust the game to where both you and your friend are playing at the same time. You _NEVER_ switch doors, and your friend _ALWAYS_ does, when given the choice by Monty.

Since you never switch, no matter what Monty does you know you're going to win 1/3 of the time. Since you both know Monty is always going to show a "goat" door, ONE of you must win, so your friend MUST WIN ALL THE TIMES YOU DO NOT. Since you win 1/3 of the time, the wins "left" is 2/3 of the time.
by corimaith | 2025-09-04 15:47:03+00:00
As somebody who aced calculus, what I was effectively doing was just being a human calculator mindlessly applying memorized differentiation and integration rules to get desired result. No real thinking or problem solving, which begs the question of why bother really teaching kids to be machines when machines can do such task. I would imagine the difficulty others had was more due to the way the topic was approached/framed rather than their executive ability to do predetermined tasks.
by starkparker | 2025-09-04 15:47:16+00:00
> I have not looked at PMTiles, so far everything holds nicely generated in memory

For a planet-scale project that I worked on, a multi-layer PMTiles set generated from GeoJSON by Tippecanoe reduced the amount of storage needed by about 60% vs. MVT, at the cost of a longer build time. Result was a single file served by MapLibre on a static web server, no tileserver needed.

The storage savings allowed us to add 3 additional zoom levels on the same cheap, storage-constrained VPS host that ran the web server. We considered moving it to S3, which would be much easier with PMTiles since it's just a single file, but it would've only cost us more money and we didn't need edge caching.

I'd link to the project but it'd be a waste of time vs. reading the two-step process to generate in the PMTiles docs: https://docs.protomaps.com/pmtiles/create#tippecanoe

And the 4-LOC installation process of the PMTiles library for MapLibre: https://docs.protomaps.com/pmtiles/maplibre
by justinrubek | 2025-09-04 15:48:15+00:00
In every experience I've had, non-technical people have had a terrible time doing customizations. Not a single time have I ever seen them successfully navigate customizing pages without someone else stepping in. I see this as the worst case scenario: non-technical people can't do it and technical people also can't because they only have subpar tools to do so. I disagree wholeheartedly with this assumption.
by Ukv | 2025-09-04 15:49:08+00:00
> Pointing out an egregious case of advertising that does not deliver a net positive does not disprove that point.

Coke/Pepsi were your own examples. I don't believe there are just a limited number of bad cases in an otherwise good system, but rather that at it's core is a huge zero-sum game of burning resources to take market share back and forth, with even the non-zero-sum impacts (people hearing more about sugary drinks instead of other things, and consuming more sugary drinks than they otherwise would) being of questionable value in most cases (in some cases potentially good, but still disproportionately small benefit compared to resource wastage).

I think it's similar to Bitcoin mining as an example of what happens when competition is not directed towards a useful end like improving the product.

> But from that extrapolating that all advertising is bad and calling all jobs related to it as useless is excessive.

A job working on serving web ads is almost guarenteed to be a net negative to society in my eyes.

I wouldn't really consider someone writing a travel blog to be working in advertising (unless they get paid to push certain destinations) and I don't think anyone here's claiming that to be useless.
by tempfile | 2025-09-04 15:49:22+00:00
It is not hard to understand (which is not to say you have to agree with it). It merely puts a significant weight on the intent and expected outcome of the speech. In the case of screaming "I love bacon" at a Muslim it is obvious that the intent is to make people feel unwelcome and probably intimidated, which is not excusable. In this case it is an understandable, if not ideal, emotional reaction to a heated situation.
Show HN: I built FlipCards – a flashcard app with variations to improve learning
by felipefreitasa_ | 2025-09-04 15:49:52+00:00
Hi HN, I’m Felipe, a 9-5 developer aiming to become a full-time indie hacker. I struggled with flashcard apps that focus on decorating cards instead of learning concepts, so I built FlipCards to solve that problem.

What it does: FlipCards lets you:

- Create cards for any concept (math, language, coding, etc.) - Add multiple variations per card – the more variations, the better your understanding - Study smarter – the algorithm randomly selects variations so you can’t just memorize Q→A patterns

Why it’s different:

- Most apps use reverse cards (Q→A, A→Q). FlipCards uses variations to reinforce concepts in multiple contexts. - Powered by the SM2 spaced repetition algorithm, scientifically proven for long-term retention.

Pricing:

- Free – 1 deck, 3 cards, 1 study session - Annual – $20/year for unlimited decks and cards - Lifetime – $50 one-time for unlimited everything

I built FlipCards because I kept getting stuck decorating cards in other apps. Now I can create as many variations as I want, and the algorithm mixes them for me.

I’d love feedback from the HN community:

- Does this approach to flashcards make sense? - Would you use an app like this for learning?

Try it here: https://flipcardsapp.vercel.app

Thanks, Felipe
by al_borland | 2025-09-04 15:49:56+00:00
Same. Old business models make more sense to me and seem healthier for customers, employees, and the economy. Growth at all costs, with the goal of a quick and profitable exit only benefits the founders, and is generally a net loss for society as a whole.

I can’t say I’d be above taking the briefcase full of money when dangled in front of my face, but when that’s the goal from the outset, the incentive structure feels backward.
by petsfed | 2025-09-04 15:50:02+00:00
The actual electrical engineering involved there is the sort of thing that an early-career engineer could bang out in an afternoon. Maybe a day or so for the PCB designer. The more time consuming part might be managing the regulatory compliance testing.

Most of the orgs I worked in building simple circuit blocks connected to a microcontroller either farmed out the actual EE work to contractors or design houses or had 1 EE for like 20 different projects.
by kstrauser | 2025-09-04 15:50:29+00:00
Good point about the hashing. Python does the right thing by making you select the one you want when writing your own code. If it had a default option, make that SHA-256 so that all users get the strong one by default. But yes, if you’re not actually doing crypto stuff, say if you only want to see if two locally generated files have the same content, there are lots of much faster alternatives.
by orochimaaru | 2025-09-04 15:50:35+00:00
Polars is very nice. I’ve used it off and on. The option to write rust udf’s for performance, easy integration of rust with Python with pyo3 will make it a real contender.

Yes, I know spark and scala exist. I use it. But the underlying Java engines and the tacky Python gateway impact performance and capacity usage. Having your primary processing engine in the same process compiled natively always helps.
by laurieg | 2025-09-04 15:50:45+00:00
There's something comforting about conversations with strangers. It gives me a feeling that we are all in this together.

One subtle effect of living as a visible minority is people assume you can't speak the local language. Even in minute everyday moments like stepping into a crowded elevator people avoid saying a few words. No one means any harm but it can feel surprisingly isolating. Almost like everyone else is in some grand linguistic conspiracy against you.
by mikewarot | 2025-09-04 15:50:46+00:00
My focus lately is on the cost side of this. I believe strongly that it's possible to reduce the cost of compute for LLM type loads by 95% or more. Personally, it's been incredibly hard to get actual numbers for static and dynamic power in ASIC designs to be sure about this.

If I'm right (which I give a 50/50 odds to), and we can reduce the power of LLM computation by 95%, trillions can be saved in power bills, and we can break the need for Nvidia or other specialists, and get back to general purpose computation.
Show HN: Prompt-to-proof: reproducible LLM eval with hash-chained receipts
by Qendresahoti | 2025-09-04 15:51:06+00:00
prompt-to-proof is an open-source toolkit to (1) measure LLM streaming latency and throughput and (2) run a small, reproducible code eval, with hash-chained receipts you can verify. It targets OpenAI-style /chat/completions (works with OpenAI or local vLLM/llama.cpp).
by GuB-42 | 2025-09-04 15:51:15+00:00
Nowadays, roguelike = permadeath + procedural generation, roguelite = roguelike with some elements that carry over the next game.

The actual roguelikes that look like Rogue: text based, turn-by-turn dungeon crawlers are often now called "traditional roguelikes".

At first glance, it looks like a traditional roguelike, but maybe some elements carry over, putting it in the "roguelite" territory.
by Bedon292 | 2025-09-04 15:51:42+00:00
I commend you for actually digging into it and trying to understand the format. I have used them plenty but hadn't really dug into their internals. As you are adding more data layers, it may be worth looking at Geoserver [1]. You can load the data in and let it handle the tile generation and caching. Even if you don't use it, the Vector Tiles extension [2] may be a useful reference for implementing it.

[1] https://geoserver.org/

[2] https://github.com/geoserver/geoserver/tree/main/src/extensi...
by thewebguyd | 2025-09-04 15:51:49+00:00
> there will be a big incentive to making their suite work better in that browser only. Or JIRA/Confluence features will be released using APIs only available there. It will be their EEE.

That just sounds like going back to making thick clients/desktop apps vs. web with extra steps. They might as well make their own native Jira app instead of making an entire web browser and breaking their web app to only work in their new browser.
by jcranmer | 2025-09-04 15:51:55+00:00
With Windows 3.1, you're probably talking about having to compile to the Win16 interface, which would be a bit of a challenge.

LLVM's x86 backend doesn't really support 16-bit compilation (the best it gets to is supporting 32-bit in a 16-bit code segment). There's also no support for the Win16-based object file formats. So you'd probably be best off creating your own entirely new backend for a Win16 environment... which probably is easier than you'd think, given that you could ignore anything more complicated than the actual Intel 386 or 486 ISA. (I've actually started sketching out what the IR for such a backend would look like, mostly in terms of LLVM address space mappings).

Win16 is also kind of hard to target for Rust because it's a segmented memory model, and Rust's pointer model doesn't really cope with that well--it only supports one pointer type, and also requires that sizeof(ptr) == sizeof(usize) which is questionable for far pointers. If you're writing your own backend, you could just map everything to huge pointers at the programmer level and have optimization passes that convert them down to far or near pointers if sufficient.

Or you could stuff all of that, and just make a 32-bit app and wrap it in a shell loader that thunks all of the OS calls to 16-bit calls and vice-versa.
by freedomben | 2025-09-04 15:51:56+00:00
I just wrote a simple bash script that has an array at the top with all the git remotes, and it iterates through them and git pulls (or clones if it doesn't exist yet). Took me like 10 minutes to write ~15 years ago and hasn't needed any changes. I can also trivially add a new entry to the array if I want to add a new plugin, or delete one if I'm not using it anymore. Then I also have a history of everything that changed so I can easily roll back if something breaks (which has happened several times)
by cma | 2025-09-04 15:52:11+00:00
I'm not talking about whole house but just for your kitchen sink, but ic a heavy metal one for the whole house is just $200 that's even better though, especially if they have kids who might drink from everywhere.

But most water for drinking/cooking is going to come from the kitchen sink and refrigerator, which if it is too expensive to plumb into the one for the sink you can disconnect and use ice trays.
by saratogacx | 2025-09-04 15:52:57+00:00
I pay for Mistral pro and it is cheaper than other options ($15/mo) and you get some free metered API usage which works with a lot of different Ai coding products. They frequently add features with little fanfare (this time is a bit of an exception).

I find them to be a pretty good over-all model although not at the bleeding edge. Their responses are very fast. Qwen is better with code/log analysis in my experience but general coding questions hasn't presented any problems.

Mistral's agent framework is pretty good too. You can make agents very easily with the le chat side or if you want to have more deep control, you get le platforme access and agents you make there can be used in le chat without costing against API usage.

Of the AI products I've been working with, and I've been trying a lot of them, Mistral is one I plan on keeping when I reduce myself down to 2-3 I want to stick around.