Which CMS as the basis for a custom web application [closed] - php

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm looking at building a custom web application for a client (a specialized auction site, in this case), and we're evaluating using some existing CMS as the "scaffold" for the application.
The justification is the fact that for many custom web application projects, some 70% of the code written goes in to adding CMS features, user management, and basic admin CRUD. Presumably, if we start with an existing CMS, then those to components will already be built.
We've decided to stick with PHP for distribution and deployment reasons. The top CMSes we're evaluating are Wordpress, Drupal, and Joomla. Here's our analysis so far (listed in order):
Wordpress
Pros: Dead-simple design. Extremely popular and understood. Very solid recent security history.
Cons: Perhaps a little too simple -- can it be made to work?
Drupal
Pros: Potentially more friendly to custom application development. Decent security history.
Cons: More complex and difficult to understand.
Joomla
Pros: Popular and well understood.
Cons: Some security concerns
Once of the biggest issues we're running up against, and what we hope to gain from the S.O. community is understanding how easily these can be customized to become a custom application. As an example, when the client goes into his administration area, will he get the impression that this is an, "auction site with a built-in wordpress CMS", or will it be a "wordpress site with an auction plugin"? We're hoping for the former rather than the latter. But can it be done?
Or perhaps are we looking in the wrong direction? Should we be looking instead at something like CakePHP? (Note that options like RoR and Django are off-the-table because of distribution and deployment reasons.)
Here are some related (but not identical) questions which have some useful information:
Using a CMS to Design a Web Application
CMS for custom application

This is a question we used to face regularly.
Our development arsenal consisted of Wordpress and CakePHP. We used the former where we could and the latter when we really had to.
Unless you're doing something really radical, you can probably do it with (something like) Wordpress. These days, the admin area can be heavily modified and custom taxonomies allow for meaningful entities rather than just posts and pages.
What you need to consider is the wealth of features and testing that comes with an established CMS package. Plus, Wordpress et al. have an enormous collection of plugins/extensions, which can take you even closer to where you need to be.
I guess what I'm saying is, you'd find it hard to convince me to drop back down into something like CakePHP.
EDIT: Six revisions have a great post on customising the admin area. Also, if you have specific wordpress queries, remember we have a really strong stackexchange site waiting for your question!

Unless you're doing something radical you're going to be better of using a CMS (in agreement with Tom Wright above).
I'll pitch in for Drupal. Its a extremely capable CMS that powers some world class websites like http://www.whitehouse.gov (The US President's Official website). That itself speaks volumes about its scalability, reliability and security.
Check out http://drupalsites.net to see a whole set of websites made in Drupal. Once in Drupal you'll have access to one of the most active communities out there for an open source project. This community has produced over 2000+ free modules (or add-ons) to meet requirements that cannot be fulfilled by vanilla Drupal.
It is true that Drupal has got a sharper learning curve than Joomla or Wordpress. But Drupal, I believe is more powerful than Wordpress and Joomla. Once you've mastered fundamentals of Drupal its easy to roll out features. The whole Drupal system just feels consistent. Some CMSes are an endless series of one-off modules that just need to be configured that way. Drupal has some powerful modules like Views and CCK, that, once mastered will help you accomplish so many things that would have required many different hacks/add-ons/custom programming in other CMSes.
Joomla has a reputation for being easier to learn but ultimately difficult for building truly complex and massive community based sites. Wordpress, though fast maturing with version 3.0 is still a ways away in being as feature rich as Drupal/Joomla. Then there are some other upcoming CMSes on the horizon -- check out Packtpub CMS awards -- you can see some good CMSes listed there.
Essentially it comes down to this -- CMSes like Drupal are built to accommodate mainstream website needs. If your site is not radical (today's twitter or foursquare equivalent) stick with Drupal/another CMS. The development times are just severely reduced. Only once you feel that what you are doing is not practical in a CMS should you choose a framework like Cake, Django etc.

I'll jump on the use a CMS bandwagon as well. There is simply no point in starting from scratch unless you have a truly unique app that doesn't need any of the stand user/content type stuff.
I would base my decision on how tech savvy the client is. I would tend to stay away from Wordpress as extending it is not nearly as simple as Drupal or Joomla. It takes a lot more work to get Wordpress to do the same thing and its feature set out of the box is very limited.
We generally go with Joomla because the admin is a lot easier to teach a client than Drupal. Drupal has better user management and access control out of the box than Joomla, but there are very good extensions that can give you both if necessary. I think the other advantage Joomla has is its MVC architecture and huge development community. Nearly 6000 GPL extensions and many more non-GPL. Add in a good CCK like K2 and the sky is the limit.
As for customizing the admin, we use a custom install for our commercial sites. It's branded with our logos and all of the Joomla stuff is removed. None of the core extensions that are unused show up in the admin and depending on the purpose of the site it can be made to look like an app with a built in CMS. None of the changes we've made touch the core and most are simple settings turning stuff on or off as needed. You can even take it a step further with a simple admin extensions that gives you granular control over what a user sees when logged in to the admin. We haven't felt the need for that though.
In the end, it's more about which CMS you feel the most comfortable coding extensions for. It's already been proven that all 3 can be made to do basically the same thing so pick the one you like the best.

Our company has a great experience in web-development, but it was decided recently to direct common energies to web-development based on Drupal development because only in case of Drupal developments customers get:
a web-site build on the safe system which is based on open source code, the system which is tested by million users all over the world. professional content management system;
it is more likely that possibilities of Drupal system are limited by developer’s imagination rather than facilities of Drupal itself; this will be a web-site with great performance and scalability;
confidence that CMS producer won’t disappear;
web-site with moderate price even if there is a need in development of some specific features which are not developed in Drupal yet;
new versions of Drupal core and its modules are available for free.

I would definitely go with ExpressionEngine. It's a very full-featured CMS, and using it's Query module and allowing PHP in templates, you can get pretty fine-tuned from within the CMS framework.
If you need more power, it's built on top of CodeIgniter, and developing add-ons for it is very easy for a decent developer.
It's not free, but it's pretty perfect and worth the cost ($300 for commercial sites).

Related

Pure PHP CMS or Laravel based CMS for web application development

I am setting my own software development company and I have to choose how to organize our work. We will have to develop website and web applications in general in the near future and I would like t organize the workflow in the way we don't loose more time then needed on development process.
My concern regarding the above, is to take one of the tons of PHP existing CMS out there and use it as a base for all the coming projects or take a Laravel CMS such as OctoberCMS, or similar and use it as a base project. The former gives me more choice, because there are many CMSs with a lot of modules and templates ready to use, the latter would be a great base either for small websites and also for more complex web applications, being Laraval a MVC framework it is ready for developing more complex web applications, but offers less functionality and modules (for example OctoberCMS provides a not very easy CMS tool for editing pages, which would be not suitable for my customers).
I would like to hear your suggestions and thoughts.
Thank you
I kinda had the same trouble months ago, and I ended up choosing the framework option.
After months developing and using Wordpress-based solutions for my clients I noticed that the start up of every single project was very fast (easy to install, lots of materials available for free or cheap) and enough satisfactory, but the hell arrived every time there were some more-than-little modifications (logics and design).
Using a framework with a pattern like MVC (I use Yii) may be more difficult at the beginning, but write, debug, and organize your code is far more fluid and satisfactory, on the long run. Even a module (cms) can be easily extended or rewrite with lesser effort than packed CMS solutions like Wordpress.
So, summing up: upvote for framework option.
I made the decision to switch from WordPress being my defacto platform for new projects when Laravel Framework v4 was released, much for the same reasons mentioned by #SomethingWicked. I also have a fundamental issue with Matt M. and WordPress Core development team, that WordPress is an Application Platform. It is not, it is a Content Management Platform. Purely because it takes too many liberties in making assumptions (biased to blogging and content management) for the user.
I am also a firm believer in the 12-Factor App (http://12factor.net), which WordPress makes very difficult, neigh impossible, to adhere to.

What is the difference between a CMS and a Framework? and how to choose between them for certain requirements?

I am currently working with Zend Framework and I am extremely happy with it. What I want to know is at what kind of requirements it is better to use CMS's like Joomla or Drupal.
Considering my current project it is a portal application. It is completely made from scratch in Zend. Then some fellow comes and comment that it rather implemented in drupal you could get plugins for the stuff you built by hard efforts.
So I need a guideline for how to choose between CMS and A Framework at the kickoff phase?
The question in your case is whether to use a ready made CMS or to create your own system using a framework. The right answer depends on the following:
budget
number of users you will have (long term performance concerns)
further maintenance
total number of details (bells and whistles) you want to provide on the site
implementation with third party/custom APIs
special/custom features that require high level of freedom (example: StackOverflow reward points and badgets)
As this is a question most of us face pretty often, here are cons and pros of a ready made CMS vs a framework:
Ready made CMS
Pros
faster start and development time if your project generally fits in what the CMS provides
available modules and themes
backed up by community, meaning that new features, bugfixes, support, tutorials etc. will be provided to you free of charge
unified set of standards - it's easier to continue working on an existing CMS site than to take someone else's custom application (this is relative, but the point is that in a site that uses an existing CMS most of the things/setup will be familiar to you while in a custom app the previous developer had more freedom)
security is something you do not need to worry that much as in a custom app
Cons
if your requirements are very specific, you will need to override the default workflow of the system; in some cases this can be tricky and will make you spend more time than to write your own
redundant code in modules/plugins
performance - a ready made CMS will rarely be as fast as a custom made application
not suitable for every large website (unless you fit in almost everything that the CMS provides)
steep learning curve in some cases (Typo3, Drupal)
Custom application
Pros
it's up to you to define the structure and the logic of the application
app design is made especially for the project you are working on - so there is no redundant code
freedom to do anything you want
Cons
expensive - in most cases you/your client will need much more money for a custom app
further maintenance will be harder
changes and modifications of the structure can be very time consuming
if you aren't using a CMF you will have to reinvent the wheel in some aspects
Bottom line
Spend a couple of days and learn something about the CMSs out there, such as:
Drupal - my first recommendation; good for medium to big websites; good community; medium/steep learning curve
WordPress - my second recommendation; good for small to medium sites
Typo3 - enterprise level system; pretty complex, combined with a framework which can be used standalone in projects
Joomla - I personally don't like it and do not recommend it because of amateur plugins, but it is popular
SilverStripe
MODX
Concrete5
I think that any bigger and serious project, which will have at least 1-2 programmers to take care of the system at all times, should be custom. Exceptions are only if it fits exactly in what an existing CMS offers already.
Hope this helps :)
Take a look at Difference between a CMS and a web-development-framework on StackExchange.com.
A CMS (Content Magagement System) is used to manage content on a website. It usually provides tools to make this task as easy as possible.
Examples of CMSes: Drupal, Joomla, DotNetNuke etc.
A framework is like a set of libraries / classes to build a web application. Many frameworks provide libraries for database access, templating engines etc. This way, you don't have to reinvent the wheel.
A CMS is often build upon a Framework.
Examples of frameworks: CodeIgniter, CakePHP, Kohana...
#Voles mentioned what CMS and Framework is
So your question is "guideline for how to choose between CMS and A Framework "
Want to build a Blog or a simple website ?
Go for Wordpress , Drupal etc.
Want to build next facebook or stackoverflow or app of your own which the current cms is hard for you to learn or is limited with the features?
Then go for some frameworks or custom made ones. Be sure that you know how to build it in the right way.
You can have a look into http://cmf.symfony.com/ also.
Hope that makes clear.
Apart from all pros and cons of CMS and Framework , According to me you need to study your requirement at the time of kickoff. List out the modules you want in your application. Now check that how many modules are available in CMS you know about like drupal , joomla , wordpress etc. and also check out that how much customization you need in this available modules as well as custom modules you may need to develop as per your requirement . And if you found out that with minimum customization you can use any particular CMS and than go for it.
But in case your application may very complex in nature than I suggest go for any MVC framework like Zend , Cakephp , codeigniter etc.
Yes one other thing go with any CMS or Framework that you well versed with it.
Framework is like a library by using this library we can develop new thing.
Whether CMS as name imply its an inbuilt source to manage the content.
Like wordpress we don't need to develop anything.
Framework are the creator of CMS , CMS is basically a Content Management System which focuses on content managing where everything is perfectly setup for you with few lines of code and logics ur website or small app can be developed
Whereas in framework its deeper than CMS everything you have to write from scratch or use existing library which is generally used for making big app. Hope this would help
As far as I know, CMSs and MVCs are web application frameworks with coding libraries. CMS is way easier to use for beginners, as it has its pre-made functionalities available, so you will not need complex coding. I found useful information in Wiredelta's article, maybe this will help for you as well: https://blog.wiredelta.com/cms-mvc-framework-comparison/
Difference
CMS: A content management system (CMS) is computer software used to manage the creation and modification of digital content (content management).
Framework: A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs.
A Framework offers a basic web application structure with a set of tools, to let you build your own web application, or even a CMS.
How to choose between them?
I have been working for many years with different open source CMSs (Much with CMS Made Simple, Prestashop. A bit with Drupal, Wordpress) and frameworks (Much with Symfony, a bit with Zend Framework).
My conclusion is:
If your requirements can be fulfilled with features of an open source CMS, and there are only a few custom requirements, use that CMS
If your requirements are complex and/or more custom, use a framework
Problems when using an open source CMS
Plugins often don’t provide all features you need
Community plugins
Have limited features. If you want to extend the features, you end up copying or modifying plugins, making them harder to update
May not be compatible with other plugins or even with the CMS version you have
Harder to debug since it's not the clean code of your team
May not be fully for free and come with additional costs
You spend a lot of time on searching and evaluating plugins
Own plugins
Limited CMS features (eg. missing dependency injection) may lead to unstructured coding
When your plugin gets more big and complex, you may start to ask yourself, why not having used a framework from the beginning
High learning curve, depending on the documentation, technologies used, and how many architectural rules you have to follow
Highly dependent on community
You may not get a fast answer or solution from the community
You may have to debug deep into hardly-to-read plugin or CMS code
Own fixes make updates difficult
Usability
Admins may get overwhelmed about default features, and may generate more support tasks for the developer, where a simple content editor for the admin would suffice

can you create sites automatically (with a html page) with drupal on the same server?

I've read that you can host multiple drupal sites, while they use the same core files(so not needing to copy a few megabytes for each site). I wanted to ask if there is an automated tool that can create a new site, while let you choose a template and then connecting it to the drupal system?
Are there tools like that(with a web layout)?
I would really like to get a few pointers as to how, lets say a company for building websites, will be able to use an automated system to build sites easily. I also understand that with drupal you have alot of manuver to edit your own code, when lets say you want some future in one of the sites. Is it pure php/html or in order to do that you have to delve into core Drupal futures? Also what are the chances that somebody already did it before and you can use this module?
Last, if a company wants to move to a Drupal system (web development company), how much of a transformation is it? Should they be Drupal core experts in order to not lose themself? Or they can keep a drupal base while still using the regular html/php? I really appreciate any leads.
Thanks.
*the questions is also intended to Joomla.
To answer your first question, the Aegir project is a system whereby you can use Drupal to create and manage Drupal sites. That includes installing from install profiles--which are sort of like site templates--or a distribution (Drupal installations pre-packaged with modules). The downside is that installation is fairly involved, more so than just Drupal itself. There's a lot of documentation on the Drupal groups site for Aegir. For a straight multi-site install, there's some documentation on the subject, but the install instructions with the software come with help that you should consult first.
As for your second question, the answer is (unfortunately) "it depends". Knowledge of PHP, especially "the Drupal way", plus integration with the community, are huge plusses. If you intend to join the community, immediately sign up both yourself and all developers an account on Drupal.org and, if you find solutions to bugs or other problems, providing back is a sign of goodwill, and it usually pays back dividends (one example: you submit a patch, it gets included in a module, and then the community maintains it for you). Developers need not be experts with Drupal core, but they need to be pretty comfortable with learning the API and knowing how to create sites for clients in general. First start with requirements gathering, then see how it fits into the Drupal way of doing things. If it doesn't fit, then use the right tool.
That's a tip of the iceberg view from the developer's point of view (as opposed to the businessman's point of view). There are plenty of companies that do only Drupal and there are plenty of companies where Drupal is one tool they use out of many.

Recommended open source content management system for corporate website? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
We're preparing to rewrite/restructure our corporate website and are looking for a CMS to back it. I need the CMS to provide a way of giving certain users in our company control over certain sections of the web site (i.e., allow our Marketing department to update press releases, our HR department to update job postings, etc). It should also be reasonably non-techie friendly...
Is there a particular one you'd recommend, and why? Personally, I'd prefer a ruby-based system, as we have a lot of that skill in-house, but I'm not sure the ruby ones have reached the level of functionality and following that the PHP-based ones have.
I recommend Drupal since a lot of major corporations use it to power their content sites (see Fast Company, Yahoo! Research, The Onion, 43folders, etc.)
Drupal is proven, very robust and solid. It has a large user-base, very helpful support, tons of modules/plugins and extensions to their code base. For developers, it is a fast setup and very easy to extend. For designers, the Drupal templating system is a lightweight way to integrate their designs.
Drupal also has an extensive role-based permissions system which will allow non-techies to manage rules as well.
As for ruby, the only thing I've seen come close is Radiant CMS. They too have a lot of modules/plugins available but I'm not sure how mature the project is. They have a simple role-based permission system too.
Comatose is another option, but it is a CMS plugin rather than a CMS package itself. It sits on top of rails, which may be a good or bad thing depending on your skill set, preferences and existing setup.
Our company uses Drupal. We chose it mainly because it's as close as we could find to an industry "standard", and it hasn't disappointed us.
Our graphics/UI person (who can't program) has no problem working with the "theme" files and "blocks", although she did have a slight initial learning curve as she figured out how they all worked together. Our blog maintainer (who doesn't even know HTML) can add entries to the blog using Drupal's rich text editor (ie. without knowing any HTML). And us Engineers ... well we pretty much haven't needed to interact with it at all once we got it setup (which was easy), so we have no complaints.
Of course, as with anything like this, your mileage may vary, and since I only used Joomla briefly I can't say that Drupal is necessarily better than it. I can say though that Drupal is more than capable of handling the front-end (our back-end is JSP) of a major website, and that it can be edited easily by non-technical people.
Joomla is my absolute favourite CMS for corporate intranet websites, it has fine grained access controls, is easy to extend and has a huge community built up around it.
I found Joomla a little easier to understand. A harder alternative, but with more features is Typo 3. Drupal is nice too.
Whatever you choose, make sure it is a well known open source name. Otherwise you may fall in a vendor lock or find no support.
I'm surprised that noone has mentioned Typo3, as every company I've ever worked for has used it.
It's quite extensible and I've yet to see the support for controlled userpermissions in an other CMS.
If you want a Ruby-based CMS, you very likely want Radiant. There are others, but I've found Radiant to be the easiest to extend. It's reasonably mature at this point, and some of my friends use it almost exclusively, with great success, for building client websites. There is also a very good PHP clone of Radiant called FrogCMS.
If you do opt for Radiant, you probably want to run it on top of Phusion Passenger to keep maintenance to a minimum. The other deployment options usually only make sense when performance is a major consideration, which is rare for a CMS.

Is Drupal ready for the enterprise? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Is anyone out there using Drupal for large scale, business critical enterprise applications?
Does Drupal's lack of database transaction support dissuade potential users?
Are there any other lightweight web-frameworks based on dynamic languages that people are using for these types of apps? What about Java portals such as JBossPortal or Jetspeed as an alternative or a Drupal + J2EE hybrid architecture?
Answer One: Yes
internet_search://"drupal in the enterprise" <- use this exact phrase
Drupal "Success Stories"
Student Activities Supports 170 Drupal 6 Sites at Texas A&M
Answer Two: It depends
There are surely some who have concerns about this issue. Drupal's database support and schema have been subject to some scrutiny and criticism over its evolution. That is likely to diminish if some or all of the planned enhancements make it into Drupal 7. This is the one out of your three questions that cannot be easily and definitively answered by searching the internet.
Drupal 7 Database Plans
Drupal 7 Database Update
Answer Three:
Open Source Content Management Systems
Answer Four: (Update: 2010-02-03 11:25:04)
see also: https://stackoverflow.com/questions/1715811
I recommend against Drupal due to its inefficiency. Yes, it can do almost anything, but it does it slowly. For any but the simplest of sites, drupal will not build nearly as efficient a chain of queries and pages as a custom built site will. Something that can be done by hand with two SQL joins and a single PHP loop is likely to be handled by Drupal with five joins and a nested loop.
That said, I love Drupal and will continue using it in non-enterprise environments, and I cannot recommend any other CMS that does not have similar problems when presented with complex tasks.
It depends on what you mean by "Enterprise." It's a horrible choice if you're building a supply chain management tool, for example.
But if you mean "extremely high traffic sites" or "Sites with complex approval workflows before content goes live" or "sites that we can scale horizontally", then I'd say yes. There are quite a few very large scale Drupal deployments out there, from SonyBMG's suite of artist web sites to newspapers and magazines.
Yes, but...
Word of Caution:
Many community-based themes are coded sloppily, which completely negates the efforts Drupal has made to make their CMS secure. Worse still, common practice in theme development is to find a theme like the one you want and customize it. Since code of these themes is shared so freely, a single sloppy mistake can affect many other themes derived from it.
If you go with Drupal (or any other stock CMS), don't just hire some joe-shmo designer to theme it for you. If possible, hire one contract for the visual theme and a php developer to actually build the theme from PSD's
I was the lead developer behind the recently relaunched American Diabetes Association - http://forecast.diabetes.org/ - rebuild in Drupal. At launch, we were getting about 250k uniques/month and it's been growing significantly. While the criticism for "inefficient query chains" is mostly accurate, there is a reason for that. The Lazy Loading pattern is used as frequently and often as possible. To streamline the process a bit, you can always configure Drupal's caching, there are some addon modules, and then you could go with something like APC or memcached.
Regardless, the trade off of being easily extended, customized, and - in normally less than an hour - having something to show the customer and allow them to load content, is pretty significant.
Having helped to create drupal sites for Popular Science Magazine and soon another magazine (which I'm not sure if I can name yet?), I think it's quite suitable. We've also done an intranet site for BMW and Pregnancy.org.
It may not be perfect yet, but it's quite suitable.
My company is using Drupal to build the public facing website for one of the largest universities in the state that I live in. So far we have been pretty successful with it.
We use concrete for a bunch of other clients as well and I think we're generally happier with concrete although it is not nearly as wide spread used as Drupal.
Drupal is used all over the place and has a very large community supporting its development. There is also a large for hire community if you want a custom drupal component.
I've worked on a Drupal project with about 1 million nodes. We added transactional support and it wasn't too hard. You'll need to patch the core of course but this shouldn't be a major concern for an enterprise application with good support and documentation. I was working as the observing pair programmer on the transactional support. I think it took us about a day.
Edit:
I've been working as a Drupal Developer for a few years now. And recently, I have revised my position on Drupal in relation to best practices and enterprise application.
I don't think Drupal is particularly suited to the Enterprise space because:
Drupal's testing framework is too cumbersome (a domain specific language would be great)
There are too many contributed modules of poor quality
Drupal's content model resides partly in code and partly in the database schema
Drupal's developer community have become focused on sexy software rather than quality software
Drupal doesn't have mature developer tools (drush is changing that) or a development environment built in.
Drupal Development is browser and UI centric.
The centralized nature of Drupal.org/projects, CVS and Drupal's policy on Contrib Projects inhibits the evolution of individual software projects
Also: The enterprise Drupal Application I was once working on has now been ported into Rails.
I've used Drupal to build a combined public-facing site for an organization that also included internal features for employees such as meeting organization and internal document management. Mostly it worked out well and they are happy with it, and very happy not to have to manage two separate sites and / or something like sharepoint.
The one place I found Drupal to be a little lacking is in its LDAP support. You can use it just fine for authentication, but there are some bugs in the modules that try and bring LDAP groups down as roles, if this worked more seamlessly I would be completely on board with the "Drupal is enterprise-ready" sentiment, but it's not there yet.
That said, you can do a lot with content types and taxonomy-based access control to customize what content is available to what roles, something that is a requirement for most intranets.
For transactional support and other significant scaling improvements consider Pressflow http://fourkitchens.com/pressflow-makes-drupal-scale
Drupal is great, but it is very inefficient. But, as I keep telling my frontend developers, this is the payoff for being flexible and highly modular.
We are currently creating a Druapl site, which I consider enterprise (http://stackoverflow.com/questions/161991/what-makes-an-application-an-enterprise-or-enterprise-level-application). It has about 40 content types, 15 user roles, integrated with Ubercart, interfacing with external APIs for membership verification etc. etc. Our development servers struggle some times, but on our staging hosting, it is lightening - fast as any similar sized site.
Make sure any bespoke code is well developed, use Drupal's performance features before release and ensure quality hosting is used.
If you will see the list of sites here http://buytaert.net/tag/drupal-sites and here http://www.drupalsites.net/, you will see that Drupal is being used to build small, medium and large scale sites!
I too have issues with Drupal's slowness, but it seems that with top notch developers you can get around it.
It's a moderately difficult tool to make a company website with, its a very difficult tool to make an enterprise-application with. But when it comes to open source LAMP CMS's, there is no real competitor.
We use Drupal for the main corporate brochure and community areas of our website at http://www.tableausoftware.com
It has allowed us to add on a multitude of plug-able features and customize UX to meet our needs far beyond what we could do with either a more bare-bones platform like rails or django better suited for apps.
We still have room to grow for performance tuning, but we have millions of hits a year without a problem. We've made use of Solr indexing to improve search and allow faceted integrated search for site content and knowledge base and support forums. Additionally, our team has been empowered to create content and curate the site without development hassles.
Lastly, with recent community focus on tools like Features and Context we've been able to manage more risk free deployment and workflow/environment management in addition to improved site architecture.
Drupal is great. I've used it for several mid-scale community and personal websites, and so far is giving us very good results. I would support the comment pointing at the over-done or even low quality of the templates of many of the website's we've looked at out there, but then, just hire a good coder/designer that does this nicely for you.
As for the memory issues there's tons of articles out there that would help you in tweaking Drupal's database management. There's even a module called Drupal Tweaks that does this automatically for you. Here is an excerpt from its project page:
... provides following functionality:
Enabling and disabling modules through autocomplete suggestions
Quick search for the nodes, users, etc. to make some operations
clear the cache and rebuild permissions from one place or do them both at once
Overall we are quite happy so far with Drupal for quick development of the most varied websites and corporate Intranets.

Categories