ten_cubed caps your network at 10 close connections across 3 degrees of reach, a hard ceiling that mirrors how human trust actually works. No feeds tuned for virality. No followers. No influencers.
Adding an 11th means removing one. The 1st degree stays coveted.
Three degrees, ever. No app or service can exceed it.
No follower counts to accumulate. Nothing to enshittify.
You can never hold more than ten direct connections.
Ten friends, one hundred friends-of-friends, one thousand at the third degree. A family, a village, a small city. Dunbar-scaled by design.
Users choose how deep their network reaches. Privacy-first? Stop at 10. Open? All 1,110. Never more.
Content propagates to your 3rd degree, then stops. Coordinated manipulation simply doesn't scale.
With only ten slots, the 1st degree is coveted and deeply trusted. Apps can build on that trust in ways hyper-scaled networks never could.
Nobody can accumulate followers, so nobody can monetize an audience in questionable ways. The enshittification cycle never starts.
One-to-many platforms don't map to ten_cubed. Your audience caps at 1,110 by design. If you need unbounded reach, this isn't your graph.
Drop a 1st-degree connection and their entire branch vanishes with them. Apps must decide: hide orphaned content, label it, or cancel pending transactions.
No graph database. No infrastructure. A single recursive CTE walks the network outward from any user, respecting each connection's own max_degree along the way. Drop it into Postgres and you have a bounded social graph.
-- Set once per session:
SET ten_cubed.user_id = '42';
SET ten_cubed.max_depth = '3';
WITH RECURSIVE friend_of_friend AS (
SELECT connections.target_id,
users.max_degree,
1 AS depth
FROM connections
JOIN users
ON connections.target_id = users.id
WHERE connections.user_id =
current_setting('ten_cubed.user_id')::bigint
UNION ALL
SELECT connections.target_id,
users.max_degree,
depth + 1
FROM connections
JOIN users
ON connections.target_id = users.id
JOIN friend_of_friend
ON connections.user_id
= friend_of_friend.target_id
WHERE depth <
current_setting('ten_cubed.max_depth')::int
AND depth < users.max_degree
)
SELECT DISTINCT ON (users.id)
users.*,
friend_of_friend.depth AS degree
FROM users
JOIN friend_of_friend
ON users.id = friend_of_friend.target_id
WHERE users.id !=
current_setting('ten_cubed.user_id')::bigint
ORDER BY users.id, friend_of_friend.depth;
Find amazing books from people you know.
An intimate space to discover and share great books. No ads, no gimmicks, no infinitely growing social networks.
Start Your ShelfBooksCubed is an intimate space to discover and share great books. Every recommendation comes from someone close to you, because the graph underneath is ten_cubed.
Many ideas work incredibly well inside the limits ten_cubed provides. What will you build?