Changing Course

In one of my last posts The State of the Application, I outlined two major features that I believed at the time would set Collate up to become a really powerful application:

  1. Git Support
  2. Plugins

After a lot of deliberation, experimentation, and thought, I’m abandoning these two goals. I apologize to those that were looking forward to these features. It wasn’t an easy decision but ultimately I believe it is the right one for the direction in which I want to take Collate.

I’m abandoning them due to time and engineering constraints. Creating both in a way that would work on all platforms and mobile would be incredibly difficult for a team of developers let alone a solo developer. I want to focus on building Collate on Mobile and Desktop and making it a more solid platform.

The new future of Collate

The new future of Collate looks like this:

  1. Collate Connect
    • Collate Connect is a redesign and rebuild of which will serve several purposes.
      1. Remove License Keys and set up our own Auth server. License keys are managed by a third party (Gumroad) which handles payment and keys. It’s been a great service but running our own Auth server allows us more fine-tuned control as well as integration with mobile devices.
      2. The terms for the iOS app store doesn’t allow license keys or ways to take payment outside the app store. So I will offer Collate as a free application which requires an account to gain access to the Collate sync services.
  2. Switching from directly manipulating files on the hard drive to reading and writing from a database, then dumping the data to local files.
    • Reading and writing files to and from the local hard drive has worked for the most part but there have been issues (mainly on Windows systems). To mitigate these issues, as well as to improve Collate load times, I will add a middle database layer which Collate will interface with directly. Here’s a crudely drawn diagram:
      Basically, how it will work is when you load a collection, the program will read your note data from disk and store it in a database. When you work with your notes, all changes will happen on the database. Then periodically, the notes will be dumped back onto your hard drive. This may mean that if you modify notes outside of Collate, changes may be overwritten. More to come on this in the future though. The core of this idea is that your data is still stored on your hard disk and is safe and sound as files but the hard work will be done between Collate and the database layer. The database layer also has the benefit of syncing between a cloud service (if you choose to use the service).
  3. Combining the note types. No more choosing between a markdown or rich text notes.
    • Note types have been quite popular, but can be a little cumbersome. There should be a single unit of note and editing of data should be just a matter of cycling through different editors. I haven’t fully envisioned what this would look like, but the goal is simplifying note creation and editing.
  4. Creating a mobile app.
    • Pretty self explanatory but the changes above will set the stage for a mobile platform. Your notes (if you choose to make them remote) will sync through Collate Connect and be available to your mobile devices. It’s very early on and there is a lot to experiment with and work with.
  5. Switching to a subscription model (for new users).
    • This is certainly not the most popular option but it is necessary from a business standpoint. I believe that a small monthly charge (or yearly) is key to creating a sustainable long term business. The creator of Pinboard wrote a great piece titled Don’t Be A Free User that highlights the key points in charging for a product.

Development is still ongoing. Slow and steady.  I’ve been spending my time decompressing after the last six months of development frenzy as well as working on the new website redesign and exploring new technologies and frameworks (namely PouchDB for the database layer and the Quasar Framework for mobile).

That’s all for now.

– Patrick