-
Following content management's core concepts with your CMS
Content Management is nothing new, but it does have its fair share of growing pains as it relates to the web. With the number of options readily available, it is easy for designers, developers and clients to lose sight of content management's core principals:
- Sorting 'Stuff' — content defined by an end-user — into a content repository.
- Support the workflow of the end-user.
The web community has the first principal down thanks to relational databases, but we really struggle with the second. Since the end-user can vary from an individual with varying skill sets to a large corporation with endless resources, demands on a Content Management Systems and its specific workflow have create countless options in the marketplace.
With each options comes a list of pros and cons, fanboys and detractors which ends up creating some misconceptions. Here are some misconceptions I've read repeatedly in the last few weeks that neglect to take these core principals into account:
One type of system is better than other.
Is it better to go open source, third-party or proprietary system? Truthfully, there is no right answer because each option can meet your goal of publishing content to the web but could create a potential workflow nightmare.
I use to advocate for using third-party software. I preferred working with a system that offered continuing support thanks to its customer base. If I was unable to continue to help client with maintenance there was always someone within the community. Now a client would never feel like they've wasted their investment on piece of technology.
That philosophy helped me in large part but I'm not sure it was in my clients best interest. When I started using other technology that better suited their workflow needs, I found myself getting more projects in the long run. Just because a company can afford an expensive system doesn't mean Wordpress isn't the best solution for their needs.
With the volume of clients and sites we work on, our proprietary system has proven the best option over time and I realized that within my first few days here.
CMSs should be more open to customization.
I think there is a false perceptions in the title 'Content Management System.' People seem to infer that they should have more control over the system itself and this can lead to people neglecting the content itself. Not all systems are created equal, so you can't be under the assumption any system will meet your needs.
If you feel like your system can't be customized, you have either chosen a system that doesn't fit into your workflow or you didn't define your content before development began on your system (I'll discuss defining your content in a future post). By ignoring your content from the start, you won't have a clear understanding of the work needed to publish your content and you will feel limited by any system.
Buying into a system means that you are committing to a set of standards, like a fixed design, so that you can produce and manage content quickly be streamlining your workflow. If you can't conform to any set of standards, moving to a CMS isn't in your best option.
I don't need to learn HTML now that I have a CMS.
The point of moving to a CMS is to avoid coding and/or reduce the reliance of a developer to speed up your publishing process, creating a better workflow. So why would I have to learn HTML when I have a WYSWYG editor to do the work for me?
You don't.
While there is no need to learn the syntax of a web language like HTML still you need to have an general understanding of how it works. You need to realize that pasting source code info your CMS from an e-mail newsletter is going to break your page in all likelihood. You need to realize when something is outside of the workflow of publishing content.
CMSs are bad for SEO
This goes back to the same ideas with customization: If you don't make SEO part of your workflow and create/use a system with it in mind early, it's going to make it harder to have good SEO. If that's the case, is it the systems' fault or yours?
Conclusion
The success of any CMS is tied to its ability to conform to your workflow. Most complaints with specific systems can be drawn to the fact they weren't developed with your particular workflow in mind. After all, the end goal of using a system is to publish and management content easily and quickly. Most systems can accomplish that, which is align with the first principal.
Having only worked with our in-house system for a few days, I can tell the team put careful thought into the workflow and it seems to be paying dividends.
-
Getting content from a remote server using Smarty
Although our CMS is designed to handle most of the requirements of our clients, occasionally we find ourselves needing to include information that is stored in another system. One such project (the details of which I can't reveal yet) was just such a case. The client has a legacy e-commerce and CRM system running on a Windows server, which they are tied to for various reasons.
Ideally, we would interact with the remote app by using public APIs to fetch data and do any processing and formatting on our server before outputting it in a Smarty template. This particular system, however, does not provide an API.
Fortunately, PHP provides several ways to get the text of a remote file and manipulate it as you would any other content. The easiest of these methods, and the one we decided to use, is file_get_contents. Given the name of a file, this function returns its entire contents as a string, easy as that. Now we can just output that string into the content area of our template, surrounded by the same header, footer, and navigation as the other pages on the site.
Is It Really That Easy?
Unfortunately, there are a few caveats. The first is that you either need to have access to the templating system of the app you are pulling from—so you can remove everything but the actual content—or you will need an HTML parser to pull out the section you want to use. Dropping an entire html page into your template will give you a huge mess, as you will have duplicate <html>, <head>, and <body> tags, which is most definitely not allowed.
The second issue is that any relative urls in image or link tags will now be broken. We are using a regular expression (created using our handy new RegEx Tester!) to find all the relative urls and replace them with absolute urls pointing back to the original server.
Smarty Plugin
I have wrapped this whole process up in a Smarty plugin. Just download the plugin file and drop it into the plugins folder inside your copy of Smarty. There is no configuration or installation: you're ready to go.
Usage
{get_remote url="http://www.test.com/page.html" [default="Text to show if the file isn't found"] [fix="href|src"]}Parameters
- url: The remote url to fetch. This is the only required parameter.
- default: Text to be shown if the remote file couldn't be found or if no url is passed in. Defaults to "Not found".
- fix: Pipe-delimited list of html attributes that will have their contents checked for relative urls. Defaults to "href|src|action".
Warnings!
Smarty evaluates PHP code that is included this way! Generally, this shouldn't be a problem, since the remote server will have already processed the php code and given you the results. However there is the potential for serious security issues here if, for instance, the remote server doesn't have PHP enabled and gives you the raw source code. If you don't trust the remote server, you probably shouldn't be using this plugin.
This is a beta release. There are likely still bugs in it. If you find any, please report them in the comments.
What is still to do?
Caching is the main thing. I plan to add that capability within the next few weeks. I would also like to implement more flexible url replacements at some point (i.e. not just in html attributes), but that is a fairly complex problem.
-
Engineering the HiFi CMS: On Templating
It's no secret that we're working on a new service: HiFi, a content management system for designers who demand nothing less than a high-fidelity translation from a PSD design to live website. The space between PSD and HTML is filled by a templating language harmonizing a website's content with its beautiful, semantic markup.
If you've worked with a content management system before you've probably hated or tolerated its templating language. So have we.
Our internal CMS employs the use of Smarty, a popular and generic templating language for PHP. We tolerate it. The last major release of Smarty was nearly six years ago back in 2003. Since deciding to build HiFi our driving question has been "what should a great CMS look like for the 2010s", not the 2000s.
What's wrong with yesterday's templating languages?
A lot. We're in the process of surveying the good, the bad, and the ugly, and doing some prototyping of our own. Some of the most fundamental problems are already clear, though. Let's take a look.
It's Not a Language, It's Advanced Search/Replace
Many of today's templating "languages" simply search for template tags and replace them with instructions. This can take you a long ways, and the initial implementation is simple, but it leads to poor design decisions by constraining language possibilities to the tasks regular expressions solve.
Moving to a full-blown language processor (lexer/parser/compiler) removes most of the unnecessary constraints and code base scaling nightmares faced when everything is a regular expression search/replace. We're using techniques and best practices straight out of compiler textbooks to make sure HiFi's templating system is as simple and powerful as possible.
Most Errors Surface at Runtime
In most of today's templating languages the only way to find errors in your template is to run the template. So front-end developers get into a cycle of coding, running, hitting an error, coding, running, hitting an error, etc. Lots of these errors are simple ones, like the misspelling of a variable you're printing.
One of the benefits of moving to a full-blown language processor is the ability to do more analysis of a template's content. We can improve the experience for designers writing templates by issuing meaningful errors earlier. We can look at your template and, without running it, tell you "hey, this variable 'daate' you want to print in this if block that only runs on Mondays will never exist".
We believe improving the diagnostics of template coding will make writing template code much more enjoyable.
Weak use of Expressions
Arithmetic in view code should generally be avoided but scenarios exist where it or other expressions are the best way to carry out the task at hand. Assigning a new variable a calculated value, doing date arithmetic, using conditionals, etc, are possible throughout. We're aiming to make expressions natural and consistent.
What are your templating language loves & woes?
Is there a particular templating system you absolutely love or absolutely hate? Features you can't live without? Let us know in the comments as we're hoping to find great influences for HiFi. Also, be sure to the HiFi mailing list as we roll out announcements and a beta program in upcoming months.
-
The 8 Minimum Requirements for SEO Features in a CMS
The most important thing you can be doing to improve your search engine results is generating great content. Even an old, poorly engineered web site can show up in the results if it contains quality, relavent content.
That said, by doing a few technical things right, it is a lot easier to achieve results. The easiest way to get these things right is to use a Content Management System (CMS) that takes care of the technical things for you. When shopping for a CMS, here are the minimum features you should be looking for:
Things you should be able to edit on each page:
1. Title Tag

The title tag is perhaps the most important thing you can do to improve the results of a page. It should be unique, have the keyword towards the beginning, and be no longer than 70 characters. This is the text that shows up as a link in Google results.
2. Meta-Description

The meta-description is designed as a summary of the page for search engines. It should be no longer than 150 characters. This is the text that shows up as the description in search engine results.
3. URL

Many Content Management Systems auto-generate urls for each page that are not human-readable. For example:
http://www.website.com/index.php?category_id=142&page_id=15
When a search engine crawls this page, it cannot learn anything about the contents of the page from the url. A good CMS will let you build a more readable, pretty URL like this:
http://www.website.com/pets/golden-retriever-puppies
4. Semantic Headlines

Headlines are usually printed larger and bolder than body text to indicate their importance. This works great for humans, but doesn't help search engines much. Instead, the ability to use heading tags is important. There are six levels of headings, from the most important, <h1>, to the least important, <h6>. Using these appropriately with just a single <h1> on each page will strongly indicate what your page is about to search engines.
5. Alt-Text on Images

The content of an image is largely lost to search engines. To improve the accessibility of your site to both the disabled and search engines, it is important to use alternate text with your images.
Sitewide SEO Features
6. Robots.txt Control

Robots.txt is a file that allows you to control what areas of the site search engines are allowed to look at. If you have staging areas of your site, or places that shouldn't be indexed by search engines, that needs to be controlled in the robots.txt file.
7. 301 Redirects

There are two (major) types of redirects. A 302 Temporary and a 301 Permanent redirect. When using a 301 redirect, the SEO credit of one page can be passed to another. As an example, lets say you have a page that ranks well for "Golden Retriever Puppies" but want to change its URL. To do this, you would create the new page with a new URL and direct the old URL to the new one using a 301 redirect. Since this is a "permanent" redirect, Google will pass the SEO credit along.
8. Ability to add Analytics

A good CMS will make it easy to add analytics that let you track your site visitors. Much can be learned from user behavior -- epecially what is popular and what is being searched for.
Final Words
All of the above features are the basics for a CMS in 2009. There are many other more advanced features that should be considered as well. Additionally, a good CMS will allow for arbitrary markup so that any design can be made SEO friendly.
-
Resizing Images On The Fly in Smarty
When I started working at New Media Campaigns last month, I immediately set about learning our custom-made content management system. Although it is generally very well-made and easy to use, I did find that there were things I missed from the other CMSs I have used in my freelance career. High among those was the ability to resize images to particular dimensions within templates. It seemed silly to be creating thumbnails manually for every photo gallery, or explaining to clients that their sidebar images must be 300 pixels wide or the layout would break. Expression Engine has a wonderful Image Sizer plugin. Wordpress and Radiant let you specify a couple of thumbnail sizes per-site that will automatically be created. Why coudn't we do the same thing?
Our CMS uses the Smarty templating system, which I had never used before starting at NMC. This seemed like a good opportunity to dig into the Smarty plugin structure and create a custom function that would take an image file and the desired dimensions and would resize and cache the image.
If there are other options you would find useful leave your requests in the comments section...I will incorporate them if possible. And, of course, if you find any bugs please let me know.
Usage
{imagesize src=$imageUrl [width=200] [height=100] [crop=true] [bw=true] [colorize="#ff0000"] [radius=10] [forcepng=true] [background='#000000'] [alt='Alternate Text'] [title='Image Title'] [class='className'] [id='idName'] [style='inline styles']}The only required attribute is
src. This is the absolute or relative url to the original image file that you want to use. You can optionally pass inalt,id,class, ortitleattributes, which will be output as they would in a normal image tag.Finally you will want to give it either a width or a height (if you don't, it will just output the image at its original size). If you specify only one of the two dimensions, the image will be resized proportionally. If you specify both the width and the height it will be resized to fit within those dimensions. Additionally, if you include
crop=truethe image will be cropped to the exact size you specify. This last option is very handy for creating square thumbnails, for instance. Update: You can now usebw=trueto convert the image to black and white, orcolorize="#ff0000"to output a monochrome colorized image.radius=xwill round the corners with a radius of x. If you give it rounded corners and the file is a JPEG or GIF, you can also usebackground='#ff0000'to specify the background color, or you can useforcepng=trueto ensure the image is saved as a 24-bit PNG with full transparency.Installation
Download the plugin file and put it in the plugins folder inside your copy of Smarty. That's all you need to do!
Caveats
This is still beta software! I have tested it on several systems, but if it deletes all the images on your server and sends an insulting email to your mother we are not responsible. Please backup before you install.
- You will need to be running the most recent version of Smarty to use this plugin. The plugin interface changed recently to allow plugins to access the $_SERVER variables we need to figure out the path to the cache folder.
- In some cases when you are using mod_rewrite on your server and a relative image url you will get an error because it can't calculate the cache folder. If this happens, try using relative urls.
- Depending on how your server is set up, you may have to manually create a cache folder in the same folder as the image you are trying to access.
Changelog
- 0.9: Initial public release. (7/22/09)
- 0.91: New
cropattribute, no longer caches images that don't need resizing, code is better commented. (7/23/09) - 0.92: Fixed the issues Ron reported in the comments. (7/24/09)
- 0.93: Added
styleattribute. Better handling of backslashes. (8/25/09) - 1.0: Added
bw,radius, andbackgroundattributes. (10/27/09) - 1.0.1: Added
forcepngattribute. (2/3/09) - 1.0.2: Added
colorizeattribute. Better error reporting: errors are now written as html comments, so as not to break your design if an image is missing. (2/3/09) - 1.0.3: Fixed bugs introducted in previous update. (2/4/09)
-
Reflecting on Three Years of Business
Just last week on May 5, to little fanfare around the world (except for a few tweets), our firm celebrated its third year in existence. It has been an exhilarating and rewarding few years, which has seen us grow from a bootstrap funded startup to a successful full service web design and development firm that has launched over 200 websites for clients ranging from public corporations to national non-profits.
Over time we have grown in number, have had a couple of different offices, have adjusted our business model, have won awards, and have made plenty of mistakes. However, we have also always stayed true to our core business philosophies:- Empower our clients with powerful technology that meets their needs to solve specific problems.
- Create beautiful websites that set our clients apart from their competitors.
- Provide unparalleled personal service, always making ourselves available to our clients and going the extra mile for them.
- Have a lot of fun in the office and make NMC a truly enjoyable place to work.
- Do all of the above at an extremely affordable price for our clients, allowing them to successfully leverage the web at a fraction of the cost of our competitors.
Challenges and Decisions Along the Way
When we first launched, we envisioned ourselves as only a political web design firm, solely focusing on that niche. As it stands today, a little over one third of our total business is political, and the rest is non-profits and corporations. This is due to the fact that within weeks after launching, our political clients brought us non-political business; rather than reject these clients, we embraced the new niches and expanded into new regions. This decision ended up being a major revenue driver and likely kept our company alive through off-election years.
Similarly, when we first launched the company, we didn't foresee acting as a web development partner for ad agencies, and that is now our most explosive area of growth. The idea makes total sense. Ad agencies are amazing at strategy and creative; we have special talents with technology and understand the web. Why not marry the two knowledge bases to provide clients with the best of both worlds and no added overhead?! It seems so straightforward now, but it was a space we looked over in the frenzy of our initial launch.
This ability to wholeheartedly embrace change within our company and shift on the fly ultimately helped us become a stronger company with a deeper body of work and a more steady revenue stream. To this day, we're constantly trying to think of ways to evolve our business into other disciplines that strengthen our overall offering to clients and also grow our company.Separating Ourselves from the Pack
We have progressively grown every year that we've been in business, in terms of volume of work done and company revenue. The number one thing attributing to that growth are referrals. We pride ourselves on being passionate about our clients and truly wanting them to succeed online, and they have rewarded us by sending new business our way.
In addition to our service, another reason our clients remain happy with us is our view on project-based billing vs. on-going hourly fees. We're not here to milk every billable hour out of each client, in fact we try to avoid hourly charges to clients all together. After we have priced out, built, and completed a project, over 90% of our clients never incur an hourly fee; however, just about all of our clients reach out to us for help or advice sometime in the future...we just don't bill them for those requests.
It's a pretty novel idea in the world of interactive agencies and most of our clients are initially skeptical, but it boils down to our core principles of empowering our clients with powerful technology at a good price. We want them to succeed, and we know that if we do that without unnecessary fees, the long tail of the relationship will be much more lucrative than billing for our time on a phone call. This approach has worked well for us and our clients, and I'm surprised that more agencies aren't moving in the same direction.Where We Are Now
These decisions and procedures have helped us stay viable and become the company we are today, all along without ever deviating from the core principles outlined above. As it currently stands, we're one of the top political web design firms in the country, have a renowned Content Management System, and have built a prestigious client list.
None of this would have been possible without facing the adversities listed above or without the dedication of our staff and partners. It's been a great ride over the past years and we have learned a lot; we're also focusing on continued expansion over the next year. 2009 has already been the strongest year in our company's history, and it's much thanks to the leg work we put in the past three years. At times, it was a slow growth curve to get here, but it has continued to be worth it, by allowing us to do quality work and have fun.
Happy Birthday to New Media Campaigns and congrats to our team for some great work, and a special thanks to all of the clients that have made this possible! -
New Website Launched for Recess PHP Framework
Kris Jordan, creator of the Recess PHP Framework has been a part of the NMC team since January of this year. While here, he has largely been focusing on enhancing the framework, working on our Content Management System, and building custom tools for our clients.
Recess has quickly been gaining steam in the PHP community; it now boasts hundreds of downloads by developers from across the world and has had dozens of ""commits" in Github":http://github.com/recess/recess/commits/. We've been really excited to see the progress of the framework and expect it to continue bounding ahead.
However, we were worried that the framework's old site was hindering Recess's progress by making information too hard to find and not conveying the core benefits of using Recess for PHPprojects. Kris and the rest of the team here began designing a face lift several weeks ago and we're proud to show off the new site.
Outside of the overall redesign, the most notable new feature is the nine different one minute demo videos on the homepage. One of the biggest benefits of Recess is its ease of use and simplicity, so Kris wanted to highlight these features through quick, easy to process videos on the homepage.
Too many companies, frameworks, and products bog their homepage down with five minute or longer videos; we know that no one wants to sit through those, so we tried to streamline the learning process with these short demos. It seems as if the strategy has paid off, as the ""Start a New App in Recess"":http://www.recessframework.org/page/starting-an-app-in-the-recess-php-framework video has been the third most trafficked page since the site launch.
Another unique feature is the developer spotlight in the top right. The nametag scrolls through the names and bios of developers using Recess for different projects. One of the largest barriers to adoption of a new framework is the fear that there's no community; we wanted to quickly assuage this concern by prominently featuring real, live, dedicated Recess developers and their projects. It is also a great way to give back to the community that has already given so much to Recess.
The homepage also features a comparison chart of Recess vs. other popular PHP frameworks, a feature breakdown, several quick download options, and more.
The new design has already been a great success, helping new visitors quickly learn about the framework and its benefits. If you haven't checked it out yet, you can download Recess here. I encourage you to check the site out and let us know your thoughts on the design and the framework. -
Content Management Systems Continue to be a Good Investment in a Bad Economy
According to a recent CMSWire article, a Forrester study demonstrates that Content Management Systems continue to have a strong ROI in a weak economy. The Forrester's 2008 fourth quarter web content management survey forecasts continued growth in the Content Management industry in upcoming year.
Some of the highlights from the report:
- 72% of respondents plan to increase their CMS investment
- 64% plan to add a level of personalization to their sites over the next year
- 55% plan to incorporate audio and/or video in their sites over the next year
As a company that specializes in equipping all of our sites with our own Content Management System, it seems like a no-brainer that the sector is going to continue to grow, especially in a tough economy. A CMS truly maximizes an organization's ROI on its website. It allows organizations to fully leverage their site, engage visitors, keep the site fresh, add new features, participate in inbound marketing, and much more.
Content management continues to become more ubiquitous and affordable, and as the CMSWire article states: "by cutting back on WCM [web content management] initiatives, enterprises risk failing to meet customer needs and losing Web momentum to competitors." So far, we've seen spending on our CMS remain strong during the recession, confirming our beliefs and the research from this article. Do you plan on purchasing a CMS in the next year? If you're a web developer, are your clients still continuing to spend on content management solutions?
-
Tales of an Intern: A Few Misconceptions/Surprises about Working with NMC's Content Management Software
As this is my first blog entry for New Media Campaigns, I think I should probably clarify who's talking. I'm the new guy.
No one likes being the new guy at work. There's lingo you don't know, jokes you don't get (because they use that lingo), and that one guy whose name you just can't remember.
Luckily, NMC is a small web design firm and there were only six names to memorize, so with the help of some flashcards, Facebook and two hours a day in the library, I got that down within the first week. Since then, I've been working on the lingo part.When I first got here, I felt like that study abroad student who goes to Spain with three years of high school Spanish and thinks he won't sound like an American tourist. Apparently, reading Seth Godin's blog every morning won't teach you everything.
As I looked over their shoulders and saw Josh writing CSS and Joel navigating through Photoshop with keyboard shortcuts longer and more complicated than a Vista commercial, I thought I might be in over my head.
When I started on my first assignment though, I found that updating and writing content for NMC was surprisingly simple.
Before NMC, I'd never created or written for a website outside of blogspot so naturally, I was a little hesitant about jumping in and writing something that actually matters.
I had all kinds of preconceived notions involving complicated code and navigational nightmares.
Then, I logged into NMC's Content Management Software and was blown away by its intuitivity (I don't think that's a word but it sounds good, doesn't it?).
Allow me to digress:
I went home last weekend for Thanksgiving. This year the whole family came to our house.
Now, everyone's got that one relative who's just a little bit off...
For me, it's my uncle.
He's a bit of a hermit (He just discovered 'Google' two months ago and since then, he's been going to the public library weekly to explore the Internet).
So it's always interesting talking to him during the holidays and hearing about his new 'discoveries'. His latest was YouTube. He couldn't wait to tell me about all the cool/funny things he's seen.
After describing a few sightings, he informed me, "The only annoying thing was sometimes, these other websites kept popping up. Is that what 'pop-ups' are?"
I had to suppress a laugh and inform him that, "Yes Uncle, those are pop-ups."
End digression.
Back at work though, while working with NMC's Content Management Software, I found myself asking the other guys questions that would rival my uncle's in common sense.
"How do you add a new page?" I'd ask.
Then Joel would calmly point to the very obvious Create a Page link on the left margin of the page.
After two or three of those, I learned to just trust the software and try whatever seems most logical. Who would have guessed, it hasn't failed me yet.
I was excited to learn that the clients use the same software that I was using to edit the NMC page. I'd read all over NMC's website about how easy-to-use their stuff was but it wasn't until I gave it a shot myself that I really believed it.
Anybody else out there who was also pleasantly surprised to realize that their company's products are actually as simple/cool/good as they say it is?
-
Proprietary Software Sometimes Has the Upper Hand on Open Source
Let's just get it out there - we have built proprietary Content Management Software that we put all of our sites on. That's right - we built it from scratch. We are the ones responsible for improving it and we handle the tech support. It seems that at every business pitch I go to, people are either in disbelief that we actually built it from scratch or scared to death of using a proprietary system. I'll let you in on a little secret: proprietary software doesn't have to scare you or your organization.
It seems that open source is all the rage nowadays, whether it be open source CMS options or project management solutions. However, there are drawbacks to most open source solutions that make them impractical for many users.
One example of a huge drawback to open source software is support. What happens when you can't figure out how to format an image using your Drupal CMS or you can't get projects to work correctly in Project Pier? There's no support phone number or email to reach out to - looks like you'll just have to sift through forums and documentation and try to find the appropriate answer. This may work for some people, but I know that the majority of our clients need instant support or someone to walk them through the process. This just simply isn't going to happen with open source options.
Even with the support issue and other drawbacks with open source software (too broad/generic, slow to advance), people can still be hesitant when looking at a proprietary solution. The perpetual "elephant in the room" that people hesitantly bring up is what if NMC goes out of business or they want to leave NMC down the line? Those are completely fair questions that people shouldn't be scared to bring up. However, they are also concerns that shouldn't be fretted on too much.
- First, you have data portability with our system. If a client ever wants to leave for any reason, they have the right to all of their data and it can easily be exported out for them to use in another system. We never claim to own your design, content, or data, so should someone decide to leave us, they can easily move all of their data to a new vendor.
- Second, as long as people are paying hosting, our system can keep running on our servers. So, even if for some inexplicable reason, NMC disappeared, that doesn't mean our CMS would also disappear. We have launched over 150 websites, all of whom pay monthly hosting fees to cover our server fees and use of our system. As long as people continue to pay those fees, our Content Management Software will stay active and can continue to be used by our clients.
- Third, we're a growing and healthy company with over 100 clients. Even though we're a Raleigh web design firm, we have clients of all sizes from across the country that look to us as their web partner. This allows us to be in a healthy position to continue innovating and improving our CMS rapidly, which is something that rarely happens with open source solutions as they tend to stagnate or lose sight of niche clients and focus on general improvements rather than ones that help their existing client base.
I just wanted to address the concerns I hear everytime I meet with a new client - there's no denying that there are some powerful open source solutions; however, they frequently lose sight of immediate goals and who their main consumers are. With our software, you know we'll be here every step of the way to support you and continue making our system even better. I'd love to hear your thoughts on proprietary vs. open-source.









Network with Us