Hacker Newsnew | past | comments | ask | show | jobs | submit | jetsnoc's commentslogin

Very cool. You built it, shipped it, and sold it.

At first I thought this might be a Nano SaaS, but without a clear definition, I’m now guessing that would be something like one tenth of the numbers you mentioned. So “micro” seems right.

If the term or threshold does not exist, let’s define it as such.


I think micro-SaaS is starting to catch on https://www.google.com/search?q=micro-saas


Sixteen years here, and the half-life decay of this community has been slower than anywhere else. That takes real, consistent work, and we have been lucky to have it. Through good times and rough ones, including the loss of Aaron Swartz (who I only knew of through HN), this has stayed a place for real conversation.

The grit, curiosity, and people building things have always been inspiring.

Thanks for all the discussions over the years.

Happy Thanksgiving!


Ten years for me! Came because my partner sent me an interesting thread, stayed because of the interesting articles and thoughtful comments from people who actually know what they're talking about.


  Models
    gpt-oss-120b, Meta Llama 3.2, or Gemma
    (just depends on what I’m doing)

  Hardware
    - Apple M4 Max (128 GB RAM)
      paired with a GPD Win 4 running Ubuntu 24.04 over USB-C networking

  Software
    - Claude Code
    - RA.Aid
    - llama.cpp

  For CUDA computing, I use an older NVIDIA RTX 2080 in an old System76 workstation.

  Process

    I create a good INSTRUCTIONS.md for Claude/Raid that specifies a task & production process with a task list it maintains. I use Claude Agents with an Agent Organizer that helps determine which agents to use. It creates the architecture, prd and security design, writes the code, and then lints, tests and does a code review.


What does the GPD Win 4 do in this scenario? Is there a step w/ Agent Organizer that decides if a task can go to a smaller model on the Win 4 vs a larger model on your Mac?


What sorts of token/s are you getting with each model?


Model performance summary:

  **openai/gpt-oss-120b** — MLX (MXFP4), ~66 tokens/sec @ Hugging Face: `lmstudio-community/gpt-oss-120b-MLX-8bit`

  **google/gemma-3-27b** — MLX (4-bit), ~27 tokens/sec @ Hugging Face: `mlx-community/gemma-3-27b-it-qat-4bit`

  **qwen/qwen3-coder-30b** — MLX (8-bit), ~78 tokens/sec @ Hugging Face: `Qwen/Qwen3-Coder-30B-A3B-Instruct`

Will reply back and add Meta Llama performance shortly.


What is the Agent Organizer you use?


It’s a Claude agent prompt. I don’t recall who originally shared it, so I can’t yet attribute the source, but I’ll track that down shortly and add proper attribution here.

Here’s the Claude agent markdown:

https://github.com/lst97/claude-code-sub-agents/blob/main/ag...

Edit: Updated from the old Pastebin link to the GitHub version. Attribution found: lst97 on GitHub


How it looks like Claude agent is written by Claude...


I'll admit it. I've done this, but only a few times and only when someone sent me truly egregious AI slop—the kind where it's obvious no human that respects my time ever looked at it.

My reaction is usually, "Oh, we're doing this? Fine." I'll even prompt my LLM with something like, "Make it sound as corporate and AI-generated as possible." Or, if I'm feeling especially petty, "Write this like you're trying to win the 2025 award for Most Corporate Nonsense, and you're a committee at a Fortune 500 company competing to generate the most boilerplate possible." It's petty, sure, but there's something oddly cathartic about responding to slop with slop.


I wasn’t aware of this, it’s extremely shortsighted. My employees’ chats are my company’s data, and I should be able to use them as I see fit. Restricting API access to our own data moves them quickly in to the 'too difficult to continue doing business with' category.

The reality is that Slack isn’t that sticky. The only reason I fended off the other business units who've demanded Microsoft Teams through the years is my software-engineering teams QoL. Slack has polish and is convenient but now that Slack is becoming inconvenient and not allowing me to do what I want, I can't justify fending off the detractors. I’ll gladly invest the time to swap them out for a platform that respects our ownership and lets us use our data however we need to. We left some money on the table but I am glad we didn’t bundle and upgrade to Slack Grid and lock ourselves into a three-year enterprise agreement...


We migrated from Slack to Teams and while it does work, it’s also not very good (UI/UX wise). We also did try out Rocket.Chat and Mattermost and out of all of those Mattermost was the closest to Slack and the most familiar to us.


I’d go for Discord if it had a business version without all the gaming stuff.

The dedicated voice/video channels are great for ad-hoc conversations when remote and a lot better than Slack’s huddles. They’re like dedicated remote meeting rooms except you’re not limited by office space.


> I’d go for Discord if it had a business version without all the gaming stuff.

Granted, my Discord usage been relatively limited, but what "gaming stuff"? In the servers unrelated to gaming I don't think I see anything gaming related, but maybe I'm missing something obvious.


We've migrated a 1000+ product team to Mattermost 2 years ago.

Super happy with it. No bullshit upgrades that break your way of working. Utilitarian approach to everything, the basics just work. Still has some rough edges, but in a workhorse kind of way.

Endorse.


Precisely the situation I'm in. I've fought off slack-to-teams migrations at multiple orgs for the same QoL reasons, but this will make that much (much) harder to justify.


> I wasn’t aware of this, it’s extremely shortsighted. My employees’ chats are my company’s data, and I should be able to use them as I see fit.

True, and if you're the only one sitting on the data and using it, then what you say is true.

The moment you use another platform, entering agreements of terms of service and more, it stops being "your and/or your company's data" though, and Slack will do whatever they deem fit with it, including preventing you from getting all of the data, because then it gets easier for you to leave.

Sucks, yeah, but it is the situation we're in, until lawmakers in your country catch up. Luckily, other jurisdictions are already better for things like this.


Unlike a building—where you might find one for sale and simply buy it—most companies don’t "buy one software" from a vendor and amortize it like a purchased asset. Instead, they hire full-time teams to build, maintain, and evolve software as a core, continuous function of the business. And most companies don’t "sell one software" either—they lease it to others, as software-as-a-service.

In your analogy, when a company constructs and sells a building, labor costs are deductible as part of the cost of goods sold. Only the profit—when the finished product is sold—is taxable. But under the new Section 174 rules, software R&D labor is treated like the purchase of a capital asset, even though the company is leasing a service, not selling a final, tangible product.

The flaw? Software isn’t a static, finished asset you walk away from. It’s a living system. One update might fix a bug, introduce a feature, and improve long-term architecture all at once. Is it maintenance? Innovation? Infrastructure? The answer is usually “all of the above.” So how does anyone report that cleanly on a tax form? What’s the IRS’s standard test for sorting that out?

Before TCJA, some companies may have stretched R&D definitions to claim Section 41 credits. But after the TCJA change, the incentive flipped. Now, companies are penalized for doing real R&D—the very thing we should be encouraging. Startups are now paying painfully high tax bills simply for building something they cannot lease out en masse yet.

We should want to incentivize invention, not suppress it. We need more startups, not fewer. Software—especially with generative AI—is one of the few options for us left that can create new markets, expand GDP, and drive compounding national growth. The upside is limitless. This is hammering our economy and it’s strangling startups at the exact moment we need them most.

Congress, do the right thing; restore the rules we had pre-TCJA.

Timeline:

- 1981: Section 41 introduced — provides tax credits for qualified R&D activities.

- Pre-2018: Under Section 174, R&D expenses (including software) were fully deductible; Section 41 credits could be claimed.

- 2017 (Dec): TCJA passed by the 115th Congress and signed by President Trump; Section 174 expenses to be amortized over 5 years starting in 2022.

- 2022: Amortization rule takes effect. Companies must now capitalize and amortize R&D expenses.

- 2025: Section 174 amortization remains in effect; Section 41 credits still exist but now come with a steep tradeoff.


But the idea behind capitalizing research and development is to eliminate the difference in financial presentation between buying and building software. In both cases, one pays cash to acquire the software then uses it over a period of time to generate revenue. Purchased software is clearly capitalizable. It is then amortized over the expected useful life of the software. Annual maintenance fees are not capitalizable as they are not expected to extend the useful life of the software. Allowing R&D to be capitalized just evens the playing field.

If R&D were not allowed to be capitalized, then a company would have an incentive to create a specific entity to develop its internally used software, then sell that software to parent company. If it set up the entities properly, it would capitalize the software as purchased software rather than R&D. Many firms with international development teams do this to manage in what country they pay taxes - the goal being to derive no value in high-tax countries and high value in low/no tax countries.


Thanks for the perspective—makes sense from a financial reporting lens. Curious how you'd balance that with the reality that modern software is rarely a finished asset, and startups often don’t have revenue yet when these costs hit.


We chose Tailscale as our mesh zero-trust platform primarily for its 4via6 subnet routing. Many of our interfacing networks reuse CIDR ranges, and we had no interest in maintaining a custom WireGuard implementation to handle subnet overlaps. The hidden operational cost of bespoke networking solutions is never trivial. Tailscale’s combination of 4via6, fine-grained ACLs, lightweight agents, and a customer-friendly licensing model made it an easy decision for us—especially given their flexibility around node licensing, which erred in favor of the customer and our custom use cases that would have otherwise inflated our COGS.


They need to implement secondary and tertiary domains—with diverse registrars and hosting infrastructure—for the Zoom client’s calling home. Maybe even a fallback anycast ip address for service discovery. Given how much companies like mine pay for service, it’s reasonable to expect that level of engineering foresight. But hindsight will do—let’s get it fixed. #HugOps to all employees working overtime and taking care of this.


It certainly was frustrating that the status host was also in the zoom.us domain.


I interpreted the message sas aying the fault lies with those who transmitted the top-secret through Signal and not a fault of the Signal company/app.


Bruce came into the world and made it a better place. Bruce was smart, kind, thoughtful, and generous. I have never met him personally, but early in my life, his story had a significant positive impact on my life. Like him, I too grew up in Twin Falls, Idaho. It’s a conservative state in an LDS Religious stronghold. My high school technology teacher (Mike) was married to his sister at the time and spoke fondly of him but more importantly, spoke specifically about who Bruce was. In hindsight, he knew I needed to hear it.

I wasn’t out as gay yet, maybe only 15 years old. Of course, it would have been a death sentence for a teenager in Southern Idaho to come out as gay. One day though, Mike told me “You know, you can grow up here and you can be /different/ in many different kinds of ways, you can be a band nerd, a guy who writes software, you can be gay, you can be /yourself/ and no matter what some adults might tell you right now, you will be okay. Not only okay, but you can live a fulfilled and successful life while being authentic and true to yourself. You are never the person that these adults claim you are. They don’t know anything.“ He then went on to tell me Bruce’s story and how in his opinion, of course, Bruce wasn’t “evil” or “wrong” for being gay.

In 2005, I wrote my technology teacher a personal thank you letter. I wrote one to Bruce as well and I asked if it could be shared with him.

Bruce took the time to respond:

  Dear Brian,
  Thank you for taking the time to write your letter.  I was very moved by your story.  There were parts that really reminded me of some of my own experiences in life.
  The beautiful thing about life, at least as I have seen it, is that if you keep trying and never doubt yourself, you really can make amazing things happen both in yourself and in the world around you.  I am sure you too have already touched many people around you and have been a positive influence for them. That's so very important.  You may never realize the good you are doing, but it is happening.
  Being gay is becoming more and more accepted as "normal" and one day maybe it just won't matter.  As for being a geek, I don't consider that a bad term.  The world needs geeks.  But then they need gays too!
  Thanks again,
  Bruce Bastian


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: