subscribe by email
or follow @checkvist_news

Checkvist story

Helping people easily create, share, and collaborate on task lists and outlines.

Dec 14, 2009 2:10pm

The more and better, the better!

It’s good when a new great tool appears in your field. The better are tools, the higher expectations, the less half baked “app spam” you get while searching for a true helper in your work.

Besides, arrival of a new great tool stimulates the interest for the whole field. Your new “competitor” outsmarted you in visual design? Has more features? Found a better solution for a common problem? Well, now it’s your turn, give the users something better. And better. With each release.

Just keep on swimming, so everybody benefits.

We always loved Todoist and OmniOutliner for minimalism and smart features, Thinklinkr for smooth sleek visual design, and recently we had a great time playing with the newcomer, TeuxDeux.

And my, aren’t we glad to be listed beside it :)

Oct 7, 2009 10:04pm

New bookmarklet: Gmail and issue tracker integration

Seems, it’s time to update your bookmarklets!

The new bookmarklet is integrated with Gmail - click the “2Checkvist” link in the browser toolbar to create a Checkvist task associated with a specific email.

Same with the issue tracker integration - click the bookmarklet while browsing your issues to create a quick to-do list for yourself, your team, specific release, etc. So far Checkvist “understands” Atlassian Jira and JetBrains YouTrack issue link formats.

But of course you can use bookmarklet to save references to any web page as well and conveniently create a list of tasks while browsing the web.

Other enhancements include:
  • No pop-up window (no problems with browser pop-up paranoia)
  • ESC to close the bookmarklet window
  • Ctrl+Enter instead of clicking the Add button.
Here’s a short demo.

Drag and drop the new bookmarklet to the browser toolbar: 2Checkvist or update it later from your profile page.

Sep 28, 2009 12:48pm

Embed checklist to your web page

After releasing the iGoogle gadget for Checkvist it was rather natural to give users an easy way to embed lists to their web pages. Just like in an example below:

This checklist is marked as public, so anyone can view it even without having Checkvist account.

Now, when checklist author marks it as public from the share dialog, there is a code snippet which allows to embed this checklist to any HTML page (see screenshot below).

You can copy/paste code fragment from the text field and insert it into a web page. If needed, you can tweak width and height parameters.

Sep 25, 2009 2:01pm

Add Checkvist to your iGoogle homepage

Here’s a little something for your convenience: an iGoogle gadget. Add it to your personalized Google homepage and work with your list using the same keyboard shortcuts:

  • Select a list you want by pressing ll
  • Hide/show completed tasks by pressing hc
  • Navigate the list, add new tasks, subtasks, complete or invalidate, use color - all fast, not taking your hands from keyboard.

    Click the button to install it now: Add to Google

    Sep 14, 2009 4:00pm

    OpenAPI usage examples (Javascript, Ruby)

    We’ve got a number of requests to provide some examples of accessing Checkvist via OpenAPI. When I started preparing one, I found some inconsistencies in the OpenAPI docs and in the implementation. These issues have been fixed and now I’d like to give you some code examples.

    In the examples, I’ll demonstrate usage of the JSON format for the returning data. Checkvist API also supports XML format, for details, please see the documentation.

    Javascript

    The Javascript example illustrates how to obtain checklist tasks data and embed the list into your web page.

    The list will be organized into a hierarchy with simple UL tags. Completed tasks in the list will be striked, invalidated tasks are marked with italics. The parent UL tag will have CSS class checkvist_list to enable styling according to your needs.

    Here is a sample of the generated HTML code:

    <ul class="checkvist_list">
      <li>This is an item</li>
      <li>This is another item
          <ul>
            <li>This is a subitem</li>
            <li><strike>This is a completed subitem</strike></li>
            <li><em>This is invalidated subitem</em></li>
          </ul>
      </li>
    </ul>
    

    To embed the checklist, follow these steps:

    Step 1. Add Javascript library for accessing Checkvist

    In the HEAD section of your web page, add the following line:

    <script type="text/javascript" 
    src="http://checkvist.com/javascript/checkvist_api.js"></script>
    This sample library contains the code which accesses the Checkvist via OpenAPI and builds HTML for embedding into web page. You can download it and customize for your needs, if you want.

    Step 2. Prepare target location for the embedded checklist

    Add the following markup on your page at the place where you want to see the checklist:

    <div id="checklist_container"></div>

    Step 3. Determine the ID of the checklist you want to embed

    This is an easy part. If your checklist has URL like http://checkvist.com/checklists/3318-checkvist-test-plan, than required checklist ID is 3318.

    Step 4. Get your OpenAPI key

    Visit your CheckVist profile page and click “View/update remote OpenAPI key” link. Copy the key from the text field.

    Step 5. Add code which actually loads the checklist

    Add the following block in the HEAD section of your Web page:

    
    <script type="text/javascript">
      function load_checklist_callback(data) {
        document.getElementById('checklist_container').innerHTML =
             checkvist.create_tasks_html(data);
      }
      function load_checklist() {
        // Remove the next line if your checklist is public
        checkvist.login('Your E-Mail', 'Your OpenID KEY');
        checkvist.get_tasks(<Checklist ID>, 'load_checklist_callback');
      }
      
      var checkvist_interval = setInterval(function() {
        if (document.getElementById('checklist_container')) {
          clearInterval(checkvist_interval);
          load_checklist();
        }
      }, 20);
    </script>
    

    In this code, you need to specify your login to CheckVist - e-mail address, OpenAPI key, and checklist ID to show.

    If your checklist is public, there is no need to authenticate, so checkvist.login call can be omitted.

    Actually, instead of calling setInterval function, you can invoke method load_checklist in your usual place of Javascript initialization code for your web page.

    That’s it. When the page is loaded, the element checklist_container will be filled with checklist tasks. You can take a look at the checkvist_api.js and use it as a base for solving more complex tasks.

    Ruby

    As long as Checkvist OpenAPI is HTTP-based, you can use a standard Net::HTTP module to create requests, and JSON gem to parse responses.

    Here is a sample class for accessing Checkvist from Ruby:

    require 'net/http'
    require 'uri'
    require 'rubygems'
    require 'json'
    
    class SampleCheckvistApi 
    
      def initialize email = nil, api_key = nil, site = "http://checkvist.com"
        @email = email
        @api_key = api_key
        @url = URI.parse(site)
      end
    
      # Obtain a list of checklists
      def checklists()
        json_call Net::HTTP::Get.new("/checklists.json")
      end
    
      # Obtain a list of tasks for given checklist
      def tasks(checklist_id)
        json_call Net::HTTP::Get.new("/checklists/#{checklist_id}/tasks.json")
      end
    
      # create a task in given checklist
      def create_task(checklist_id, content, parent_task_id = nil, position = nil)
        json_call Net::HTTP::Post.new("/checklists/#{checklist_id}/tasks.json"), 
          { "task[parent_id]" => parent_task_id, 
            "task[position]" => position, 
            "task[content]" => content }
      end
      
      # update a task attribute. For task attributes, you can use "content", "parent_id", "position"
      def update_task_attribute(checklist_id, task_id, attr_name, attr_value)
        json_call Net::HTTP::Put.new("/checklists/#{checklist_id}/tasks/#{task_id}.json"), {"task[#{attr_name}]" => attr_value}
      end
      
      def json_call request, parameters = nil
        request.basic_auth @email, @api_key if @email
        request.set_form_data(parameters) if parameters
        
        res = Net::HTTP.start(@url.host, @url.port) { |http|
          http.request(request)
        }
        
        case res
        when Net::HTTPSuccess
          JSON.parse(res.body)
        else
          res.error!
        end
      end
    
    end
    
    And here is a sample of how to use SampleCheckvistApi class:
    
      # Specify authentication data:
      api = SampleCheckvistApi.new('email', 'OpenAPI key')
    
      # For each public non-archived checklist
      api.checklists.each do |checklist|
        # Obtain its tasks:
        tasks = api.tasks(checklist['id'])
        # Tasks are sorted by parent_id, position 
      end
    
    
      # Create a task in the first checklist
      # Get ID of the first checklist:
      first_checklist_id = api.checklists[0]["id"]
    
      # Create the task at the end of the checklist:
      new_task = api.create_task(checklist_id, "new task from api")
    
      # Change task content to 'new text'
      api.update_task_attribute(new_task['checklist_id'], 
          new_task['id'], "content", "new text")
      # Change the parent of the task:
      api.update_task_attribute(new_task['checklist_id'], 
          new_task['id'], "parent_id", tasks[0]['id'])
    
    

    If you’re interested in using Checkvist API, or you’re going to use it, please let us know :). You may also want to subscribe to the checkvist-api newsgroup.

    Good luck!
    KIR

    Sep 11, 2009 4:02pm

    Bugfix server update

    Hello,

    For the last days we didn’t do a lot of new development, but bugs cannot wait, so here is a short summary of what was fixed for the last time:

    • Fixed Remember Me support. Now users who checked “Remember Me” mark will be redirected from home page to their checklists page (as it was before introducing the paid plan)
    • There were some bugs when recognizing URL in checklist text. If you notice incorrect URL recognizing, please let us know.
    • OpenAPI fix: when tasks were returned in JSON format, the data was OK for Javascript interpretation, but didn’t confirm to JSON standard.
    • No notifications were sent about deleted notes
    • Copy/Paste/Move now copy notes for tasks as well
    • MySQL database were updated to avoid some locking problems
    • OpenAPI documentation was corrected in several places

    And thanks all of view for your feedback, we really appreciate it!

    Aug 30, 2009 9:59pm

    Extract checklist and UI customization

    This week we introduce a couple of features and a handful of bugfixes:

    • Extract checklist - when a checklist gets too long, you can easily break it into several ones. Just select the top task of the node you want to extract, and press xx (new shortcut for xtract feature). The top task becomes the new checklist title, and the original list contains a link to the new one. See reference for details.
    • UI Customization available to our Pro users - The first addition to the Pro plan allows changing the logo and colors of the Checkvist’s interface. Those who are sure of their web design skills can use custom CSS to customize Checkvists face into anything they fancy. See reference for details.
    • (bug fixed) Changed behaviour of a parent task upon completion in the “Hide completed mode (see the discussion of this issue)
    • (bug fixed) Corrected URL linking (thanks, Ricardo!)
    • (bug fixed) Saving credentials upon login (the “Remember me” option) (thanks, Oleg!)

    And - as usual - thank you so much for your feedback and so many ideas!

    Aug 19, 2009 3:31pm

    It's settled: Checkvist Pro

    We’ve been almost silent for quite a while. And there is a reason behind that.

    For more than a year, Checkvist was completely free. We have a lot of happy users, a lot of great feedback. It is a real joy to work on the tool.

    We got some requests from people who would like to donate to our service to say thank you - and these were indeed pleasant requests. On the other hand, monthly hosting bills led us to a thought that Checkvist should probably pay for itself, or at least cover some expenses.

    So we spent some time and introduced Checkvist Pro plan. As we promised before, all previous features, already available to Checkvist users, remained free.

    Checkvist Pro plan is subscription-based, and it costs $15 for 6 months. Its benefits are valuable mostly for those who collaborate using Checkvist:

    • Daily digest of the changes. You can either subscribe on changes in specific checklists, or subscribe for all available checklists.
    • Private read-only sharing. This feature is useful in a case when you want to show results of your work to someone, but disallow modifications from your reviewer (writeable sharing is still available for free).
    • Full HTTPS support. You can use HTTPS protocol to work with your lists, which makes your communications secure. For all (including non-Pro) accounts, HTTPS can still be used to register in the system and update user profile.

    There is also a couple of new things available to free accounts as well:

    • You can specify a custom message when sending a notification about changes
    • You can choose recipients of the notification, and also send a copy to yourself
    • Notification e-mail message was reworked and is available in HTML format

    Under the hood, we’ve also made several time-consuming changes, in particular, migration to Ruby on Rails 2.3.3 and MySQL InnoDB engine.

    And now, after the release, we can provide more frequent updates.

    Stay tuned and thanks for being with us :)

    Apr 16, 2009 2:28pm

    A forgotten milestone: 10000 lists

    As our friend mentions, Checkvist is already over 10 000 lists, which can be considered a humble milestone. While thanking him, I was wondering why I do not really find numbers that important. What are we developing for? What is important, then?

    • It’s not money - the tool is free and we do not aim to get ourselves a Ferrari by adding a paid plan, or selling it to a big company.
    • It’s not market dominance - we’re pretty aware of other tools, their smart and rich features.
    • It’s the joy. The joy of making a tool that would prove useful not only to ourselves but to some number of people who’d love it and use it. The joy of communicating with those people, discussing future plans and features, creating the tool together.

    This is it, I think. We see a long road ahead - adding search and tags, and dates (and other attributes), creating new web app for iPhone, improving UI look and feel, polishing existing keyboard support, etc, etc. With your help and participation it’ll be the biggest fun a software developer can get.

    10000 lists is great, but let’s continue. For the joy of it :)

    Apr 1, 2009 7:11pm

    Read-only publishing and HTML support

    Disclaimer: this is not a fools day issue. This is a normal, ordinary update of the server. No surprises. Here’s what kept us busy:

    • Read-only publishing of your checklists/outlines (suggestion)

    To share your outlines with anyone on the web, press “Publish” button in the Share dialog, then copy the URL and send it to your boss, friends or put it on your blog. The readers cannot make changes to it, but are able to copy or export your outline (useful if you want to share something other people can utilize in their work).

    If you or your co-workers make changes to that outline, they’ll be immediately visible to the public. To make the outline private again, simply click Un-publish in the same dialog panel.

    • Support HTML in tasks and comments (thanks joebadmo for suggestion)
    • Fix problem for multi-line task rendering in preliminary mobile version of Checkvist + add support for HTML as well (thanks Serge Beauregard for this report and for many others)
    • IE8 support, including option to add numbering to outline (see view options in toolbar)
    • Allow to send a copy of Checkvist invitation to self when inviting people
    • More fixes and improvements. Among them a fix for the bug when creating a checklist in Safari 3.1.2 or AJAX update of sharing information.

    Enjoy!

    Page 1 of 4