Ryan Schumacher
ryeyam.bsky.social
Ryan Schumacher
@ryeyam.bsky.social
data privacy enthusiast / fullstack platform dev / Go fanboy

https://github.com/jrschumacher
I was looking at your blog to see if you wrote about why but didn’t find anything. Do you have anything written about this? Assuming AI is a key factor.
May 28, 2025 at 10:50 PM
Oh are you developing against a deployed server? If that’s the case you should have multiple servers running per environment (dev, staging, prod)

If you are talking about local development this is where dotenv files have been helpful. You could always exec `DEVELOPMENT=true go run .`
May 15, 2025 at 11:45 AM
This bypasses cors
May 14, 2025 at 5:23 PM
Ah that makes sense. Cloudflare pages is nice for edge deployments.

Alternatively, you could use a Cloudflare Workers as a proxy to your Go backend. In my setup Pages will deploy the functions and it operates as a BFF.
May 14, 2025 at 5:22 PM
I always try to use makefiles but it can be really challenging when working on larger teams where the desire and experience with using makefiles is typically lacking.

I’ve also used Containerfiles and --target to execute a single step. This enables reuse between the dev and CI.
May 14, 2025 at 8:43 AM
Why not serve the frontend from the Go backend? I built this library to help with that github.com/jrschumacher...

Currently I’m using it in a private project, but will get the example working today.
GitHub - jrschumacher/go-spaserve
Contribute to jrschumacher/go-spaserve development by creating an account on GitHub.
github.com
May 14, 2025 at 8:38 AM
Nice work. Is there a reason you didn’t want to use `find . -type d -name node_modules -exec rm -rf {} +`?
May 14, 2025 at 8:31 AM
Here’s a link to our sqlc query.sql github.com/opentdf/plat...
github.com
May 13, 2025 at 7:21 PM
Yeah that is a bit of a challenge thankfully we were able to refactor some and eliminate a handful of them. Others we duplicate the queries with the variations.
May 13, 2025 at 7:05 PM
Postgres it’s been 10 years since I’ve used Mongo last, but between the non-performant aggregations, lack of foreign keys, and enforcing constraints app side I lost a desire.

With Postgres I get ACID compliance and key-value with JSONB.
May 12, 2025 at 4:17 AM
Go has pkg.go.dev but I agree crates.io is a better experience. Another thing to consider is that one of Go’s proverbs is “A little copying is better than a little dependency.” Coming from the Node community this resonated with the various supply chain attacks and the left-pad npm fiasco.
May 8, 2025 at 4:48 AM
Sounds like it’s not configured to your liking. The `unused` linter will check for unused vars and the like golangci-lint.run/usage/linter... and the ifElseChain under gocritic will resolve the other golangci-lint.run/usage/linter...
May 8, 2025 at 4:35 AM
I send my kids to a computer free school for this reason, but this problem predates LLMs. Moderate struggle fosters creativity and curiosity. I want them to learn how to do hard things early so they can be resilient and appreciate the scale of technology.
May 7, 2025 at 7:59 PM
Do you use golangci-lint? Of course it would be nice if the compiler handled some of this, but it will handle most of these case you described.
May 7, 2025 at 7:49 PM
It would be great if it had evolving opinions based on the latest trends on hackernews.
May 7, 2025 at 2:42 AM
I felt similarly moving from JS but then 3 years later I picked it up again, this time I was fed up with JS variability and heavy reliance on toolchains. I just wanted something more opinionated. Go is now my go to even for scripting.
May 7, 2025 at 2:39 AM
Generally, monolith is lower complexity but higher cost at scale while microservices are higher complexity and lower cost at scale.
So it just depends on your production reqs and team size.
May 3, 2025 at 2:24 PM
We don’t use Websockets or (distinct REST) but ConnectRPC which supports gRPC and HTTP. We’ve also built a modular binary so it runs as a monolith or microservices depending on production needs.
May 3, 2025 at 2:20 PM
The INIT phase is manufactured in China.
April 30, 2025 at 12:00 PM
A new tool shouldn’t be needed. You can use one the existing tools like github.com/evilmartians... to add precommit hooks for the various jobs. For go that will probably be golangci-lint and go test.
GitHub - evilmartians/lefthook: Fast and powerful Git hooks manager for any type of projects.
Fast and powerful Git hooks manager for any type of projects. - evilmartians/lefthook
github.com
April 18, 2025 at 3:27 PM
How so?
April 18, 2025 at 3:24 PM
I think this is an under appreciated technique. This makes decisions not to use a value explicit rather than implicit.
March 9, 2025 at 5:44 AM
Try concave earth theory. There are some Wikipedia articles but the only posting I’ve found online giving it some modicum of credibility was this site web.archive.org/web/20220125...
Concave Earth Theory – The Wild Heretic
web.archive.org
March 8, 2025 at 1:28 PM