This is what “no-code” should look like — Notion
I really like Notion
I have a confession to make. I really like Notion. Notion, at its most basic, is a note-taking application. It allows you to create pages that contain various content, like web links, markdown, checklists, embedded content and so on. I am not alone too in liking Notion — look for the #notion hashtag on Twitter, and you'd find people rabidly professing their love. They aren't celebrities trying to sell something, but normal and authentic people who love a product.
My wife, who is a bit flabbergasted that I recommend Notion for everything , told me frankly, “Isn't this like Todoist? Or some journal app? There are dozens of such programs out there on the Internet. Free or paid.”
It's true. You can find dozens of apps that can provide you with a Kanban. It's a crowded field.
But Notion is special.
To me, it's a content management system that is very user friendly, yet very powerful at the same time. Like my wife says, the kanban, the markdown, the images, whatever, all those features aren't very interesting. However, you can dive straight into the app and create any of them in Notion. There isn't much to configure or install. You don't get to code it. To be frank, your interaction with Notion doesn't go further than typing text on a keyboard or enabling some option on a pop-up toolbar.
Is “no-code” for lawyers... or losers?
This brings me to the concept of “no-code” or “low code”. Apparently, lawyers are highly allergic to coding anything, so the idea that you don't have to do any coding is a feature. Among the front runners of this feature is Documate. It is a document assembly service built on docassemble but turns all that “programming” into buildable boxes so you don't have to do any coding. Another non-legal example is Scratch, an MIT project that teaches children how to program using blocks.
I haven't used Documate before, so I can't tell you whether it's good. Judging by its community though, it looks great. If you are attracted to its “no-code” premise and terrified of having to learn YAML and Jinga/Python in order to use docassemble, you should definitely give it a go.
As I can code, the idea of “no-code” turns me off though. Being able to tinker with a product is the fun part to me. Telling me I can't code means I cannot fully utilise the product. Once you become familiar with the capabilities of the product, your inability to code starts to look like the true barrier to achieving something. Suddenly, it's your fault, and that feeling really sucks.
It doesn't have to be this way. The opposite of “no-code” or “low code” isn't to code everything. To put it in another way, a product that asks you to do everything yourself is terrible. Ultimately a product has to provide features that you can use to achieve your aims. A particular set of features might be so limiting that it can do only one thing (and maybe do that one thing well). However, a different set of features could be so intriguing that you can use it for everything.
Think of “no-code” or “low code” this way:
- You hardly ever need to code in Microsoft Word. Yet you can create any kind of document you want. No code ftw!
- It ain't obvious, but you do some coding when you input a formula in Microsoft Excel. However, this “low code” environment allows you to perform calculations and filters and then use the output to visualize data. Excel is a prototypical database, a custom program and a report generator. Oops, sorry, Excel is a spreadsheet program.
Why I would use Excel for my Contract Management SystemHow do I get on this legal technology wave? Where do I even start? A “contract management system” or a “document management system” (“CMS”) is a good place. Business operations are not affected, but the legal department can get their hands dirty and show results for it. If you wouldLove.Law.Robots.HoufuSome good advice: consider using stuff you have already installed for innovation rather than inventing the wheel.
It's important to note that these Microsoft Office programs don't advertise themselves as “no-code”. They're still easy to use and accessible to all types of users.
Using Notion to improve my wife's website
So if you've been following so far, I think Notion is a great product that is equal parts friendly and powerful. It's also improving with a killer feature — an API. So a great product is now available to be integrated with others, making it even more powerful.
My use case shows how you can use Notion to make small, impactful improvements to your projects.
My wife is diligently developing her illustrator side hustle on her website, which I developed in roughly a week using NextJS. As an illustrator, a gallery is an important showcase of her work. Even though I had no qualms about doing it, being able to manage the content on the gallery herself would be a good feature. Content gets on the website quicker, and she'd get full autonomy on how to present it.
How the end product is going to look like – The Gallery page features categories where illustrations are organised. The pages for individual galleries feature a gallery of illustrations for the selected categories. Individual images feature some metadata.
My wife is not a coder, so choosing a data format for her was going to be challenging. It has to work with the website and work in her workflow too. A full-fledged content management system like WordPress would surely be overkill. However, explaining to her the intricacies of JSON, YAML or TOML would probably turn her off as well.
To turn you off, here's how the original YAML file looked like:
—- – caption: Travel sketches dateupdated: '2021-03-02' id: 3 location: travels title: Adventures and travels images: – caption: '' source: travels1.jpg thumbnailCaption: '' – caption: '' source: travels2.jpg thumbnailCaption: '' – caption: '' source: travels3.jpg thumbnailCaption: '' – caption: '' source: travels_4.jpg thumbnailCaption: '' portrait: true
I'd call this “code lite” like docassemble since she only has to edit one text file. But this will become problematic very fast:
- What does “travels_1.jpg” mean? How do I write a caption for something which I don't even know what it is?
- This is a text file, so the actual images are missing. It turns out that she still has to send the file to me, and then I have to rename it, and errm... a bunch of other manual steps before it gets on the website.
- It's not difficult for an ordinary user to commit errors on YAML. For example, the indents are significant. Any typo on the source file names is sufficient to break the system as well.
Enter Notion. It does all of the above and it does it even better. The YAML text file is now replaced with a screen that looks like this:
Each box is clickable, and it leads you to the illustration's own page.
Deceptively, it looks like a gallery, but its underlying structure is a database. So I can view all my pictures in a user-friendly gallery, which allows for searching and filtering. Furthermore, the gallery packs an interface for me to upload new illustrations. It's not obvious from the screenshot, but you can even create new categories of illustrations.
Editing the metadata of an individual illustration is also straightforward:
The gallery also allows my wife to attach her illustration to the individual item, so I am able to get everything I need to create the gallery from Notion.
Finally, using Notion API, the NextJS website generator grabs all the information from Notion to create the gallery you now see on the website. (NB: As of writing the Notion API does not support images, so that step is still manual at this time.)
Once you have decided on the scheme of your data, you can directly translate it into a user-friendly Notion page. My wife doesn't need to touch any code, but she still gets to plan her gallery in the way she wants. (Now she just has to scan some illustrations. 😝)
I hope this demonstration gets you to question what we really want from “no-code” or “low code”. It's sexy to claim that lawyers don't get to touch any code, or that they can automate their workflows by dragging and dropping some boxes. However, we can be more discerning than that. What exactly are the features of this product? What can I do with it? Does it make me pull my hair out at the limitations it imposes on me? Or does it offer to sacrifice me on the altar of my crappy computer skills? In the end, designing a good product is a lot more difficult than having an effect that doesn't need you to code. Even a product made for general use (like Word or Notion) might be more relevant than a product that is labelled “legal tech”.
And if you ask me, a good barometer of a great product is the fans who are willing to say nice things about it.
Love.Law.Robots. – A blog by Ang Hou Fu