Cultivating tangible change
Intranets & Knowledge Management Portals
We build dynamic portals to improve communications and expand collaboration within teams and organizations. These portals essentially act as virtual "water coolers" and become the meeting place where new ideas are born and projects are pushed forward.
A key problem for organizations today is information overload. Intranets combat this by providing a central place to communicate, tools to facilitate conversations, and an internal record of all activity. The result is improved performance, greater accountability, and a tremendous amount of transparency.
While we have done several custom intranet projects, we have also built a streamlined intranet system that we customize and deploy for our clients that focuses on teams’ three main areas of communication:
Conversations – An internal blog replaces group emails by providing a way to track conversations through threaded comments and a place to centrally store all team communications. You can select how you’d like to be notified of new comments and post – email, SMS, or RSS.
Workspace – Wikis serve as collaborative workspaces for external communications, projects, and more. All revisions are stored in the wikis and you can compare different versions and revert back to previous ones at any time. A case-tracker tool lets users quickly determine the state of progress on a project and who is responsible for next actionable steps.
Events – Having a good team calendar is crucial to managing an efficient team. Our intranets have built in calendars to manage team meetings, travel, and events so you know where people are today, this week, and this month.


Used By
Strategy Focus
Introducing Spaces for Drupal
Leveraging Organic Groups and Context to Extend Custom Features Within Groups
Leveraging Organic Groups and Context to Extend Custom Features Within Groups
We do a lot of work building portals and intranets that provide collaborative online spaces for professional communities. Some of these projects are completely private sites, and some are open to larger user groups. In each case we need to provide a toolset that could be configured differently for each site and frequently tweaked in particular groups. To do this we've built Spaces. It's a module that leverages Organic Groups to relate users and content to groups, and it extends context_ui to define 'features' that can be control individually in each group. Spaces also makes assumptions about how you want groups to work and so is able to reduce the options available when creating groups and posts in groups, making the group creation and content posting processes more intuitive.
To get a sense of how this module works I have taken two screen shots from our own intranet package that we call 8trees. Here you are looking at our own team space on the 8trees install that we run for ourselves to communicate with our clients. It provided us with a terrific way to test code and ideas on a captive and critical (but forgiving) audience. Clients never know there is anything but their own little space, but we move quickly and easily between them and have different tools (blog/book/casetrack/calander) turned on for different clients depending what stage the project is in. This is what spaces lets us do.
Included in the spaces suite is a core set of feature definitions that provide features for things like the blog and book modules. Additionally there are feature definitions for a calendar, a shout-box, and a case-tracker. When you create a group with Spaces enabled it changes the creation a bit, limiting the kind or group you can create to simply 'public' or 'private' and allows you to select what features should be available inside that group. If it's only appropriate for your group to have a blog, you can limit it to that. If your group needs a more substantial feature set, say a blog, book, and calendar, you can configure that for the group. Spaces also lets you change labels in a group, so if a set of users doesn't want a 'blog', but needs a 'discussion' they can have it without need to to change any code or use the locale module. Here is how the setup looks:

