SKIP TO CONTENT
SEPTIAN.PADLI
← BLOG INDEX
PROJECT LOGPOST / PUBLISHED

Notes from the CubyCloud Workbench.

A journal entry on framing a lightweight, self-hosted storage product as one system—not a frontend stapled to an API.

1 MIN READ
IN THIS NOTE / 2 SECTIONS

This is a working journal entry, not a post-mortem. CubyCloud is a personal project for exploring a lightweight, self-hosted cloud-storage experience with SvelteKit and Golang.

The useful question is not “can I make storage work?”

A product like this becomes interesting when its layers can be reasoned about together: a user’s file view, the API contract, storage behaviour, deployment constraints, and the maintenance burden after the first demo.

INTERFACE  →  API CONTRACT  →  STORAGE FLOW  →  DEPLOYMENT
       ↘____________________________________________↗

Small systems still deserve clear boundaries. They just do not need theatrical ones.

What I am trying to keep honest

  • A feature should justify its operational cost.

  • Self-hosting should be a product property, not an afterthought.

  • The interface must make the system legible before it tries to look clever.

// A boundary worth keeping small.
type Storage interface {
  Put(ctx context.Context, key string, body io.Reader) error
  Open(ctx context.Context, key string) (io.ReadCloser, error)
}
#CUBYCLOUD#GOLANG#SELF-HOSTING#SVELTEKIT
# RELATED

KEEP
READING.