Architecture planning (sub domain vs sub folder with possibility of promoting to main domain in the future)

A potential client has an existing site and would like some custom concrete cms work done in a sub-directory or subdomain of their site. There is the possibility in the future they will want to migrate the entire site over to concrete cms (fingers crossed).

Any thoughts on what would make my future self thankful? A few options I’ve been thinking about:

install concrete at /sub-dir/ and access the system through /sub-dir/system-dir/


  • in the future do not need to move the system in the site tree.
  • can build out the site under concrete’s Home page and just use permissions to prevent public access in the mean-time


  • the system would currently reside an extra level deeper than it needs to which is less ideal SEO-wise
  • after promoting concrete to be the primary site the URL for the system would change to /system-dir/ (which could likely be resolved by 301 redirecting any existing urls)

install at /sub-dir/ and access system through /sub-dir/

  • nicer url for the system to begin with which could stay the same after launching


  • where would the new site be built out? Would it be possible to create a /home2 in the concrete install and promote it to be the home page when launching? How would the system’s single pages move under it in this scenario?
  • I believe if the URLs for the single pages are changing that would require updating their namespaces / location in the package/controllers/single_pages/ file system. Is there another way to handle this?

subdomain at app.domain/system


  • concrete installed at base directory
  • system will already reside at it’s final location in the site tree (just drop the sub domain part) so won’t need to move it in the -site tree
  • can build the rest of the site and use permissions to control access until it is ready.


  • nothing standing out other than it being on a sub-domain

Has anyone else gone through a similar process? What were your takeaways from the experience?


Hi @triplei,

In my experience, subdomain is the cleanest - running a system out of a subdirectory is always fraught with weirdness (permissions inheriting down on the filesystem, the fact that you’re implying a hierarchy that doesn’t exist, etc.)

Concrete is really good about being fairly domain-agnostic as long as you clear the cache after you make the switchover. Personally I would go subdomain every time.