Clarity: An internal app for managing leads, clients, and projects.

As Plymouth Software is getting increasing projects and leads, I’m finding it more difficult to keep track of work I’ve quoted, new contacts, active tasks, and so on. To begin with, I’d just been using Gmail, labels and Google Docs to keep tabs on things, but this became increasingly cumbersome.

I had a look at various off-the-shelf CRM solutions, such as Highrise, FatFreeCRM, and so on, but wasn’t comfortable trying to fit my workflow into their approach. I’d also noticed that Claire was looking for something to manage client leads and follow-ups for ExpressVA Services.

Clarity Screenshot

With a night of heavy rain pounding, I gave up trying to sleep and cracked out Rails to have a go at building a CRM app that fits my needs. The result is Clarity, an internal app that I’m using to manage quotes, current and potential projects.

A CRM in a few hours.

The first usable release of Clarity was put together in a few hours (a testament to the power of Rails 3!) and I’ve now been using it for a week, gradually adding data and tweaking the app as needed. The current release of Clarity is fairly limited, but solves my initial problem. Clarity can currently:

  • Maintain a list of companies and contacts.
  • Manage contacts’ projects, keeping track of their status (prospect, quote, active, complete, etc).
  • Keep a history of notes on contacts and projects.
  • Attach relevant files to notes, such as quotes in PDFs, received documents, and so on. Paperclip is awesome for handling attachments in Rails.
  • Maintain a list of tasks to complete on contacts and projects. The task list is compiled on the dashboard.
  • See a summary of the current and potential business, showing total quotes versus accepted quotes and completed projects.
  • Get a list of next tasks that I need to complete for each active (or potential) project.

Avoiding Bloat

It’s early days, but already Clarity is making my business simpler. I’m concious of avoiding feature bloat, and keeping the app focussed on managing contacts, leads and projects.

Having said that, I have experimented building simple invoicing into Clarity to track invoiced projects against quotes. Rather than a full billing and payments system though, which brings with it several complications, Clarity just records the date, project and invoice total. I can then attach the full invoice as a PDF. I’m not sure how this will work out yet, so have kept the feature in its own git branch while I try it out over the coming weeks.

I’ll keep posting updates on Clarity’s progress here, and any interesting things I learn building an app to scratch your own itch.

Amberleaf: Pricing Announced

Amberleaf Price Plan

Today I released a small update to Amberleaf that includes details of the pricing and subscription plan. To keep things simple, Amberleaf only has one price plan, at just £4.95 per month. That gets you everything the software has to offer – there are no artificial limits in place.

I’m happy to say, though, that for the duration of the public beta test, all accounts are still completely free! Sign up now and try out Amberleaf’s new billing features! By taking part in the beta, you’ll also have the opportunity to help shape Amberleaf’s development to meet your needs.

Amberleaf manages domains and hosting accounts for you and your customers. Sign up now for an account, or find out more.

Amberleaf Update: Bill Tracking for Domains and Hosting

Amberleaf Billing

It’s been a long time coming, but today finally saw the launch of Amberleaf’s bill tracking for domains and hosting accounts. How to implement billing had been troubling me for a while, but I finally decided to keep it simple.

So, I spun a branch in git and started coding. I gave myself a time limit of 3 days to get something built and released. This proved a useful tool in keeping me focussed. Despite the inevitable “if only it just did this…” going through my mind, pledging my deadline in public helped me to stick to it!

I designed the billing system to simply track income and bills that were due to be paid. No complex invoice generation or sending invoices to clients – that’s better left to specialist tools like Freshbooks or Invoice Machine. The plan is to eventually let Amberleaf interact with these services to generate invoices.

If you’ve got an Amberleaf account, just sign in to see the new billing functionality. If you’ve not yet signed up, Amberleaf is completely free during the beta, so why not register an account to check out the new features? There’ll also be a limited free account once Amberleaf goes live!

I’d love to hear your feedback if you’re using Amberleaf to manage your domains and hosting accounts – you can send feedback directly from Amberleaf using the Send Feedback tab, or tweet @cblunt.

Amberleaf: Manage Your Domains & Hosting – Public Beta Now Open.

Amberleaf Front Page

After several months of evening development and jumping into Rails at the deep-end, I’m happy to jump into 2010 by opening public beta accounts for Amberleaf – and every account is free for the duration of the beta!

Amberleaf is built to remind you of upcoming renewals for domains and SSL certificate expiries, and hosting account renewals, and simply to remind you when to bill your customers. It is the evolution of HostManager, an OS X app I wrote back in my university days.

Who uses Amberleaf?

Anybody who has a domain! Whether you own or manage a single domain, or several hundred hosting accounts on behalf of your clients, Amberleaf is designed to make your life easier, by providing:

  • Automatic WHOIS lookup for domains, with more TLDs being added.
  • Email notification of upcoming expiries and renewals.
  • Private RSS feed of your upcoming notifications.
  • Simple client management, with the ability to import your existing clients’ vCards.
  • Keep a history of notes for your domains and clients, such as when special discounts are due to end.

What do you think?

Amberleaf is completely free for the duration of the beta, and signup only takes a couple of minutes; I’d love to hear your feedback and comments.

Sign up for Amberleaf now or find out more.

If you’ve already signed up, you can email comments to chris at chrisblunt dot com; ping me on twitter (@cblunt), or send feedback directly from Amberleaf using the feedback tab at the bottom of every page.

If you’d like to see what’s coming in future releases, and get involved in Amberleaf’s development, check out the public tracker at trac.chrisblunt.com.

Introducing Molehill: Simple Issue Tracking

Molehill Homepage Screenshot

In my previous post, I wrote how I’ve recently been getting to grips with Cucumber and Pickle. To do this, rather than trying to retro-fit Cucumber stories into another app, I decided to start with a fresh new Rails app: Molehill.

Molehill is an experiment, both in learning behaviour driven design (BDD), and also trying out some ideas for a simplified issue tracker.

Molehill is open-source, and can be downloaded from github. See the end of this post for more details.

Post. Fix. Close.

Molehill is designed to avoid the problem I’ve found with other issue trackers I’ve used – they do too much. They require so much overhead setting up and managing versions, milestones, time estimates, shipping forecasts, gantt charts, and so on – that it’s as much work posting a case as actually fixing it.

Molehill takes a much simpler approach, purposefully avoiding all that which makes other issue trackers so heavy. Instead, Molehill is based on the idea that tracking bugs and features should be as simple as post, fix, close.

Posting and Promoting Cases

Taking cues from Twitter and the micro-blog format, cases are written as simple posts which are dropped into a timeline.

If a case is posted that you think is important, you can promote it. The more promotions a case has, the higher it appears in the timeline.

Molehill Promoting Posts Screenshot

For developers, this means that your users’ most desired bugfixes or features are always sitting at the top of the timeline. Instead of spending hours building roadmaps, and scheduling cases for release in 6 weeks (if you’re lucky), just work on whatever case is next at the top of the list and release it.

Closing Cases

Once a case has been fixed or implemented, the original author can mark it as such; or – if it’s not going to be implemented – it can be marked declined.

At the moment, only the original author can close a cace – I’ve intentionally avoided roles (such as Developers and Reporter) in Molehill, although I may have to make an exception so that developer’s can mark any case as completed or declined.

An alternative approach might be to allow any other use to suggest a case is complete, or indicate that it won’t be implemented. This might be better achieved through a reply system though, like Twitter’s @reply tag.

Categories and Projects

Molehill doesn’t have a concept of projects, but does allow #hashtags within a case. This means cases can easily be tagged and categorised to a project or feature, for example:

There should be a way for #molehill to categorise or tag #cases.

A quick search from the homepage, or click on the #hashtag, reveals any other cases tagged with the same words.

Cucumbers Everywhere

I built Molehill primarily to learn Cucumber, and doing so has got me hooked on writing feature-first code. The majority of Molehill was built without once launching Firefox or Chrome; everything was instead written as a feature, and run through Cucumber and Webrat until that feature passed.

Good Cucumber coverage allows far more confidence when deploying your code that everything works together. Too often I’ve seen a minor fix in one part of an app have a completely unforeseen effect on some screen assumed to be unrelated. With Cucumber, and a good test suite, these worries can be all but forgotten. Now that it’s in public beta, I’m working to retrospectively cover Amberleaf in Cucumber stories

Getting Molehill

Molehill is open sourced under the MIT licence (the same as Rails). You can grab a copy of the code from github, and setup your own local Molehill server using the following steps:

$ git clone git://github.com/cblunt/molehill.git
$ cd molehill
 
$ cp config/database.yml.sample config/database.yml
# You'll need to configure your local database in config/database.yml
 
# Molehill has a number of gem dependencies, including Cucumber and Pickle
$ rake gems:install
 
$ rake db:migrate
$ rake db:migrate RAILS_ENV=cucumber
 
$ rake cucumber

You can also generate an RCov coverage report (saved in features_coverage) using:

$ rake cucumber:rcov

There is a live demo of Molehill running at http://molehill.chrisblunt.com. To begin with, I’ll use Molehill to track its own development. However, if it proves to be a workable concept (and requires less management than a full redmine setup), I’ll probably use it for Amberleaf’s issue tracking as well.