The best Hacker News stories from Show from the past day
Latest posts:
Show HN: Jmail – Google Suite for Epstein files
Hi everyone! My name's Luke and I made the original Jmail here alongside Riley Walz. We had a ton of friends collaborate on building out more of the app suite last night in lieue of DOJ's "Epstein files" release.<p>Please AMA!
Show HN: Stepped Actions – distributed workflow orchestration for Rails
Stepped is a Rails engine, extracted out of Envirobly where it powers tasks like application deployment, that involve complex, out-of-the-band tasks like DNS provisioning, retries, waiting for instances to boot, running health checks and all the fun stuff of a highly distributed networked system.
Show HN: Stickerbox, a kid-safe, AI-powered voice to sticker printer
Bob and Arun here, creators of Stickerbox.<p>If AI were built for kids, what would it look like?<p>Asking that question led us to creativity, and more specifically, the power of kids’ imaginations. We wanted to let kids combine the power of their ideas with AI tools but we needed to make sure we did it safely and in the right way.<p>Enter Stickerbox, a voice powered sticker printer. By combining AI image generation with thermal sticker printing, we instantly turn kids' wildest ideas into real stickers they can color, stick, and share.<p>What surprised us most is how the “AI” disappears behind the magic of the device. The moment that consistently amazes kids is when the printer finishes and they are holding their own idea as a real sticker. A ghost on a skateboard, a dragon doing its taxes, their dog as a superhero, anything they can dream of, they can hold in their hand. Their reactions are what pushed us to keep building, even though hardware can be really hard.<p>Along the way the scope of the project grew more than we expected: navigating supply chains, sourcing safe BPA/BPS free thermal paper, passing safety testing for a children’s product, and designing an interface simple enough that a five year old can walk up and just talk to it. We also spent a lot of time thinking about kids’ data and privacy so that parents would feel comfortable having this in their home.<p>Stickerbox is our attempt to make modern AI kid-safe, playful, and tangible. We’d love to hear what you think!<p>P.S. If you’re interested in buying one for yourself or as a gift, use code FREE3PACK to get an extra free pack of paper refills.
Show HN: Stickerbox, a kid-safe, AI-powered voice to sticker printer
Bob and Arun here, creators of Stickerbox.<p>If AI were built for kids, what would it look like?<p>Asking that question led us to creativity, and more specifically, the power of kids’ imaginations. We wanted to let kids combine the power of their ideas with AI tools but we needed to make sure we did it safely and in the right way.<p>Enter Stickerbox, a voice powered sticker printer. By combining AI image generation with thermal sticker printing, we instantly turn kids' wildest ideas into real stickers they can color, stick, and share.<p>What surprised us most is how the “AI” disappears behind the magic of the device. The moment that consistently amazes kids is when the printer finishes and they are holding their own idea as a real sticker. A ghost on a skateboard, a dragon doing its taxes, their dog as a superhero, anything they can dream of, they can hold in their hand. Their reactions are what pushed us to keep building, even though hardware can be really hard.<p>Along the way the scope of the project grew more than we expected: navigating supply chains, sourcing safe BPA/BPS free thermal paper, passing safety testing for a children’s product, and designing an interface simple enough that a five year old can walk up and just talk to it. We also spent a lot of time thinking about kids’ data and privacy so that parents would feel comfortable having this in their home.<p>Stickerbox is our attempt to make modern AI kid-safe, playful, and tangible. We’d love to hear what you think!<p>P.S. If you’re interested in buying one for yourself or as a gift, use code FREE3PACK to get an extra free pack of paper refills.
Show HN: Stickerbox, a kid-safe, AI-powered voice to sticker printer
Bob and Arun here, creators of Stickerbox.<p>If AI were built for kids, what would it look like?<p>Asking that question led us to creativity, and more specifically, the power of kids’ imaginations. We wanted to let kids combine the power of their ideas with AI tools but we needed to make sure we did it safely and in the right way.<p>Enter Stickerbox, a voice powered sticker printer. By combining AI image generation with thermal sticker printing, we instantly turn kids' wildest ideas into real stickers they can color, stick, and share.<p>What surprised us most is how the “AI” disappears behind the magic of the device. The moment that consistently amazes kids is when the printer finishes and they are holding their own idea as a real sticker. A ghost on a skateboard, a dragon doing its taxes, their dog as a superhero, anything they can dream of, they can hold in their hand. Their reactions are what pushed us to keep building, even though hardware can be really hard.<p>Along the way the scope of the project grew more than we expected: navigating supply chains, sourcing safe BPA/BPS free thermal paper, passing safety testing for a children’s product, and designing an interface simple enough that a five year old can walk up and just talk to it. We also spent a lot of time thinking about kids’ data and privacy so that parents would feel comfortable having this in their home.<p>Stickerbox is our attempt to make modern AI kid-safe, playful, and tangible. We’d love to hear what you think!<p>P.S. If you’re interested in buying one for yourself or as a gift, use code FREE3PACK to get an extra free pack of paper refills.
Show HN: I Made Loom for Mobile
An app to make demo vids<p>Of course I have a demo vid: <a href="https://www.youtube.com/watch?v=c_fq0TzlsXI" rel="nofollow">https://www.youtube.com/watch?v=c_fq0TzlsXI</a><p>This will be my last post to HN about this. I always like to try a few titles to see if any hit.
Show HN: I Made Loom for Mobile
An app to make demo vids<p>Of course I have a demo vid: <a href="https://www.youtube.com/watch?v=c_fq0TzlsXI" rel="nofollow">https://www.youtube.com/watch?v=c_fq0TzlsXI</a><p>This will be my last post to HN about this. I always like to try a few titles to see if any hit.
Show HN: I open-sourced my Go and Next B2B SaaS Starter (deploy anywhere, MIT)
Hi HN, I'm Mohammed, a technical founder who loves shipping and giving back to the community. I'm open-sourcing the full-stack engine that powers my B2B product, apflow.co.<p>What it is: A production B2B starter with a Go backend and Next.js frontend. Both are fully Dockerized with separate containers. No Vercel. No Supabase. Deploy the whole thing on a $6 VPS, or split frontend and backend across different providers. You own the infrastructure.<p>The problem I was solving:<p>Every SaaS starter I evaluated had the same issue: they locked me into someone else's platform. Vercel for hosting. PlanetScale for the database. Serverless functions billing per invocation. Fine for prototypes, but costs become unpredictable at scale and migrating away is painful.<p>I wanted something I could deploy on any Linux box with docker-compose up. Something where I could host the frontend on Cloudflare Pages and the backend on a Hetzner VPS if I wanted. No vendor-specific APIs buried in my code.<p>Why Go for the backend:<p>Go gives me exactly what I need for a SaaS backend:<p>Tiny footprint. The backend idles at ~50MB RAM. On a cheap VPS, that headroom lets me run more services without upgrading.
Concurrency without complexity. Billing webhooks, file uploads, and AI calls run concurrently without callback hell.
Compile-time type safety. Using SQLC, my SQL compiles to type-safe Go. If the query is wrong, it fails at build time, not in production.
Predictable performance. No garbage collection pauses that surprise you under load.
The architecture (Modular Monolith):<p>I didn't want microservices complexity for a small team, but I needed clean separation. I built a Modular Monolith: features like Auth, Billing, and AI are isolated Go modules with explicit interfaces, but they deploy as a single binary.<p>This structure also made AI coding tools (Cursor, Claude Code) dramatically more effective. Because every module has strict boundaries, the AI knows exactly where new code belongs and doesn't break other modules.<p>Full-stack, not just backend:<p>Backend: Go 1.25 + Gin + SQLC (type-safe SQL, no ORM) + PostgreSQL with pgvector
Frontend: Next.js 16 + React 19 + Tailwind + shadcn/ui
Communication: The frontend consumes a clean REST API. You can swap Next.js for any framework that speaks HTTP.
Infrastructure: Separate Dockerfiles for frontend and backend. Deploy together or apart.
What's pre-built:<p>The boring infrastructure is solved so you can focus on your actual product:<p>Auth + RBAC: Stytch B2B integration with Organizations, Teams, and Roles. Multi-tenant data isolation enforced at the query level.
Billing: Polar.sh as Merchant of Record. Handles subscriptions, invoices, and global tax/VAT. No Stripe webhook edge cases.
AI Pipeline: OpenAI RAG using pgvector. The retrieval service enforces strict context boundaries to minimize hallucinations.
OCR: Mistral integration for document extraction.
File Storage: Cloudflare R2 integration.
Each feature is a separate module. Don't need OCR? Remove it. Want Stripe instead of Polar? The billing interface is abstracted.<p>Real-world proof:<p>This isn't a template I made for GitHub stars. It's the exact code running apflow.co in production. When I added document OCR, I built it as a new module without touching Auth or Billing. The architecture held.<p>How to try it:<p>Clone the repo, read setup.md to check the prerequisite, run ./setup.sh, and you have a working B2B environment locally in minutes.<p>Feedback I want:<p>I'd appreciate feedback from Go developers on the module boundaries and cross-module interfaces. Also curious if anyone has suggestions for the Docker setup in production deployments.<p>GitHub: <a href="https://github.com/moasq/production-saas-starter" rel="nofollow">https://github.com/moasq/production-saas-starter</a><p>Live: <a href="https://apflow.co" rel="nofollow">https://apflow.co</a>
Show HN: I open-sourced my Go and Next B2B SaaS Starter (deploy anywhere, MIT)
Hi HN, I'm Mohammed, a technical founder who loves shipping and giving back to the community. I'm open-sourcing the full-stack engine that powers my B2B product, apflow.co.<p>What it is: A production B2B starter with a Go backend and Next.js frontend. Both are fully Dockerized with separate containers. No Vercel. No Supabase. Deploy the whole thing on a $6 VPS, or split frontend and backend across different providers. You own the infrastructure.<p>The problem I was solving:<p>Every SaaS starter I evaluated had the same issue: they locked me into someone else's platform. Vercel for hosting. PlanetScale for the database. Serverless functions billing per invocation. Fine for prototypes, but costs become unpredictable at scale and migrating away is painful.<p>I wanted something I could deploy on any Linux box with docker-compose up. Something where I could host the frontend on Cloudflare Pages and the backend on a Hetzner VPS if I wanted. No vendor-specific APIs buried in my code.<p>Why Go for the backend:<p>Go gives me exactly what I need for a SaaS backend:<p>Tiny footprint. The backend idles at ~50MB RAM. On a cheap VPS, that headroom lets me run more services without upgrading.
Concurrency without complexity. Billing webhooks, file uploads, and AI calls run concurrently without callback hell.
Compile-time type safety. Using SQLC, my SQL compiles to type-safe Go. If the query is wrong, it fails at build time, not in production.
Predictable performance. No garbage collection pauses that surprise you under load.
The architecture (Modular Monolith):<p>I didn't want microservices complexity for a small team, but I needed clean separation. I built a Modular Monolith: features like Auth, Billing, and AI are isolated Go modules with explicit interfaces, but they deploy as a single binary.<p>This structure also made AI coding tools (Cursor, Claude Code) dramatically more effective. Because every module has strict boundaries, the AI knows exactly where new code belongs and doesn't break other modules.<p>Full-stack, not just backend:<p>Backend: Go 1.25 + Gin + SQLC (type-safe SQL, no ORM) + PostgreSQL with pgvector
Frontend: Next.js 16 + React 19 + Tailwind + shadcn/ui
Communication: The frontend consumes a clean REST API. You can swap Next.js for any framework that speaks HTTP.
Infrastructure: Separate Dockerfiles for frontend and backend. Deploy together or apart.
What's pre-built:<p>The boring infrastructure is solved so you can focus on your actual product:<p>Auth + RBAC: Stytch B2B integration with Organizations, Teams, and Roles. Multi-tenant data isolation enforced at the query level.
Billing: Polar.sh as Merchant of Record. Handles subscriptions, invoices, and global tax/VAT. No Stripe webhook edge cases.
AI Pipeline: OpenAI RAG using pgvector. The retrieval service enforces strict context boundaries to minimize hallucinations.
OCR: Mistral integration for document extraction.
File Storage: Cloudflare R2 integration.
Each feature is a separate module. Don't need OCR? Remove it. Want Stripe instead of Polar? The billing interface is abstracted.<p>Real-world proof:<p>This isn't a template I made for GitHub stars. It's the exact code running apflow.co in production. When I added document OCR, I built it as a new module without touching Auth or Billing. The architecture held.<p>How to try it:<p>Clone the repo, read setup.md to check the prerequisite, run ./setup.sh, and you have a working B2B environment locally in minutes.<p>Feedback I want:<p>I'd appreciate feedback from Go developers on the module boundaries and cross-module interfaces. Also curious if anyone has suggestions for the Docker setup in production deployments.<p>GitHub: <a href="https://github.com/moasq/production-saas-starter" rel="nofollow">https://github.com/moasq/production-saas-starter</a><p>Live: <a href="https://apflow.co" rel="nofollow">https://apflow.co</a>
Show HN: TinyPDF – 3kb pdf library (70x smaller than jsPDF)
I needed to generate invoices in a Node.js app. jsPDF is 229KB. I only needed text, rectangles, lines, and JPEG images.<p><pre><code> So I wrote tinypdf: <400 lines of TypeScript, zero dependencies, 3.3KB minified+gzipped.
What it does:
- Text (Helvetica, colors, alignment)
- Rectangles and lines
- JPEG images
- Multiple pages, custom sizes
What it doesn't do:
- Custom fonts, PNG/SVG, forms, encryption, HTML-to-PDF
That's it. The 95% use case for invoices, receipts, reports, tickets, and labels.
GitHub: https://github.com/Lulzx/tinypdf
npm: npm install tinypdf</code></pre>
Show HN: TinyPDF – 3kb pdf library (70x smaller than jsPDF)
I needed to generate invoices in a Node.js app. jsPDF is 229KB. I only needed text, rectangles, lines, and JPEG images.<p><pre><code> So I wrote tinypdf: <400 lines of TypeScript, zero dependencies, 3.3KB minified+gzipped.
What it does:
- Text (Helvetica, colors, alignment)
- Rectangles and lines
- JPEG images
- Multiple pages, custom sizes
What it doesn't do:
- Custom fonts, PNG/SVG, forms, encryption, HTML-to-PDF
That's it. The 95% use case for invoices, receipts, reports, tickets, and labels.
GitHub: https://github.com/Lulzx/tinypdf
npm: npm install tinypdf</code></pre>
Show HN: TinyPDF – 3kb pdf library (70x smaller than jsPDF)
I needed to generate invoices in a Node.js app. jsPDF is 229KB. I only needed text, rectangles, lines, and JPEG images.<p><pre><code> So I wrote tinypdf: <400 lines of TypeScript, zero dependencies, 3.3KB minified+gzipped.
What it does:
- Text (Helvetica, colors, alignment)
- Rectangles and lines
- JPEG images
- Multiple pages, custom sizes
What it doesn't do:
- Custom fonts, PNG/SVG, forms, encryption, HTML-to-PDF
That's it. The 95% use case for invoices, receipts, reports, tickets, and labels.
GitHub: https://github.com/Lulzx/tinypdf
npm: npm install tinypdf</code></pre>
Show HN: Hacker News, but every headline is hysterical clickbait
Show HN: A local-first memory store for LLM agents (SQLite)
Show HN: Composify – Open-Source Visual Editor / Server-Driven UI for React
Everyone's shipping AI tools right now, and here I am with a visual editor. Still, I think many teams are very familiar with the problem of "marketing wants to change the landing page again."<p>I've run into this for years. Campaign pages come in, engineers get pulled in, and tickets stack up. It's usually the same components, just rearranged.<p>A few years ago, at a startup I worked at, we built an internal tool to deal with this. You register your existing React components, they show up as drag-and-drop blocks, and the result is a JSX string. No schema to learn, no changes to your component code.<p>We used it in production, handling real traffic in a messy, legacy-heavy environment. It held up well. Over time, it powered roughly 60% of our traffic. Marketing shipped pages without filing tickets, and product teams ran layout-level A/B tests. That experience eventually led me to clean it up and open-source it.<p>Composify sits somewhere between a no-code page builder and a headless CMS. Page builders like Wix or Squarespace offer drag-and-drop, but lock you into their components. There are also solid tools like Builder.io, Puck, and Storyblok, but many require you to adapt your components to their model. Composify is intentionally minimal: it lets you use your actual production components as they are.<p>It's still early. The docs need work, and there are rough edges. But it's running in production and has solved a real problem for us. If you already have a component library and want non-devs to compose pages from it, it might be useful.<p>Homepage: <a href="https://composify.js.org" rel="nofollow">https://composify.js.org</a><p>Happy to answer questions or hear feedback!
Show HN: Learning a Language Using Only Words You Know
A proof-of-concept language learning app that uses LLMs to generate definitions of unknown words using only previously mastered vocabulary.
Show HN: Learning a Language Using Only Words You Know
A proof-of-concept language learning app that uses LLMs to generate definitions of unknown words using only previously mastered vocabulary.
Show HN: Picknplace.js, an alternative to drag-and-drop
I find that the drag and drop experience can quickly become a nightmare, especially on mobile.
To tap, hold, drag, and scroll, all at the same time, is both difficult to achieve, and prone to errors.
I've always had in mind this 2-step approach, where picking an element and placing it were two separate steps.
So I implemented this basic version to showcase my idea.<p>While it might take more time than a regular drag and drop, the benefit is for people who struggle with holding down the mouse button. With picknplace.js, you only need two clicks and some scrolling.<p>This solution is meant as an experiment, so I'm open to discussion.
Show HN: Picknplace.js, an alternative to drag-and-drop
I find that the drag and drop experience can quickly become a nightmare, especially on mobile.
To tap, hold, drag, and scroll, all at the same time, is both difficult to achieve, and prone to errors.
I've always had in mind this 2-step approach, where picking an element and placing it were two separate steps.
So I implemented this basic version to showcase my idea.<p>While it might take more time than a regular drag and drop, the benefit is for people who struggle with holding down the mouse button. With picknplace.js, you only need two clicks and some scrolling.<p>This solution is meant as an experiment, so I'm open to discussion.
Show HN: Picknplace.js, an alternative to drag-and-drop
I find that the drag and drop experience can quickly become a nightmare, especially on mobile.
To tap, hold, drag, and scroll, all at the same time, is both difficult to achieve, and prone to errors.
I've always had in mind this 2-step approach, where picking an element and placing it were two separate steps.
So I implemented this basic version to showcase my idea.<p>While it might take more time than a regular drag and drop, the benefit is for people who struggle with holding down the mouse button. With picknplace.js, you only need two clicks and some scrolling.<p>This solution is meant as an experiment, so I'm open to discussion.