Hacker News new | ask | show | jobs
by HarveyKandola 2078 days ago
It's not easy unless you begin with that mind-set from day one.

In fact, it gets tricky as you have "location-flagged" functionality depending upon Cloud or Self-hosted.

We did this from scratch @ Documize by making (bold?) choices around deployment/runtime and database schema design for both SaaS and self-hosted "products":

- run the exact same binary (we used Golang)

- share/use the exact same database schema

- data migration process the same for schema changes

- support multi-tenanting: "enterprise" self-hosted also multi-tenanting so different teams/departments internally get different URLs

- use the same "build" process to compile and ship

Probably plenty more I could tell you!

1 comments

I know it's not easy, but it's the only viable path form my experience. I ended up doing something similar, but taking our SaaS product and packaging it in a way that it could be run On-Prem. There was a really interesting feedback cycle where we wanted to make the On-Prem and SaaS deployments work as similarly as possible.