view the rest of the comments
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil.
-
No spam.
-
Posts are to be related to self-hosting.
-
Don't duplicate the full text of your blog or readme if you're providing a link.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.
-
AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
yjs too! the trick that worked for me was just not round-tripping yjs -> json -> db on every update, canvas state lives in leveldb as raw binary (y-leveldb), the relational db is only used to seed it when the doc is empty. after that leveldb takes over. y-indexeddb on the client for offline, works pretty well actually
on your second question yeah same struggle lol. connections are loose by default, to keep it manageable folders have a single-parent rule, no reverse refs, collapsing hides the whole subtree. frames are there too but purely visual. for kanban task relationships i just moved them out of the canvas entirely and stored them in the yjs content object, otherwise the graph gets unreadable fast
auto clustering and edge bundling are still missing tbh, when the graph grows it gets messy and right now the answer is just "use folders and frames", not super satisfying
the freeform vs structure thing is something i keep going back and forth on, leaning toward soft constraints that nudge rather than block. curious what you're doing on that front!
nice that yjs worked for you :)
We're blocking where custom options don't make sense - which are a few since context is often constrained in our domain - but will probably enable users to do their own stuff with plugins. That way, the platform hopefully stays usable but extendable..