This one gem of an insight from Fred Brooks is important for any software person to know: a combined programming system product is 9x more costly than a program.
It's useful for you to know what you're writing when you're writing it. You've probably written a lot of mere programs: one-off executables that do a single task within many constraints and a whole lot of assumptions. It's not build to be re-used, it's built to get some job done once and be thrown away.
You can start, then, to go along two different paths: the programming system or the programming product. They are both three times harder to do.
When you go down the system path you break your program apart into components, give it sane interfaces, and let it integrate into other programs and systems. It's generalized to the point that you can plug third party code into it. You can write more programs leveraging it, essentially transforming it into an API. The result is a much more powerful and flexible program that can do things you never initially imagined.
When you build a programming product you give it a measure of flexibility in its functionality (in the form of user-inputted parameters) but with a ton of effort around validation, reliability, managing edge cases, good error messaging and handling, testing, documentation, and safety. You're making something that you can basically put into a box and hand someone with a price and a warranty.
Now, the real useful thing - the real money product - is the synthesis of the two: a programming systems product. This is both general and safe, both powerful and productized. This system has massive value, but is also far, far more complex to assemble and manage.
For Squarespace; the quadrants would be:
A single website. A website templating language.
CMS (Squarespace 5). Squarespace 6.