The best Hacker News stories from Show from the past week

Go back

Latest posts:

Show HN: Drop-in SQS replacement based on SQLite

Hi! I wanted to share an open source API-compatible replacement for SQS. It's written in Go, distributes as a single binary, and uses SQLite for underlying storage.<p>I wrote this because I wanted a queue with all the bells and whistles - searching, scheduling into the future, observability, and rate limiting - all the things that many modern task queue systems have.<p>But I didn't want to rewrite my app, which was already using SQS. And I was frustrated that many of the best solutions out there (BullMQ, Oban, Sidekiq) were language-specific.<p>So I made an SQS-compatible replacement. All you have to do is replace the endpoint using AWS' native library in your language of choice.<p>For example, the queue works with Celery - you just change the connection string. From there, you can see all of your messages and their status, which is hard today in the SQS console (and flower doesn't support SQS.)<p>It is written to be pluggable. The queue implementation uses SQLite, but I've been experimenting with RocksDB as a backend and you could even write one that uses Postgres. Similarly, you could implement multiple protocols (AMQP, PubSub, etc) on top of the underlying queue. I started with SQS because it is simple and I use it a lot.<p>It is written to be as easy to deploy as possible - a single go binary. I'm working on adding distributed and autoscale functionality as the next layer.<p>Today I have search, observability (via prometheus), unlimited message sizes, and the ability to schedule messages arbitrarily in the future.<p>In terms of monetization, the goal is to just have a hosted queue system. I believe this can be cheaper than SQS without sacrificing performance. Just as Backblaze and Minio have had success competing in the S3 space, I wanted to take a crack at queues.<p>I'd love your feedback!

Show HN: I am building an open-source Confluence and Notion alternative

Hello HN,<p>I am building Docmost, an open-source collaborative wiki and documentation software. It is an open-source alternative to Confluence and Notion.<p>I have been working on it for the past 12 months. This is the first public release (beta).<p>The rich-text editor has support for real-time collaboration, LaTex, inline comments, tables, and callouts to name a few.<p>Features<p>- Collaborative real-time editor<p>- Spaces (Teamspace)<p>- User permissions<p>- Groups<p>- Comments<p>- Page history<p>- Nested pages<p>- Search<p>- File attachments<p>You can find screenshots of the product on the website.<p>Website: <a href="https://docmost.com" rel="nofollow">https://docmost.com</a><p>Github: <a href="https://github.com/docmost/docmost">https://github.com/docmost/docmost</a><p>Documentation: <a href="https://docmost.com/docs" rel="nofollow">https://docmost.com/docs</a><p>I would love to hear your feedback.<p>Thank you.

Show HN: I am building an open-source Confluence and Notion alternative

Hello HN,<p>I am building Docmost, an open-source collaborative wiki and documentation software. It is an open-source alternative to Confluence and Notion.<p>I have been working on it for the past 12 months. This is the first public release (beta).<p>The rich-text editor has support for real-time collaboration, LaTex, inline comments, tables, and callouts to name a few.<p>Features<p>- Collaborative real-time editor<p>- Spaces (Teamspace)<p>- User permissions<p>- Groups<p>- Comments<p>- Page history<p>- Nested pages<p>- Search<p>- File attachments<p>You can find screenshots of the product on the website.<p>Website: <a href="https://docmost.com" rel="nofollow">https://docmost.com</a><p>Github: <a href="https://github.com/docmost/docmost">https://github.com/docmost/docmost</a><p>Documentation: <a href="https://docmost.com/docs" rel="nofollow">https://docmost.com/docs</a><p>I would love to hear your feedback.<p>Thank you.

Show HN: Voice bots with 500ms response times

Last year when GPT-4 was released I started making lots of little voice + LLM experiments. Voice interfaces are fun; there are several interesting new problem spaces to explore.<p>I'm convinced that voice is going to be a bigger and bigger part of how we all interact with generative AI. But one thing that's hard, today, is building voice bots that respond as quickly as humans do in conversation. A 500ms voice-to-voice response time is just <i>barely</i> possible with today's AI models.<p>You can get down to 500ms if you: host transcription, LLM inference, and voice generation all together in one place; are careful about how you route and pipeline all the data; and the gods of both wifi and vram caching smile on you.<p>Here's a demo of a 500ms-capable voice bot, plus a container you can deploy to run it yourself on an A10/A100/H100 if you want to:<p><a href="https://fastvoiceagent.cerebrium.ai/">https://fastvoiceagent.cerebrium.ai/</a><p>We've been collecting lots of metrics. Here are typical numbers (in milliseconds) for all the easily measurable parts of the voice-to-voice response cycle.<p><pre><code> macOS mic input 40 opus encoding 30 network stack and transit 10 packet handling 2 jitter buffer 40 opus decoding 30 transcription and endpointing 200 llm ttfb 100 sentence aggregation 100 tts ttfb 80 opus encoding 30 packet handling 2 network stack and transit 10 jitter buffer 40 opus decoding 30 macOS speaker output 15 ---------------------------------- total ms 759 </code></pre> Everything in AI is changing all the time. LLMs with native audio input and output capabilities will likely make it easier to build fast-responding voice bots soon. But for the moment, I think this is the fastest possible approach/tech stack.

Show HN: I built an indie, browser-based MMORPG

I've been working on an MMORPG that is now in alpha as a solo developer.<p>Here are the major open source technologies that I use:<p>Blender - 3D modeling software for creating the overall environment and every game object. I've gotten a lot of CC and Public Domain assets from <a href="https://poly.pizza" rel="nofollow">https://poly.pizza</a><p>GLTF - I export assets from blender to the GLTF asset format<p>JSON - I write a JSON config for every game object that describes things like its name, its interactions, its collisions, etc.<p>Node.js exporter - I iterate over the environment and every asset to create a scene hierarchy. I use gltf-transform for processing all GLTF files, compressing them, removing redundancies, etc.<p>Node.js server - Uses express and socket.io to process game state updates. It keeps track of every client's game state and issues delta's at each game tick (currently 600ms). The client can send interactions with different objects. The server validates those and updates the game state accordingly.<p>HTML/CSS/JavaScript/Three.js client - I use regular web technologies for the UI elements and three.js for the 3D rending on the browser. The client is responsible for rending the world state and providing the client with different interactions. All code is written in JavaScript which means less context switching. Performance seems to be good enough, and I figure I can always optimize the server code in C++ if necessary.<p>I am currently running two cheap shared instances but based on my testing, they can likely support about 200 users each. This is a low-poly browser based game so it should be compatible across many devices. The data a user needs to download to play, including all 3d assets, is approximately 2 MB, even though there are hundreds of assets.<p>Overall, it's been a fun project. Web development and open source software have progressed to the point that this is no longer an incredibly difficult feat. I feel like development is going pretty well and in a year or so there will be plenty of good content to play.

Show HN: Glasskube – Open Source Kubernetes Package Manager, alternative to Helm

Hello HN, we're Philip and Louis from Glasskube (<a href="https://github.com/glasskube/glasskube">https://github.com/glasskube/glasskube</a>). We're working on an open-source package manager for Kubernetes. It's an alternative to tools like Helm or Kustomize, primarily focused on making deploying, updating, and configuring Kubernetes packages simpler and a lot faster. Here is a demo video (<a href="https://www.youtube.com/watch?v=aIeTHGWsG2c#t=17s" rel="nofollow">https://www.youtube.com/watch?v=aIeTHGWsG2c#t=17s</a>) with quick start instructions.<p>Most developers working with Kubernetes use Helm, an open-source tool created during a hackathon nine years ago. However, with the rapid growth of Kubernetes packages to over 800 packages on the CNCF landscape today, the prerequisites have changed, and we believe it’s time for a new package manager. Every engineer we talked to has a love-hate relationship with Helm, and we also found ourselves defaulting to Helm despite its shortcomings due to a lack of alternatives.<p>We have spent enough time trying to get Helm to do what we need. From looking for the correct chart, trying to learn how each value affects the components and hand-crafting a schemaless values.yaml file, to debugging the final release if it inevitably fails to install, the experience of using Helm is, for the most part, time consuming and cumbersome.<p>Charts often become more complex, requiring the use of sub-charts. These umbrella charts tend to be even harder to maintain and upgrade, because so many different components are bundled into a single release.<p>We talked to over 100 developers and found that everyone developed their own little workarounds, with some working better than others. We collected the feedback poured everything we learned from that into a new package manager. We want to build something that is as easy to use as Homebrew or npm and make package management on Kubernetes as easy as on every other platform.<p>Some of the features Glasskube already supports are<p>Typesafe package configuration via UI or interactive CLI to inject values from other packages, ConfigMaps, and Secrets.<p>Browse our central package repository so there is no need to look for a Helm repository to find a specific package.<p>All packages are dependency-aware so they can be used and referenced by multiple other packages even across namespaces. We validate the complete dependency tree - So packages get installed in the correct namespace.<p>Preview and perform pending updates to your desired version with a single click of a button. All updates have been tested in the Glasskube test suite before being available in the public repository.<p>Use multiple repositories and publish your own private packages (e.g., your company's internal services packages, so all developers will have the up-to-date and easily configured internal services).<p>All features are available via UI or interactive CLI. You can also manage all packages via GitOps.<p>Currently, we are focused on enhancing the user experience, aiming to save engineers as much time as possible. We are still using Helm and Manifests under the hood. However, together with the community, we plan to develop an entirely new packaging and bundling format for all cloud-native packages. This will provide package developers with a straightforward way to define how to install and configure packages, offer simple upgrade paths, and enable us to provide feedback, crash reports, and analytics to every developer working on Kubernetes packages.<p>We also started working on a cloud version. You can pre-signup here in case you are interested: <a href="https://glasskube.cloud" rel="nofollow">https://glasskube.cloud</a><p>We'd greatly appreciate any feedback you have and hope you get the chance to try out Glasskube.

Show HN: From dotenv to dotenvx – better config management

Show HN: I built a JavaScript-powered flipdisc display

I am using AI to drop hats outside my window onto New Yorkers

Show HN: Simple script to cripple personalized targeting from Facebook

Show HN: I made tool that let's you see everything about any website

Yes, it's open source: <a href="https://github.com/lissy93/web-check">https://github.com/lissy93/web-check</a> :)<p>Why I'm building this? There are a lot of tools out there for discovering meta and security data relating to a website, IP or server. But currently, there isn't anything that does everything, all in one place and without a paywall/ user sign up.<p>It's still a WIP, and I'm working on a new version, with some more comprehensive checks, so any feedback would be much appreciated :)

Show HN: I made tool that let's you see everything about any website

Yes, it's open source: <a href="https://github.com/lissy93/web-check">https://github.com/lissy93/web-check</a> :)<p>Why I'm building this? There are a lot of tools out there for discovering meta and security data relating to a website, IP or server. But currently, there isn't anything that does everything, all in one place and without a paywall/ user sign up.<p>It's still a WIP, and I'm working on a new version, with some more comprehensive checks, so any feedback would be much appreciated :)

Show HN: Eidos – Offline alternative to Notion

I'm a big fan of Notion, having used it for 7 years. When I first met Notion, it was just a block document editor, and it didn't excite me until it released the Database. Later, I learned about Airtable, and a bunch of similar products, all of them are SaaS, with such powerful tables but poor performance. Why isn't there a personal offline version table? Most of the time, I don't need to collaborate with others. What I really want is a personalized, offline version of Notion with better performance and more flexibility. So that I can have full control over my data.<p>Notion, like most SaaS products, is not open-source, so I can't customize it to my heart's content. I can only wait and vote for new features, but I can code, and I don't want to wait. I really like the concepts of FOSS, solid, and local-first. SaaS could die. Long may the SQLite. So, I built Eidos based on sqlite for managing my personal data throughout my lifetime in one place. Eidos is a long-term project for me. It looks like Notion, but the core is more like "obsidian.sqlite" with a powerful extension system.<p>Here are a few key ideas:<p>- Eidos is built based on sqlite-wasm and runs entirely in the browser. It can be used immediately, with no installation or configuration required. It's a pure PWA, with full offline support.<p>- A block-styled document editor and an Airtable-like table, built on top of SQLite, where each table is a real SQLite table.<p>- A powerful extension system inspired by Figma plugin and Cloudflare worker. You can write scripts in TypeScript directly in the browser. It is easy to manipulate data in docs, tables, and the file system. It also supports API.<p>- If you're not a developer, you're still in luck. We're living in an AI era. LLM empowers people to craft their own software without writing any code. Eidos deeply integrated with LLM. You can translate, summarize, talk to your data, process table data in batches, and more. It makes your life easier with AI. You can fully customize your prompts and freely choose your LLM provider, without being locked to any vendor.<p>To be honest, so far, there are still some bugs and shortcomings, and it hasn't yet reached my envisioned perfection. There is still some work to be done, but the basic framework has taken shape. I've been working on it for a year and have eaten my own dog food for the past half year. To help Eidos become better (and celebrate the release of the Elden Ring's DLC), I've decided to make it open-source and gather more feedback. Now, I'm going to take a break and play Shadow of the Erdtree.<p>- <a href="https://eidos.space" rel="nofollow">https://eidos.space</a>

Show HN: I made a puzzle game that gently introduces my favorite math mysteries

This is the first iteration of a short game I’m making that tries to interactively explain some of my favorite math questions / ideas. My goal is mostly to get the player curious and not necessarily to explain absolutely everything.<p>There were a lot of fun technical parts to building this:<p>- For implementation reasons, it’s much easier if the lines all have integer intersection points with each other. To do this, when a new line is added I “cheat” by rounding intersections to integers and then splitting the old lines at the intersection into new linds (with potentially different slopes) going through the rounded point<p>- I had to draw semi accurate maps of actual places (UK, South America, US west coast) in the HTML canvas using just line segments. I tried a few different solutions, including using SVG data. I ended up using the topojson library to give nice line approximations to GeoJSON maps<p>- I use a simple backtracking algorithm to handle the live coloring of graphs<p>- I use turf.js’s polygonize function to handle finding polygons from line segments (very happy I didn’t have to implement this myself!)<p>- I wanted to make the game as mobile friendly as possible (don’t think I’ve nailed this quite yet)<p>There were also a few tradeoffs I made:<p>- I wanted give links earlier in the game for players to learn more, but I decided to wait until the end to maintain the flow of the game<p>- In order to make the game more mobile-friendly, I generally stuck to maps with a small number of regions (at least for maps people have to interact with them). So for the most part all of the instances in the game are “easy”

Show HN: I made a puzzle game that gently introduces my favorite math mysteries

This is the first iteration of a short game I’m making that tries to interactively explain some of my favorite math questions / ideas. My goal is mostly to get the player curious and not necessarily to explain absolutely everything.<p>There were a lot of fun technical parts to building this:<p>- For implementation reasons, it’s much easier if the lines all have integer intersection points with each other. To do this, when a new line is added I “cheat” by rounding intersections to integers and then splitting the old lines at the intersection into new linds (with potentially different slopes) going through the rounded point<p>- I had to draw semi accurate maps of actual places (UK, South America, US west coast) in the HTML canvas using just line segments. I tried a few different solutions, including using SVG data. I ended up using the topojson library to give nice line approximations to GeoJSON maps<p>- I use a simple backtracking algorithm to handle the live coloring of graphs<p>- I use turf.js’s polygonize function to handle finding polygons from line segments (very happy I didn’t have to implement this myself!)<p>- I wanted to make the game as mobile friendly as possible (don’t think I’ve nailed this quite yet)<p>There were also a few tradeoffs I made:<p>- I wanted give links earlier in the game for players to learn more, but I decided to wait until the end to maintain the flow of the game<p>- In order to make the game more mobile-friendly, I generally stuck to maps with a small number of regions (at least for maps people have to interact with them). So for the most part all of the instances in the game are “easy”

Show HN: Radius – A Meetup.com alternative

Hey everyone! I'm introducing Radius - a project I've been working on for too long! It's an early stage and pretty minimal (which, according to YC means I launched early enough) alternative to Meetup.com, built using Ruby on Rails. It's a platform for creating thriving communities and discovering events around you.<p>What can you do on Radius?<p>- Want to create a group, post events and gather RSVPs? You're covered!<p>- Want event discovery? Coming soon™!<p>I'm a software engineer based in the UK. My first attempt to make this failed spectacularly when I hired a budget dev years ago to "build an MVP" when I had next to no knowledge of software development. So naturally, I changed my career and learned how to build it myself.<p>I wanted to build something that made it easy to find out what was happening around you. We have all these platforms focused on ticketing, meetups, and other event types - but they're all niche enough that they each only list a fragment of what's going on around us. Then you have another subset of groups which host their own website/mailing list and may only advertise an event on -insert social network- and you never know about it until it's too late.<p>The issue I have with existing platforms:<p>- Meetup excludes too many groups by not offering a free tier for smaller/non-profit groups which make up for a huge number of small communities. So many groups just end up dying because one person has to pay the fees. Then there's the fact that their search experience is just terrible. FWIW, I also think they have a marketing issue with the name Meetup.<p>- Eventbrite does ticketing pretty well, but completely failed to develop the group/community aspect and doesn't seem to have put much emphasis on the discovery of events either. They, like Meetup, only attract a certain subset of groups/events as well.<p>So, it feels like there's an opportunity to fill the gap with something that focuses on a wider range of events/groups and emphasises discovery and community. There's so much activity happening around us in the real world - and that's what I'd eventually like Radius to capture.<p>I'm aware that the discovery app category falls into the list of "YC honeypot ideas" but in the time that I've cared about this, nobody has built the thing I wanted to exist, damn it (Maybe that's a sign NOT to build it..).<p>At best, people might find this useful and at worst, it's been a fantastic learning experience.<p>--<p>Feedback -<p>There are a bunch of groups using it for events at the moment, and they've given great feedback to date. I haven't advertised it much though, so this is my attempt at gathering the next wave of feedback. Feel free to:<p>- Try it out: See if Radius works for your groups and events.<p>- Give feedback: Let me know what you think and how we can improve.<p>- Request features: Tell me what features would make Radius even better.<p>Thanks!<p>Link:- <a href="https://www.radius.to/" rel="nofollow">https://www.radius.to/</a><p>Example group:- <a href="https://www.radius.to/groups/toronto-ruby" rel="nofollow">https://www.radius.to/groups/toronto-ruby</a><p>Example event:- <a href="https://www.radius.to/groups/toronto-ruby/events/s1tczn2usqf5" rel="nofollow">https://www.radius.to/groups/toronto-ruby/events/s1tczn2usqf...</a>

Show HN: I made an open source and local translation app

A few years ago, right after high school, I decided to try to make a simultaneous translation app for Android as a side project, it took longer than expected (about 2 years) and I had to make a lot of compromises (I had to use Google's API and therefore make users use a developer key because at the time there were no free solutions for speech recognition and translation that had good quality). At the end of university, I decided to pick it up again and finally, using OpenAi's Whisper for speech recognition and Meta's NLLB for translation (with both running locally on the phone), I managed to make it free and totally open-source (as it was meant to be from the beginning). The app is still in beta, so I would love your feedback.

Show HN: Billard – Generate music from ball collisions in 2D space

Hello HN! Here's Billard. It combines music and physics into a unique creative tool, as I explore various unconventional methods for generating music.<p>Most traditional music composition tools revolve around the idea of a repeatable pattern. Billard is a webapp that never repeats itself. It generates music automatically based on the collisions of balls in a 2D space. Collisions trigger notes (or chords) in a given key. One can add balls or move them (y-position is pitch); the app remembers its state between reloads; or it can be reset with the 'init' button on the top left. Gravity can be adjusted in real time to change the behavior of the balls.<p>It owes a lot of inspiration to Brian Eno and Erik Satie (inventor of <i>musique d'ameublement</i>, or "furniture music"). Some may think the lack of pattern makes it not musical enough -- but this lets it be listened to —and watched— for a while without boredom.<p>The webapp is made using plain JavaScript. (All SVG icons were made 'by hand'.) It uses Tone.js only for triggering piano samples. Beyond piano, it's MIDI-enabled and works well at slow speed with haunting, dark synth sounds.<p>Hope you like it!

Show HN: Token price calculator for 400+ LLMs

Hey HN! Tokencost is a utility library for estimating LLM costs. There are hundreds of different models now, and they all have their own pricing schemes. It’s difficult to keep up with the pricing changes, and it’s even more difficult to estimate how much your prompts and completions will cost until you see the bill.<p>Tokencost works by counting the number of tokens in prompt and completion messages and multiplying that number by the corresponding model cost. Under the hood, it’s really just a simple cost dictionary and some utility functions for getting the prices right. It also accounts for different tokenizers and float precision errors.<p>Surprisingly, most model providers don't actually report how much you spend until your bills arrive. We built Tokencost internally at AgentOps to help users track agent spend, and we decided to open source it to help developers avoid nasty bills.

Show HN: We made a small and cheap network switch

Hello, we're Max and Byran from MUREX Robotics, a high school robotics team from Exeter, New Hampshire. We are super proud to have made this open source piece of technology! It is only 6.9 dollars (actually!) from JLCPCB :) I hope you like it.<p>You can find us at byran@mrx.ee and max@mrx.ee as well if you have any questions.<p>We will be putting a small run of these boards for sale somewhere (we have <25 units of stock), probably for $10+shipping. Let us know if you're interested in more!<p>Board files for everything we make is here: <a href="https://github.com/murexrobotics/electrical-2024">https://github.com/murexrobotics/electrical-2024</a>

< 1 2 3 ... 11 12 13 14 15 ... 122 123 124 >