​John
banner
sheek.org
​John
@sheek.org
Most online communities are just rented space.

I'm building something different: a real home for your people, on your server. Honest, simple, and yours forever. No landlords allowed.
Took a short break because life is too short 😛

Back to work 🍿

I fleshed out app settings a bit more. I added default values, you can now cancel changes, reset, and if you save a change, it's saved directly to the db. Much better 😙

#javascript #dev #webdev #buildinpublic #UX #community
November 6, 2025 at 3:41 PM
The internet's primary goal was information sharing. Beautiful. Amazing

An unintended consequence of this was the formation of communities around shared information. Random strangers that care about the same thing

But this stuff. This layer, the community layer, is what's broken.

The tech failed.
October 16, 2025 at 10:00 PM
I wrote another open-ended thing about online conversations and communities

Just like the last one, it's essentially a train of thought and very rough around the edges. The ideas are there and that's enough

#community #buildinpublic #forum #dev

github.com/Sheek-org/Bl...
October 12, 2025 at 10:00 PM
boring, bland, frictionless, dystopian internet. Everythings a 'space'. and every space is owned by the same five guys in california.

we did this to ourselves. we traded ownership for convenience

the old internet wasnt a global town square. it was a million different little dive bars.
October 10, 2025 at 9:51 PM
Today's 🌶️ take

Code related to a URL segment in the browser should - mostly - live in the same folder on your server.

Wild stuff. I know.

#javascript #dev #webdev
October 9, 2025 at 7:54 PM
This took a surprising amount of time to get right, but I added app settings ⚙️

The idea is simple. You do the vast majority of config in an admin interface.

#javascript #dev #buildinpublic #webdev #UI #admin
October 6, 2025 at 6:56 PM
Nobody:

Absolutely no one:

JSX:

#javascript #dev #webdev #jsx
October 5, 2025 at 7:49 PM
This was and still is peak internet and I don't care what you think.

www.cameronsworld.net
Cameron's World
🌍 A web-collage of text and images excavated from the buried neighbourhoods of GeoCities.
www.cameronsworld.net
October 4, 2025 at 11:47 PM
I wrote a thing.

github.com/Sheek-org/Bl...

It's a train of thought for the most part, so I won's argue for my ideas, but I'd welcome your perspective.

#community #forum
October 4, 2025 at 8:00 PM
More fun with on the fly image processing ✨

Doing it programmatically means there's a "general" max width for display images (based on user's screen dimensions * DPR). This avoids useless bandwidth

Plus, there's UI elements that have known dimensions

#dev #buildinpublic #javascript #performance
October 2, 2025 at 10:50 PM
Did some work on images 📸

You're probably seen this pattern before. Resize and transform images on the fly with query params

Watch a 700KB image shrink to 20KB when we pass the right params we need (for its place in the UI) to the image server

#javascript #dev #buildinpublic #performance
October 2, 2025 at 9:10 PM
Worked on a first pass for the #chat page 👷

Wired up some db collections and some UI

It was much easier to get into because the design patterns from the forum page translate well here. I've always been a fan of emerging patterns in place of extensive planning

#javascript #dev #buildinpublic #ui
October 2, 2025 at 6:28 PM
I'm going to stop the first (rough) forum thread list work here

I feel like I got a lot of the ideas down. More importantly, the shell is there to continue when I get back to it.

I'm moving on to chat next

#dev #ui #javascript #forum #buildinpublic #webdev
October 2, 2025 at 12:18 PM
Spent some time thinking about the thread list

What info is actually useful once you do all the filtering?

I mostly care about three things

The title
When it was last active (relative to my time)
and how many people replied to it

the rest is... noise

#forum #UX #dev #javascript #buildinpublic
October 1, 2025 at 8:46 PM
Ok, brainstorming a bit here.

What if... we treat taxonomies as actors.

"movies" is a category in the forum. But what if it becomes [email protected] (the public name is "movies" this is the internal stuff)

When you create a new thread there, you're "sending it" to that actor.
October 1, 2025 at 1:36 PM
"The UI as the URL editor" is a nice mental model 👷

You have all kinds of inputs to add let the user control the URL, then you show a single list that incorporates that URL

The URL is shareable and the list is live because you sub with the same filters

#javascript #UI #buildinpublic #dev #forum
October 1, 2025 at 11:30 AM
Made some more progress on the forum drill-down 🎨

There's still a lot of stuff to iron out, but I'm really liking how everything is locked to the URL.

#community #forum #dev #javascript #buildinpublic #webdev #UI
October 1, 2025 at 9:14 AM
Worked on UI layouts for the different types of content 🖌️

It's mostly drill-down because I think this is the most efficient way to explore content.

#buildinpublic #community #javascript #webdev #UI
September 30, 2025 at 7:07 PM
Breaking news.

People discover that horrible triangle company is in fact...horrible.
September 29, 2025 at 8:36 PM
I added the Node app server back, but in a much better way 🦄

It's now a very direct way to call functions on the server. Always returns JSON and the functions are "mostly" pure.

It's integrated with the main db. ctx.user is the read user from the db.

#javascript #dev #fullstack #buildinpublic
September 29, 2025 at 5:15 PM
systemd auto restarts with delays and max retries is such a good pattern

random fatal errors become more like minor hiccups unless there's something fundamentally broken

#javascript #dev #buildinpublic #backend #devops #webdev
September 29, 2025 at 1:07 PM
The scope of the project is increasing a bit and I now have a bunch of services I need to manage🏃

I added an install script that will offload all of that to systemd

This means we get auto-restarts and all kinds of systemd magic 🏋️

Npm no longer runs anything

#javascript #dev #buildinpublic #infra
September 29, 2025 at 12:17 PM
I removed the main Node server in favor of smaller stateless processes

A new dev-only process runs a persistent esbuild build. This detects changes and has it's own SSE endpoint for live reload

Another dumb process will be for on off server functions - JSON

#javascript #buildinpublic #dev #webdev
September 28, 2025 at 9:38 PM
Today's 🌶️ take

The internet was designed so that a bunch of nodes that contain a bunch of documents can respond to requests for those documents.

See how there's no "central authority" here?

Using mega corps to host your docs or to "protect you from bots" defeats that purpose.

#dev #buildinpublic
September 27, 2025 at 2:28 PM
Part of the RFC I shared is

"The whole promise is this: you get a cheap server, you run one command, and your community is live"

Getting to that point needs a bit of planning.

#javascript #dev #infra #buildinpublic #webdev #community
September 27, 2025 at 1:12 PM