The best Hacker News stories from Show from the past day
Latest posts:
Show HN: I made an SSH tunnel manager to learn Go
Show HN: GoSQL – A query engine in 319 LoC
I've always been curious about how SQL engines actually work.<p>So I built a minimum viable SQL engine in Go.<p>- Supports CSV files as tables<p>- Supports SELECT, FROM, WHERE, LIMIT<p>It's very simple:<p>1. Parses query string<p>2. Converts it into an AST representation<p>3. Executes the query against the CSV<p>4. Returns the results
Show HN: ServerlessAI – Build, scale, and monetize AI apps without back end
Hello HN,<p>I’ve always loved building frontend-only apps—those you can prototype over a weekend, host for free on GitHub Pages, and scale to millions of users. Unfortunately, AI-enabled apps complicate things, as exposing your OpenAI key to the world is obviously a no-go. This also means mobile developers often have to run their own servers.<p>That’s why I built ServerlessAI, an API gateway that lets you securely call multiple AI providers directly from client side using OpenAI-compatible APIs. You can authenticate users through any identity provider, like Google or Apple, and set per-user request or spending quotas. You can also define an allowlist for endpoints and models. To monetize, you can apply different quotas for various user tiers.<p>To start, I recommend checking out our tutorials, where we walk you through building a complete, deployment-ready AI app in 5 minutes. We’ve got tutorials for React, Next.js, and iOS: <a href="https://serverlessai.dev/docs/tutorials/" rel="nofollow">https://serverlessai.dev/docs/tutorials/</a><p>Our long term vision is to offer the best toolkit for AI developers at every stage of their project’s lifecycle. If OpenAI / Anthropic / etc are AWS, we want to be the Supabase / Upstash / etc. We are building optional out-of-box tools for authentication and payment management, so you can roll out your prototype faster. In the future, we want to provide the best prompt engineering tools for fine-tuning, A/B testing, and backtesting, as well as the best observability tools.<p>We’d love to hear your feedback. Thanks for stopping by!
Show HN: ServerlessAI – Build, scale, and monetize AI apps without back end
Hello HN,<p>I’ve always loved building frontend-only apps—those you can prototype over a weekend, host for free on GitHub Pages, and scale to millions of users. Unfortunately, AI-enabled apps complicate things, as exposing your OpenAI key to the world is obviously a no-go. This also means mobile developers often have to run their own servers.<p>That’s why I built ServerlessAI, an API gateway that lets you securely call multiple AI providers directly from client side using OpenAI-compatible APIs. You can authenticate users through any identity provider, like Google or Apple, and set per-user request or spending quotas. You can also define an allowlist for endpoints and models. To monetize, you can apply different quotas for various user tiers.<p>To start, I recommend checking out our tutorials, where we walk you through building a complete, deployment-ready AI app in 5 minutes. We’ve got tutorials for React, Next.js, and iOS: <a href="https://serverlessai.dev/docs/tutorials/" rel="nofollow">https://serverlessai.dev/docs/tutorials/</a><p>Our long term vision is to offer the best toolkit for AI developers at every stage of their project’s lifecycle. If OpenAI / Anthropic / etc are AWS, we want to be the Supabase / Upstash / etc. We are building optional out-of-box tools for authentication and payment management, so you can roll out your prototype faster. In the future, we want to provide the best prompt engineering tools for fine-tuning, A/B testing, and backtesting, as well as the best observability tools.<p>We’d love to hear your feedback. Thanks for stopping by!
Show HN: Winamp and other media players, rebuilt for the web with Web Components
Hey all, creator of Video.js and co-founder of Mux & Zencoder here. My team and I built this. I hope you like the themes we’ve built so far, and maybe even get inspired to build your own.<p>I know Web Components are in a bit of a drama cycle right now. I’m happy to see them get any attention really. I’ve been pretty bullish on them since ~2013 when I started working with them, at least in the context of a <i>widget</i> like a video player. I’ve even given many related talks on them like this one (<a href="https://www.youtube.com/watch?v=N6Mh84SRoDg" rel="nofollow">https://www.youtube.com/watch?v=N6Mh84SRoDg</a>).<p>I would never push them for a large app or as a full replacement for React, but they’ve been incredible for making video players that are compatible across many contexts, and Player.style is a clear demonstration of that when you get to the step of embedding a theme. Web components really shine for building bits of UI that can be shared between projects. They also are the best way to avoid the long term JS framework thrash that’s a challenge for any developer who works on the web for long enough. One of the best decisions I ever made for Video.js was to <i>not</i> build it with jQuery. Video.js is 15 years old now and still in use, while all the jQuery players are not.<p>For some added context of this project, when I was building Video.js back in 2010 I put a lot of thought into how other developers would customize the player controls. I was excited to use web technologies (instead of Flash) to build a player and I <i>knew</i> other web devs would be too.<p>Fast forward 14 years — Video.js has been used on millions of websites including Twitter, Instagram, Amazon, Dropbox, Linkedin and even in United Airlines headrests. In 99.99% of those cases the default Video.js controls were used with little to no customization. So…huge adoption success, utter failure in sparking creativity. In retrospect, asking people to learn a new UI framework just to style their player was too much.<p>Media Chrome and Player.style are my answer to that friction.<p>- Media Chrome - A suite of Web Components and React Components that let you easily build a media player UI from scratch, using components you’re already familiar with.<p>- Player.stye - Themes built with Media Chrome, showing the cross-player and cross-framework flexibility of Media Chrome<p>Media Chrome is already used on sites like TED.com, Syntax.fm, and anywhere the Mux Player is used. We’ve spent the last few months building some great themes for Player.style. I probably had the most fun recreating the Youtube icon animations from scratch using SVGs and CSS. (Whoever made the originals, nicely done!)<p>It’s all free and open source, so don’t hesitate to jump in if you’re interested in the project. And of course I’m happy to answer any questions.
Show HN: Winamp and other media players, rebuilt for the web with Web Components
Hey all, creator of Video.js and co-founder of Mux & Zencoder here. My team and I built this. I hope you like the themes we’ve built so far, and maybe even get inspired to build your own.<p>I know Web Components are in a bit of a drama cycle right now. I’m happy to see them get any attention really. I’ve been pretty bullish on them since ~2013 when I started working with them, at least in the context of a <i>widget</i> like a video player. I’ve even given many related talks on them like this one (<a href="https://www.youtube.com/watch?v=N6Mh84SRoDg" rel="nofollow">https://www.youtube.com/watch?v=N6Mh84SRoDg</a>).<p>I would never push them for a large app or as a full replacement for React, but they’ve been incredible for making video players that are compatible across many contexts, and Player.style is a clear demonstration of that when you get to the step of embedding a theme. Web components really shine for building bits of UI that can be shared between projects. They also are the best way to avoid the long term JS framework thrash that’s a challenge for any developer who works on the web for long enough. One of the best decisions I ever made for Video.js was to <i>not</i> build it with jQuery. Video.js is 15 years old now and still in use, while all the jQuery players are not.<p>For some added context of this project, when I was building Video.js back in 2010 I put a lot of thought into how other developers would customize the player controls. I was excited to use web technologies (instead of Flash) to build a player and I <i>knew</i> other web devs would be too.<p>Fast forward 14 years — Video.js has been used on millions of websites including Twitter, Instagram, Amazon, Dropbox, Linkedin and even in United Airlines headrests. In 99.99% of those cases the default Video.js controls were used with little to no customization. So…huge adoption success, utter failure in sparking creativity. In retrospect, asking people to learn a new UI framework just to style their player was too much.<p>Media Chrome and Player.style are my answer to that friction.<p>- Media Chrome - A suite of Web Components and React Components that let you easily build a media player UI from scratch, using components you’re already familiar with.<p>- Player.stye - Themes built with Media Chrome, showing the cross-player and cross-framework flexibility of Media Chrome<p>Media Chrome is already used on sites like TED.com, Syntax.fm, and anywhere the Mux Player is used. We’ve spent the last few months building some great themes for Player.style. I probably had the most fun recreating the Youtube icon animations from scratch using SVGs and CSS. (Whoever made the originals, nicely done!)<p>It’s all free and open source, so don’t hesitate to jump in if you’re interested in the project. And of course I’m happy to answer any questions.
Show HN: Winamp and other media players, rebuilt for the web with Web Components
Hey all, creator of Video.js and co-founder of Mux & Zencoder here. My team and I built this. I hope you like the themes we’ve built so far, and maybe even get inspired to build your own.<p>I know Web Components are in a bit of a drama cycle right now. I’m happy to see them get any attention really. I’ve been pretty bullish on them since ~2013 when I started working with them, at least in the context of a <i>widget</i> like a video player. I’ve even given many related talks on them like this one (<a href="https://www.youtube.com/watch?v=N6Mh84SRoDg" rel="nofollow">https://www.youtube.com/watch?v=N6Mh84SRoDg</a>).<p>I would never push them for a large app or as a full replacement for React, but they’ve been incredible for making video players that are compatible across many contexts, and Player.style is a clear demonstration of that when you get to the step of embedding a theme. Web components really shine for building bits of UI that can be shared between projects. They also are the best way to avoid the long term JS framework thrash that’s a challenge for any developer who works on the web for long enough. One of the best decisions I ever made for Video.js was to <i>not</i> build it with jQuery. Video.js is 15 years old now and still in use, while all the jQuery players are not.<p>For some added context of this project, when I was building Video.js back in 2010 I put a lot of thought into how other developers would customize the player controls. I was excited to use web technologies (instead of Flash) to build a player and I <i>knew</i> other web devs would be too.<p>Fast forward 14 years — Video.js has been used on millions of websites including Twitter, Instagram, Amazon, Dropbox, Linkedin and even in United Airlines headrests. In 99.99% of those cases the default Video.js controls were used with little to no customization. So…huge adoption success, utter failure in sparking creativity. In retrospect, asking people to learn a new UI framework just to style their player was too much.<p>Media Chrome and Player.style are my answer to that friction.<p>- Media Chrome - A suite of Web Components and React Components that let you easily build a media player UI from scratch, using components you’re already familiar with.<p>- Player.stye - Themes built with Media Chrome, showing the cross-player and cross-framework flexibility of Media Chrome<p>Media Chrome is already used on sites like TED.com, Syntax.fm, and anywhere the Mux Player is used. We’ve spent the last few months building some great themes for Player.style. I probably had the most fun recreating the Youtube icon animations from scratch using SVGs and CSS. (Whoever made the originals, nicely done!)<p>It’s all free and open source, so don’t hesitate to jump in if you’re interested in the project. And of course I’m happy to answer any questions.
Show HN: Winamp and other media players, rebuilt for the web with Web Components
Hey all, creator of Video.js and co-founder of Mux & Zencoder here. My team and I built this. I hope you like the themes we’ve built so far, and maybe even get inspired to build your own.<p>I know Web Components are in a bit of a drama cycle right now. I’m happy to see them get any attention really. I’ve been pretty bullish on them since ~2013 when I started working with them, at least in the context of a <i>widget</i> like a video player. I’ve even given many related talks on them like this one (<a href="https://www.youtube.com/watch?v=N6Mh84SRoDg" rel="nofollow">https://www.youtube.com/watch?v=N6Mh84SRoDg</a>).<p>I would never push them for a large app or as a full replacement for React, but they’ve been incredible for making video players that are compatible across many contexts, and Player.style is a clear demonstration of that when you get to the step of embedding a theme. Web components really shine for building bits of UI that can be shared between projects. They also are the best way to avoid the long term JS framework thrash that’s a challenge for any developer who works on the web for long enough. One of the best decisions I ever made for Video.js was to <i>not</i> build it with jQuery. Video.js is 15 years old now and still in use, while all the jQuery players are not.<p>For some added context of this project, when I was building Video.js back in 2010 I put a lot of thought into how other developers would customize the player controls. I was excited to use web technologies (instead of Flash) to build a player and I <i>knew</i> other web devs would be too.<p>Fast forward 14 years — Video.js has been used on millions of websites including Twitter, Instagram, Amazon, Dropbox, Linkedin and even in United Airlines headrests. In 99.99% of those cases the default Video.js controls were used with little to no customization. So…huge adoption success, utter failure in sparking creativity. In retrospect, asking people to learn a new UI framework just to style their player was too much.<p>Media Chrome and Player.style are my answer to that friction.<p>- Media Chrome - A suite of Web Components and React Components that let you easily build a media player UI from scratch, using components you’re already familiar with.<p>- Player.stye - Themes built with Media Chrome, showing the cross-player and cross-framework flexibility of Media Chrome<p>Media Chrome is already used on sites like TED.com, Syntax.fm, and anywhere the Mux Player is used. We’ve spent the last few months building some great themes for Player.style. I probably had the most fun recreating the Youtube icon animations from scratch using SVGs and CSS. (Whoever made the originals, nicely done!)<p>It’s all free and open source, so don’t hesitate to jump in if you’re interested in the project. And of course I’m happy to answer any questions.
Show HN: Kotlin Money
Manipulating monetary amounts is a common computing chore. However, no mainstream language has a first-class data type for representing money, it’s up to programmers to code abstractions for it. This isn’t an issue per se until dealing with rounding issues from operations like installment payments (e.g., buy now, pay later), foreign exchange, or even simple things like fee processing and tax collection.<p>Inspired by my days at N26 Brasil dealing with these challenges, I introduce Money: a Kotlin library that makes monetary calculations and allocations easy.
Show HN: Kotlin Money
Manipulating monetary amounts is a common computing chore. However, no mainstream language has a first-class data type for representing money, it’s up to programmers to code abstractions for it. This isn’t an issue per se until dealing with rounding issues from operations like installment payments (e.g., buy now, pay later), foreign exchange, or even simple things like fee processing and tax collection.<p>Inspired by my days at N26 Brasil dealing with these challenges, I introduce Money: a Kotlin library that makes monetary calculations and allocations easy.
Show HN: Kotlin Money
Manipulating monetary amounts is a common computing chore. However, no mainstream language has a first-class data type for representing money, it’s up to programmers to code abstractions for it. This isn’t an issue per se until dealing with rounding issues from operations like installment payments (e.g., buy now, pay later), foreign exchange, or even simple things like fee processing and tax collection.<p>Inspired by my days at N26 Brasil dealing with these challenges, I introduce Money: a Kotlin library that makes monetary calculations and allocations easy.
Show HN: Offline audiobook from any format with one CLI command
QuickPiperAudiobook locally generates an mp3 audiobook on Linux with one easy command. It can convert PDFs, epub, mobi, and many more by using ebook-convert. It uses any piper TTS model, and thus supports a wide variety of languages.<p>I've had great success using it to read more while reducing eye strain and computer usage. I think I've probably read 30 or so books this way now over the past year. Being able to listen to any content you want in audio form free and offline while going for a walk is extremely handy.<p>I hope it helps you as well!<p>Cheers
Show HN: Offline audiobook from any format with one CLI command
QuickPiperAudiobook locally generates an mp3 audiobook on Linux with one easy command. It can convert PDFs, epub, mobi, and many more by using ebook-convert. It uses any piper TTS model, and thus supports a wide variety of languages.<p>I've had great success using it to read more while reducing eye strain and computer usage. I think I've probably read 30 or so books this way now over the past year. Being able to listen to any content you want in audio form free and offline while going for a walk is extremely handy.<p>I hope it helps you as well!<p>Cheers
Show HN: Offline audiobook from any format with one CLI command
QuickPiperAudiobook locally generates an mp3 audiobook on Linux with one easy command. It can convert PDFs, epub, mobi, and many more by using ebook-convert. It uses any piper TTS model, and thus supports a wide variety of languages.<p>I've had great success using it to read more while reducing eye strain and computer usage. I think I've probably read 30 or so books this way now over the past year. Being able to listen to any content you want in audio form free and offline while going for a walk is extremely handy.<p>I hope it helps you as well!<p>Cheers
Show HN: Instant HTML Preview Bookmarklet
Hey HN,<p>I recently found myself needing a quick way to preview HTML and SVG code without having to copy it into an IDE, save it, and then open it in a browser. ChatGPT's new canvas feature is great for generating code, but it doesn't provide a way to preview HTML directly.<p>To solve this, I made a small bookmarklet that allows you to instantly preview HTML from your clipboard in a new tab. Just copy your HTML, click the bookmarklet, and it will render immediately.<p>It's a simple tool, but it’s saved me a lot of repetitive steps, and I figured it might help others too.<p>The bookmarklet code and instructions for saving it are included in the post.<p>Happy to hear any thoughts or suggestions!<p>Thanks, and I hope it saves you some time.
Show HN: Instant HTML Preview Bookmarklet
Hey HN,<p>I recently found myself needing a quick way to preview HTML and SVG code without having to copy it into an IDE, save it, and then open it in a browser. ChatGPT's new canvas feature is great for generating code, but it doesn't provide a way to preview HTML directly.<p>To solve this, I made a small bookmarklet that allows you to instantly preview HTML from your clipboard in a new tab. Just copy your HTML, click the bookmarklet, and it will render immediately.<p>It's a simple tool, but it’s saved me a lot of repetitive steps, and I figured it might help others too.<p>The bookmarklet code and instructions for saving it are included in the post.<p>Happy to hear any thoughts or suggestions!<p>Thanks, and I hope it saves you some time.
Show HN: A website for comparing protein powder prices
diskprices.com, but for Protein Powder!<p>Buying protein powder is a mess, and comparing different products is frustrating, since all brands choose their own serving sizes. By collecting nutrition facts, and normalizing the serving to contain 25 grams of protein, we can properly compare price/nutrients per serving.<p>Inspired by diskprices.com, the idea is to provide an equally functional interface to compare products. The prices are collected once a day, currently from iHerb US. Aiming to improve the coverage soon.<p>Any tips / suggestions / other feedback more than welcome :)<p>...and if you rather want to contact me directly, feel free to reach me at elina@nutritionprices.com
Show HN: A website for comparing protein powder prices
diskprices.com, but for Protein Powder!<p>Buying protein powder is a mess, and comparing different products is frustrating, since all brands choose their own serving sizes. By collecting nutrition facts, and normalizing the serving to contain 25 grams of protein, we can properly compare price/nutrients per serving.<p>Inspired by diskprices.com, the idea is to provide an equally functional interface to compare products. The prices are collected once a day, currently from iHerb US. Aiming to improve the coverage soon.<p>Any tips / suggestions / other feedback more than welcome :)<p>...and if you rather want to contact me directly, feel free to reach me at elina@nutritionprices.com
Show HN: Compiling C in the browser using WebAssembly
Show HN: Compiling C in the browser using WebAssembly