Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

As a personal project, I'm creating a single page, web application using Nancy to provide RESTful services to the single page. Due to the complexity of the single page, particularly the JavaScripts used, I've think creating a dedicated project for the client side of web development and another for service side will organize and simplify the development.

  +-- web / client side (single html page, js, css)
  |    - contains project, and nancy library 
  |      to host the modules in application project folder
  +-- application / service (nancy modules, bootstrap for other layer)
  . and other layers (three tier, domain driven, etc)

Is this a good way of organizing a complex single page application? Am I over-engineering the web app, incurring too much complexity?

share|improve this question
Off-topic. You might want to try: – Jim G. Dec 11 '12 at 4:10
I've checked the FAQ of codereview and it considers "Higher-level architecture and design of software systems" as off topic, though honestly, I'm torn as to consider if my question is a higher-level architecture or not. Nonetheless, thanks for the post. – OnesimusUnbound Dec 11 '12 at 8:09
up vote 1 down vote accepted

There is really nothing wrong with splitting them apart or keeping them together. If you plan on reusing you nancy services for other front ends it would make since to keep them separate. It would be trivial to factor out a single page with no backend later on if needs change, so just do what makes the most since to you -its just personal preference.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.