The story of BlockNote began almost 12 years ago when my wife asked me to find an application that allowed her to publish thoughts and photos on the Internet. I started looking for something that allowed a technically unsophisticated person like to create HTML documents. It took me a week of Internet searching, only to discover that there was simply no such tool that didn't require HTML knowledge. To be sure, I found plenty of tools for professional web developers, but nothing simple for more casual users.
Ideally, I was looking for something as simple as the Notepad. I didn't find anything close, and decided to create such an editor from scratch. Eight months later, my wife started using the very first version. That’s how "BlockNote for the Net" was born.
I published the BlockNote as a freeware application, and it has been downloaded about a million times since then. Despite being 12 years old, the BlockNote still works. In fact, I am writing this article in BlockNote itself:
Today, almost all of us generate content. Be it a blog article, a forum post, an email, or just a note to self (i.e. Evernote or similar). In all such cases, we are editing documents that are almost always in a form of “HTML under the hood” proprietary format.
Most blog sites, forums, and Internet-enabled applications provide facilities to edit formatted text in their own particular manner. I believe it’s inefficient for us to remember the specifics of editing all of them.
Another reason why I’m writing this article in BlockNote is because I get to control where and when the drafts and the final version will be saved. In other words, I get to manage the life cycle of the document on my own terms.
Why create BlockNote 2
Many things have changed since then. We finally have stable CSS standards in widespread use. We've got various cloud services for storing, publishing, and sharing, such as DropBox and Google Drive. Everything is connected, and we've even started talking about the Internet of Things.
A. Windows, Mac OS X, Linux
BlockNote runs on Windows only. BlockNote 2 will be available on all the major desktop operating systems:
B. WYSIWYG and styling (CSS)
While the text we edit may look fairly simple, it can have a rather complex internal structure. Yes, the main task of WYSIWYG editing is to isolate you from the need to know HTML details. However, occasionally you should be able to see and manipulate the document structure on a more intricate level. Note the left side bar in the image above: it visualizes the underlying structure to explain why the two paragraphs are separated by a space, for example. This early design may not be ideal, and requires further usability explorations. In general, when you have HTML decorated by a lot of CSS rules, pure WYSIWYG editing is hard to achieve. Therefore, additional visualization helpers like the sidebar above are needed.
Additionally, we should be able to design our own style systems for our documents, and use different styles in the same document. We may even want to use one style set that's optimal for editing, and another style set altogether for publishing the final version on a target blog or website.
C. Extensible editing platform
We can’t predict the future: what storage services will be available, what additional functions will be needed, etc. Therefore, BlockNote should be extendable without the need to wait for the next version.
Anyone familiar with web programming should be able to create a plugin for the BlockNote. This requires not only changes in BlockNote code itself, but also a community-supported repository that would allow plugins to be published for the use of others. A simple example of such a plugin could be a button that generates a table of contents for the document with one click.
D. Document storage
In recent years, a number of public cloud storage services have emerged. In my opinion, having the capability of direct editing and one click publishing from such services would be beneficial. Consider the ability to comfortably edit documents that you already have in your EverNote, Dropbox, Google Drive, GMail, Outlook, etc.
In addition to being able to edit local documents, BlockNote2 could allow you to transform an old laptop into a family document server by running the server edition of BlockNote2 on it. Your documents could also be accessed from the Internet when you on the run via your broadband connection, similarly to the big cloud services. In this case you will not need to store your private data on someone else's computers.
E. Multiple document formats
While BlockNote 2 is meant to be primarily an HTML editor, support for various export formats would be beneficial. There are many sites that use their own textual formats. For example, GitHub accepts articles in the so-called Markdown format that is yet another way of defining HTML. Similarly, we also have Textile, BBCodes, Wordpress markups, and more. It’s convenient to have one editor that allows you to write text as you see it, and to export it to your destination with a single click.
SVG is a document format for scalable vector graphics that can be rendered on your high DPI (e.g. Apple retina) display with maximum possible resolution. Having a basic graphics editor (vector and bitmap) in BlockNote could be beneficial.
F. Not only formatted text
HTML is a flexible format that isn't limited to displaying decorated text. For example, it can also be used to render tabular data with embedded formulas. Consider something similar to a Microsoft Excel table processor that uses fluid HTML tables, rather than a fixed grid of cells:
Similarly, HTML/CSS can be used as a presentation media. I can easily imagine BlockNote2 editing and generating a sequence of slides ready to be published as HTML file on any web site or played back locally.
What is done so far
Almost immediately after BlockNote1 was published, I began considering making it extensible to adjust to evolving Web standards and technologies better, and to work on other OSes. I've tried various approaches to create an extensible foundation for the BlockNote, and ended up with the Sciter engine:
Sciter is a multi-platform HTML/CSS/script engine, embeddable micro-browser if you wish, designed for the user interface (UI) layer of desktop applications. It is a tool that allows reusing a stack of web technologies for desktop applications.
Despite the fact that Sciter was meant to be a platform for the new BlockNote, it began its own life after being published in 2007. Since then, Sciter code was installed on 120 million PCs and Macs as a UI engine in various products from major software vendors.
At the moment, Sciter engine is a mature and solid foundation for BlockNote2. It already supports basic WYSIWYG editing functionality, and I've made several proof of concept sketches. One of them can be seen in the screenshot in the middle of this article.
If the campaign here at Kickstarter demonstrates interest in this project from the public, I'll begin work on BlockNote 2 immediately.
The funding would allow me to focus my time on this project fully, and publish the first beta version by October of this year. By then, BlockNote2 will implement all the existing feature set of BlockNote1, and will run on Windows, Mac and Linux. This is the so-called Plan-Minimum that includes items A, B and C listed above.
Plan-Maximum includes all the tasks from A to F. To handle them simultaneously, I will need to assemble a team of professionals. This requires at least twice the amount of funds to be available initially. For this to go ahead, this campaign would need to go extremely well, or someone would decide to co-sponsor the project.
Please spread the word about the project. This will help us have an HTML WYSIWYG editing tool we all deserve :)
Risks and challenges
The biggest challenge for this project relates to an old software developers' saying: create software that any fool can use, and only fools will use it.
In the process of writing and publishing this proposal, I am adopting the perspective of BlockNote's end user rather than a professional software and web designer, who is concerned with internal HTML structure. In other cases, I need to generate content with elegant and clean markup that can be integrated into a web page.
To serve both of the above purposes, BlockNote2 requires some dualism. It needs to be sufficiently capable and simple to use in the user-friendly mode, yet should allow customization to enable advanced features for a more developer-oriented use case scenario. In addition, the user interface needs to be adaptable enough to remain streamlined, and efficient.
Hence, the main challenge likely won't be of a technical nature. With a successful campaign here, I am confident in accomplishing "Plan-minimum", as I've previously done with BlockNote1. However, Blocknote2 will have more features, and multi-platform support.
On the other hand, accomplishing "Plan-maximum" is a different story. It requires a team of 3-4 developers to be assembled and funded for at least one year. I do know professional developers and designers that would be excited to join the project, but that would require taking time away from our regular jobs.
I hope that either the Kickstarter campaign will go well, or an entrepreneur/investor would step in to to [co-]fund Plan-Maximum. If you have an idea or an offer - bring it in, we are open to proposals.Learn about accountability on Kickstarter
- (30 days)