Matthew Lang avatar

Matthew Lang

Web developer with a preference for Ruby on Rails

Dailymuse

A couple of web development projects for the winter

Now that the golf season is down to me and the boys only getting out at the weekend, I can start spending more time on a few side projects. There are so many things I would like to learn, but I figure just limiting myself to a couple won’t take up too much of my time.

So, from now to March, I’ll spend a few hours each week on the following.

  • Learning more about Rails 8 and KamalDailymuse and Writeabout will each get a bump to Rails 8. Only Writeabout, though, will get the Kamal) treatment to begin with. When I have gained enough knowledge about Kamal, I’ll also look to deploy Dailymuse with Kamal.
  • Learn TypeScript and ThreeJS — A work colleague showed me a hobby project he is working on using ThreeJS. It’s the perfect excuse to learn TypeScript and build something for the web that isn’t just another web application.

I have a couple of errands to run this morning, including holiday haircuts for myself and the boys. After that, it’s back home for some brunch. I’m also going to crack open the Dailymuse app to continue working on a new feature for it. Yeah, even on holiday, I’m still writing code.

I am almost ready to migrate Dailymuse from Heroku to Hatchbox. Once migrated, Dailymuse will start receiving some much-needed updates on both the front and back end. The core feature will remain the same, but I will add a few additional features.

I need to ship Rails app updates more often

On Sunday night, I migrated a couple of Rails apps to Ruby 2.7, including Writeabout. Last night, I did the same with another Rails app. By the end of the week, I hope to have Markcase moved over to Ruby 2.7 and Dailymuse upgraded to Ruby 2.7 and Rails 6.0.

Upgrading apps is a pain if they’re left alone for too long. I’ve left Dailymuse alone for such a long time that it’s still sitting on Rails 5. Markcase is on Rails 6 but requires a wee bit of maintenance regarding Webpack.

I’ve learned that leaving apps for such a long time between updates is not the best thing to do. Even upgrading an app regularly through its patch versions is better than just leaving them sitting gathering dust.

Adaptive product naming

A favourite saying of mine is Phil Karlton’s quote about hard things to do in computer science.

There are only two hard things in Computer Science: cache invalidation and naming things.

— Phil Karlton

I can’t say that cache invalidation has given me major issues in the past but naming things has always been a challenge. If I was to take this beyond the realms of programming though, I would say that naming anything is a difficult thing to do.

My portfolio of web applications include DailyMuse, Markcase and WriteAbout. I find it hard to get away from the compound naming theme. It’s just a way of naming things that I stick with. It’s easy to do, but it feels like it lacks imagination. I would love to come up wth alternatives that don’t follow this convention but everything I have come up with didn’t feel like a good fit.

The other thing I don’t like about compounded product names is deciding whether to upper-case the second word or leave it as lower-case. GitHub’s branding is clear that they favour upper-casing the second word, but there are examples of other brand names that are made of two words that just user a lower-case word for the second word. Take Feedbin for example.

For my bookmarking service, Markcase, I choose to use the lower-cased form instead of MarkCase, and I have to say I prefer it.

I’m working on something that is bigger than anything I’ve worked on in the past. I’d like it to become my full-time gig eventually so it’s quite important to get the naming of it right. I do have a name for it, but I’m torn between whether to use the upper-case form or the lower-case for.

I am edging towards the lower-case form. It reads easier and looks better in the different styles that I have for it.

I find all aspects of branding and marketing quite a challenge. I’m creative to an extent, but I’m definitely not well-versed enough to launch a huge marketing campaign. To get my product off the ground though, I’m taking little steps in executing it and learning as I go. I might not always get it right to begin with, but adapting the product and the marketing as I go, is better than not doing anything at all.

Dealing with distractions

I’ve been trying to reduce my screen time on my phone. It hasn’t been easy and I’ve tried a number of different strategies to do this.

Copyblogger has a little gem of advice though when it comes to dealing with daily distractions.

Take some time away from the usual flood of news and notifications to think about your daily intentions. Document them somehow — any way that works for you — and make sure you see them through.

What’s Actually Stunting Your Productivity (It’s Not Multitasking)

I wonder if my daily intentions is something that I can include in my DailyMuse email each morning? Something along the lines of Mike Vardy’s themed days.

Staying productive with side projects

I’m in the process of moving back to full-time employment, but the step away from being self-employed doesn’t mean that I am abandoning any of the side projects that I have been working on. I’m putting a few ideas together for DailyMuse, and there’s another more significant project that is a work in progress. Working on these in my spare time can be difficult especially when I have to consider other important things in life.

In the last few weeks though, I’ve been making smaller sprints for my side project, and instead of scheduling big blocks of time, I’m picking up the work when I want to work on it.

Zach Holman’s post on staying productive as a solo founder puts it in a better way.

There’s something to be said for focus, of course, but life’s too short to constantly throw yourself at the wall day in and day out. If you really believe in your product and think that generally, it’s something that can get you stoked, then taking a break for a while is usually worth it, and is more productive in the long run. It’ll draw you back in again in the future; don’t worry about it too much.

Staying Productive as a Solo Founder by Zach Holman

As a programmer I know I’ll always have the itch to be building stuff on the side. From experience, I’ve learnt that working on side projects when I want to is a much more effective way of working on them than consistently plugging away at them and getting depressed about them.

App rot

Link rot is a problem on the Internet. When you find something great on the Internet, you bookmark the URL for later, and then you find out later that the URL no longer exists. It’s not so much of a problem if you have a copy of the web page you bookmarked, or you use something like Pinboard or Pocket’s premium plan or even the Wayback Machine. For many people though, I’ll bet that they have a few seconds of disappoint and then find alternatives to that same article.

This is what is called link rot. When a web page becomes permanently unavailable. The problem can stem from the web page’s URL being changed, whole websites being moved or closed down.

The same can be said for applications whether they are native or web-based.

The development of whole web applications that we use daily can stop. The application might still run and function correctly, but the ongoing development of the service has ground to a stop that it seems that the web application is no longer being worked on.

I’m guilty of this app rot as much as any web application owner.

While DailyMuse is still running, development on it has ground to a halt. I will resume work on it at some point, but to the careful observer, it might look like the application has stagnated and it isn’t clear if the web application is being worked on.

iOS apps have the advantage of including a version history in the App Store. I’m sure there’s a corresponding version history for Android apps as well.

What about web applications though? How do we see the version history for those?

Well, a version history page seems the obvious choice, however, not all web applications have such a page and there’s no standard for this either.

As a web app developer though, I am going to put more effort into making my web applications more transparent in when they are being updated and making it easy for others to see these changes. How I’ll do this I don’t know yet, but it will consist of a web page of some sort.

My Three Words for 2018

I've already written about how I use habits rather than resolutions for the year. Resolutions are doomed to fail, but practices can be iteratively built on over the year and eventually form a set of good habits.

How do you stay focused on these habits though?

Well, one way I've been able to build on these habits over the last couple of years is using Chris Brogan's three words. It's a simple idea.

You pick three words for that will guide your actions through the year. Through the course of the year, your efforts should align with these three words so that anything that you do is working towards them. The words themselves are goals, but not specific ones. Just parts of your life that you want to make better.

Last year my words were habit, health and hustle. I'm chuffed to say that at the end of 2017 I had lost a bit of weight and I'm now more active through the work week to stop myself getting any more back pain.

This year's words are less of a focus on health and work and more about content and delivery.

Bootstrap - For too long I've had a little email product running that has been running quietly in the background. It's time to bring it to the masses and bootstrap it from being merely just a product that people use to one that people rave about. Of course, I'm talking about DailyMuse. I want to expand this product so that it becomes more of a featured revenue stream than something I merely allow to run. DailyMuse isn't the only product in the pipeline though. I'm intrigued about a numberless analytics idea, and I'm interested in exploring a niche market for my web development skills that could help end the feast and famine cycle that is always at the back of my mind as a freelancer.

Blog - I remember the great days of blogging every day. It didn't matter what day it was. I punted something out anyway. This single word over the last two weeks has prompted me to write and publish more often already this month and look set to complete one week with a post a day.

Budget - When it comes to time, we only have so much of it. For 2018 I want to budget my time and energy through the week so that I'm not idling away my time in front of the television or on my phone. This isn't a call to budget every minute of every day. Scheduling my day in this way doesn't work for me. The plan is to spread my time, focus and energy over the week, rather than blitz everything in the one day. One way of doing this is to theme each day around a particular product or project.

I wouldn't say that 2017 was a significant success using this technique, but I did make some gains. I'm aiming to do better with my three words for 2018.

Hello PenMuse

I'm always on the lookout for something different to write about, but some days the nudge just isn't there. I started using my daily themes as writing topics but this can be somewhat repetitive, and it still falls on me to narrow down the theme to a topic that I can write about.

I started looking for writing prompts that fell into the category of my daily themes, but this was another challenge in itself. Frequently it involved digging through the thousands of writing prompts available online across different websites. What the problem with these is that they not usually organised in a way that makes them easy to search through.

I needed a daily random writing prompt but one that was geared towards my daily themes for the day. So I started making one. Here's how it looks so far.

Screenshot of the PenMuse website

The idea is simple. It displays a random writing prompt. If you don't like it, you can generate another one. As a nice tie-in with DailyMuse and my preference towards analogue writing tools, I've called it PenMuse.

Product playground

PenMuse serves a dual-purpose for me. While it does take the guesswork out of what you are going to write about, it also helps a much more significant purpose. It's a product playground.

The idea of this that you have a small service or product that you can use to flex your development skills. While this application doesn't have the complexity of a more significant Rails application, it does allow me to try things out on a smaller scale and it's proved to be helpful already. I'm going to re-design the DailyMuse website with a similar theme.

Plans for the future

There are a few things still missing that I hope to add shortly.

  • Allow people to suggest a writing prompt and give them accreditation when it is displayed.
  • Document the API for other developers to use.
  • Allow people to link to individual writing prompts.
  • Create a weekly PenMuse email that emails you the week's writing prompts ahead of schedule.

One thing that I could do with help on though is writing prompts. There are thousands of writing prompts online, but I don't want to copy these into PenMuse without thought. I want to curate these prompts so that they are easy to find and share.

What do you like to write about? What prompts would you like to see on PenMuse?

Contact me with your suggestions.

The death of web analytics?

It's been a long time since I stopped using Google Analytics to track the activity on my websites. In its place, I went with a product called Gauges.

On its own Gauges is fine but there hasn't been any new major features for a while now. Sure I pay money for the serivce to continue but it would be nice to see something new in the way of features. It's got me questioning though whether Gauges or even web analytics is still necessary.

Do I need web analytics?

I honestly think the answer to this question is no. Well, let me expand on that answer. I don't need web analytics. I can't speak for others, but let me explain using each of my different websites as examples.

Personal blog

For my personal blog, web analytics is nothing more than a vanity feature. I don't need to see what people are reading on my blog, I don't need to tailor content based on what people like or searching for.

My blog is an outlet for my writing, the topics that I am interested in writing about.

Whether people read it or not is not my main concern.

I write because I want to write. I don't need web analytics here.

DigitalBothy blog

For my freelancing blog things get a bit trickier.

Sure it would be nice to see what people are reading and what is proving to be most popular but my freelancing blog isn't just about giving people something to read. It's about advertising my knowledge of web development.

My blog is also the first step in acquiring potential clients. If a potential client likes what I am writing about and they have a need for a web developer like myself, then what next?

At the moment they can contact me through a form but there needs to be more than just a contact form. I need to be able to contact them back on a regular basis and let them know what's changing in the world of web development. This is where an email list comes in to play.

Despite listening to podcasts and reading many newsletters telling me for years that I need an emailing list for my business, I don't have an emailing list for my business. Crazy I know.

With an email list though I can start to build a way of contacting potential clients and convert them to paying clients through a funnel of more specialised content that is only available through that email list.

Instead of using web analytics and learning nothing about my potential clients, I can use an email list to contact them directly and see what interests them in terms of clicked content within each email campaign.

My freelancing blog is the first step in acquiring a client. While it might be helpful to see which content is proving popular at this step, I don't think that it warrants having web analytics. I'd rather see metrics of what people are clicking through to in the email campaigns that I send out.

DailyMuse

For DailyMuse, web analytics is not something that I want to measure.

Sure it's nice that people visit DailyMuse and perhaps even sign up for an account, but the key metric here is whether people use DailyMuse on a daily basis and that means measuring when people login, how many people are signing up for the paid plan and how many people are receiving emails per day or week.

I've already got a minimal dashboard for this cobbled together from user data in DailyMuse, so again, web analytics isn't necessary here.

There are also other plugins and solutions that offer user analytics for products like DailyMuse. This is more interesting because I get to see what user's are doing in my product. I'm not at that level yet and so what I have at the moment will suffice for the time being.

Do I need web analytics then?

So perhaps I don't need web analytics then.

Others might make the case that regardless of the type of website I am running, web analytics is better to have than not at all, but I think I can live without it.

I've justified in each case why I don't need web analytics and what I would use instead. I think in each case it's fair to say that I have alternatives in place that work for me and my own needs.

Web analytics isn't dead then, but I think it has been superseded by other analytic products that offer customers more. It's probably good to have in place if the content of your website is the only way of measuring activity on your website, but even then I would recommend that such a website have an email list as well.

I've used web analytics for a number of years but I think I've used it for so long that I've become complacent with it. It's not the type of activity I need to be looking at. I need to be looking at different forms of activity for different sites and that perhaps is the most important lesson in all this.

There's also the fact that Twitter already offers a sizeable amount of analytics that makes social media interaction much easier to see. If you share your website's content on Twitter, then it's worth looking at your account's analytics dashboard on to see the traffic through your account's recent tweets.

For me though, I'm going to stop using web analytics over the course of this week and instead focus on getting my analytics from elsewhere.

Client work lined up for today and some product work on DailyMuse. It’s been neglected in the last few weeks but I’m hoping to give it more time over the next few months.

The DailyMuse Facelift

Development of my DailyMuse service has been lagging in the last year. Sure I've shipped a few features for users, but other than that I've just not had the urge to develop it further.

It's still a valuable service to me and is to others as well. People are paying good money for it so why not improve it in any way I can?

In the last three months, I've been silently shipping little improvements and updates to DailyMuse in preparation for a big application update. Last night I shipped the latest update for DailyMuse which includes migration to Rails 5 and the use of Bootstrap 4 for the front end.

These two big updates have been on the DailyMuse backlog for a long time. In the last few weeks I've been chipping away at both of them to get them production ready.

A More Welcome Landing Page

The final result is a much more professional and welcome landing page.

Gone is the stark landing page, replaced with an interesting background and a better description of the DailyMuse service.

There's still room for improvement here though. I still think it's looks basic and could do with an illustration or graphic to accompany the description of the service. Also the form sits on the right hand side of the page as more of an afterthought. Would it flow better if the form naturally followed the product description?

Lots of to think of here and it will change over the next few weeks.

Application Foundations

Within DailyMuse itself there's be a big update to the look and feel of the service.

Instead of the two column layout I had before, it's now three columns with greater scope for adding contextual information in the far right column. It was always a problem trying to fit everything into two columns, but after looking at a number of other web applications, three columns proved to provide more space when needed.

Bootstrap 4 now includes the card component which I thought was a great way to highlight cards in DailyMuse. Not only does it offer a great way to encompass the card, but it also allows me to add extra information to each particular card.

There's still a number of changes to make to the front end though.

  • Gradually migrate away from the obvious Bootstrap 4 look with my own look for DailyMuse.
  • Make better use of the three columns with widgets for today's card, upcoming cards, and cards sent on this day in the past.

Let's Not Forget Features!

There's also a number of features due to be shipped in the next few months.

  • Card delivery by RSS. Email isn't everyone's cup of tea. RSS was the next obvious choice to receiving DailyMuse card.
  • Promote cards in the queue so that you can decide what to send in the foreseeable future.
  • Better randomising of cards to reduce the possibility of a card being repeatedly sent over a few days.
  • Collections being an idea where you can add cards to a collection of cards. These can be added to your DailyMuse email so that receive multiple cards at a time.

I'm not worried if DailyMuse doesn't make it as a service that has millions of users, but it would be nice to make it to the thousand user goal. It's a great service for me to exercise my Ruby knowledge and also hone a few other skills and certainly helps with it's daily email. I’m certainly looking to expand it into a better service over the next few months.

What is Trello?

Trello is a great tool for managing projects and products. Before we dig deep into Trello though I'm going to do a quick overview of what Trello is and how it works.

Trello revolves around three concepts. Boards, lists and cards. Before we move on further we need to understand what a board is. If we think of a board as a physical object then it's best to think of a Trello board as a drawing pin board. You know those boards you see in schools and universities that display announcements? That's exactly what a Trello board is. It's a place for a collection of related information. This sounds a bit vague but Trello isn't a tool used for a specific purpose.

The DailyMuse Trello board

On the board we can create lists that span the board. You can create as many lists as you need but it helps to keep the number of lists to a handful. By doing this you can fit the whole board in most of the screen sizes you use. Too many lists results in some lists being off-screen and you need to scroll to get to these. Call me lazy but that just seems like such a chore.

Finally there are cards.

Screen capture of a Trello card

These represent individual items of work. It could be a task, a feature, a todo list or a prompt of some kind. The card themselves contain a title and a description. They can also contain checklists, attachments and comments.

This is the basics of the Trello board. We didn't touch on features like calendars, email settings and labels, that's for tomorrow. It helps to have an understanding of the basic building blocks of Trello. It's just three concepts but it helps to understand these before going deeper into Trello.

Grass Roots Productivity - Regular Reviewing

We’ve looked at capturing and scheduling already in my little productivity process. The next step (not in order though) is the review.

For hundreds of years travellers have used different navigation techniques. The stars, maps, compasses and now the trusty smartphone can even help us get to our destination.

How do you get to the goals that you are working towards though?
Completing the items on your master list is one thing, but it’s all for nothing if there isn’t a goal to work towards. Most of us can remember to do the little things without the aid of an ongoing list to help us. If you’re keeping a track of your master list though, then you are most likely working towards a goal. How will you know though if you’re working towards that goal and making progress?

If the goal is the destination then the review step is our compass that steers us towards that goal. A regular review will help you ensure that you’re making progress towards an that goal.

My review process involves three stages.

1. Clearing the decks

In this stage I work through each of my various inboxes and convert any items into actionable tasks. It might be emails in my inbox, tasks on my CRM, or items I’ve captured in my notebook. I use this stage to bring everything together into my master list.

2. Review projects

I use the term project to review any amount of work that involves ongoing work. It might be generating content for my blogs, client work, or work for DailyMuse. This is where I review the progress of each project and ensure that I’m making progress towards it.

3. Planning ahead

Now that I know the progress made in the previous week or month, I can look ahead and plan for a similar timeframe. This involves scheduling actions into my calendar and setting reminders for the important ones.

Only my freelance work gets reminders as this is more important than most of my other projects.


And that’s all there is to it. I find it best to block off an hour a week to do my weekly review and three hours a month to do my monthly review. Done on a regular basis, the review step will help ensure that I'm working towards my goals.

Perpetual Devotion

Perpetual devotion to what a man calls his business, is only to be sustained by perpetual neglect of many other things.

— Robert Louis Stevenson

Love this quote that Shawn Blanc highlighted as part of his Focus Course and he follows it up nicely with his own take on it:

May devotion to our business not be sustained by neglect of our health, relationships, values, and even our own happiness.

Family Balance by Shawn Blanc

Both worthy additions to DailyMuse.

Some Ideas for DailyMuse

It’s been a while since I updated my daily email service, DailyMuse. It’s a year old now and I’m finding it to be a great start to the day. If you’re unfamiliar with it, then here’s the gist.

DailyMuse emails you single snippet of text from your own collection of snippets. Think of it as your nudge for the day. In the past year I’ve collected a number of quotes, lists and nudges that I keep here. Every day I get an email from DailyMuse with one of these snippets.

For the last year thought the service hasn’t unchanged. It’s not through lack of work on my part. I’ve built three different features and trashed them on the basis that they’re not suitable or too complicated for DailyMuse. The last thing I want to do is complicate DailyMuse but I do want it to be a more powerful nudge in the morning, and not just for me.

Here’s a few ideas I’ve been pondering on for DailyMuse.

The Daily Mantra

I recently read Paul Graham’s Top of Your Todo List post in which he talks about 5 commands that sit at the top of his todo list. It’s a nice idea but I don’t have space at the top of my todo list, but getting something like this in all my DailyMuse emails would be a nice idea.

Rather than having the commands at the top though, I thought about including it in the footer of the email. That way once you’ve read through your nudge for the day, the last thing you’ll read will be your commands.

Call it commands, a daily mantra, a motto. It could be anything, but lots of people live by this in some form and a daily reminder of it couldn’t hurt.

Categories

One of the trashed ideas for DailyMuse was adding the ability to organise snippets using tags. The daily email from DailyMuse could then send a snippet from a specific tag on different days. After testing the idea though I realised that tags allowed for a huge number of ways of organising your snippets. It was overkill.

Tags was too granular for organising snippets. I needed something broader, something simpler. Rather than organising snippets into tags, how about organising them into categories? One category per snippet is much simpler and with a limited set of categories to play with it means that people have a simpler way of organising their snippets.

Cards, Not Snippets

There’s one thing that has irked me since I built DailyMuse and that’s the use of the word snippets. I don’t like the word snippets, but it seemed like the best way to describe the information you collect for your DailyMuse emails. Maybe it’s my developer background that swayed towards this, but it isn’t the right word to describe what these snippets are. I had to get away from the programmer influence for this.

If DailyMuse was a paper-based service that didn’t rely on computers then how would it work in the real world? Well, every day you receive your snippet in the post, but it wouldn’t be on a letter because that’s for long form writing. DailyMuse is all about getting a short burst of information every day. It would need to be on something smaller. A card. An index card.

What wasn’t obvious in the past when I built DailyMuse now is. Rather than using the term snippets, I should have used cards.

This is one change to DailyMuse that is happening. A change in the terminology should simplify what DailyMuse is and encourage more people to sign up for it.

Find the Right Features

DailyMuse is still a side-project. While it does have a number of paying customers, it’s just enough to cover the hosting costs for most of the year. I’m taking my time with it and allowing it to a grow at a steady pace.

Not everything I build for DailyMuse get shipped. I’ve trashed more features for DailyMuse than I’ve added. I’m trying to keep it simple and easy to use. Burdening it with features isn’t going to make it anymore useful but it does have some space for improvement. I just need to find the right features that fit that space.

About Me

I'm a freelance Web Developer from the UK.

I build high quality web application solutions using Ruby on Rails and Sinatra.

In my time I've built web applications with the following tools and libraries: Cucumber, Rspec, Minitest, jQuery, Postgres, MySQL, RabbitMQ, Heroku, Cloud66, Engine Yard and AWS.

When I'm not working I'm spending time with my family, cycling, golfing and the odd spot of gaming (yes, I've still got the skills).

If you're interested in working with me, you can send your details to me and I'll get back in touch as soon as possible.

Some of My Work

DailyMuse

DailyMuse is a daily email that you curate using your own quotes, lists, links and anything else you find interesting. One of these items is sent to you at random everyday. DailyMuse is built with Ruby on Rails and uses Stripe for payment processing.

Journalong

Journalong (retired) was a free service that takes your journal entries and saves them to your Dropbox. Journal entries are written in plain text with a preference for Markdown. It was initially built using Ruby on Rails. Since retiring this product I've put together a smaller Sinatra version that is designed to be run from your own computer.

Searching for a Worthy Successor to Backpack

Do you remember Backpack? If you don't, it was a knowledge base web application where you could store notes, images, drafts, attachments and other gubbins. Since 37signals changed their name and focus to Basecamp, Backpack has been left to quietly sit on the sidelines. There was a time that I loved using Backpack but after a while I tried a few others. Overtime though nothing compared to the functionality that Backpack offered.

Frustrated, I've been looking for alternatives to Backpack. Here's a few I've tried in the last few days.

Trello

I use Trello mainly for managing clients projects but I do have a couple of other boards here that I use. I tried to create a board that would serve my needs as a knowledge base board but there's two dislikes I have about Trello. Sharing individual cards isn't possible unless you share the board the card belongs to and viewing a card on it's own has too much clutter.

FAQT

I signed up to FAQT when I first seen it on Hacker News a few weeks ago and initial impressions are good. Markdown based 'cards' that can be categorised and shared. Fulfills most of my needs as a knowledge base and there is a few features I would like to see but my biggest bugbear is that FAQT is currently free and therefore there's a chance the service won't be around forever.

DailyMuse

Lastly there's my own DailyMuse application. It's comprises of a collection of snippets with a single snippet being sent to you daily. It's nice for things like quotes and lists that I like to review periodically but as a knowledge base application it lacks a few features that FAQT has. For a while though DailyMuse has been trundling along as a micro-service with a very focused aim, but maybe it's time to turn that on it's head and make it into some more that appeals to more people. It would offer the same functionality that it offers today but would also include the ability to create and share information in the form of pages. It's an idea I've been thinking about but reluctant to act on.

There's probably more in terms of knowledge base applications out there that do the same thing, but to be honest I would rather be using an existing service for this rather than using another service and having more of my data spread out on the Internet.

Finding that a lot of the code I’m writing for DailyMuse is to support the product rather than being code for new features.

Supporting Features in DailyMuse

In the time it's taken me to get DailyMuse up and running, I've noticed that a lot of the code that I have written for this product is code that supports the product. The amount of features that I've added or expect to add is rather minimal. Yes, there's new features arriving soon for DailyMuse like scheduling snippets on particular days and tagging snippets, but in the past few weeks I've been writing code to support the product.

This idea of supporting the product with code could be thought of as a feature, but I see features as something that directly benefits the user. As an owner of the product I also need my own features. It's these supporting features that I see as being code that supports the product.

Commmunication with users of DailyMuse is important. They could be getting their daily email every day or almost every day of the week depending on their needs. Bombarding them with additional emails on top of this to notify them of features or changes in DailyMuse isn't in their best interests.

I wanted to notify users of changes to DailyMuse, so I added the ability to add one or two lines of text after their snippet that they receive on a particular day. I've used this short messaging idea only a couple of times so far, but it's value to me by being able to bring something to the users attention is without bombarding them with more emails is important.

I've got a number of other supporting features planned for DailyMuse in the future. They'll help me to administer DailyMuse, communicate with users and help maintain DailyMuse as a product and service. New features are nice, but having a stable product that improves gradually for its users is better.