Ditching Notion for logseq + obsidian, so long to proprietary formats

I’ve decided to not renew my Notion subscription after being a customer for 4-5 years now. I consider myself to be a pro user of the Notion app and have been a huge proponent of the product in general since they launched. It was a great alternative to incumbents at the time like Evernote and SimpleNote or even Google Docs. But what allowed Notion to move so fast early on has now crippled its ability to continue tacking on features.

Notion’s desktop client is built using Electron or some flavor of a JS-as-a-desktop app tool that allows the devs working on the product to move at the speed of producing web features. For most web app, you don’t have thousands of documents or rows of data to work with, especially formatted rows, and this has recently caused problems for Notion. Enough that Notion has made great efforts to work tirelessly on this. But this is not the reason I’m leaving Notion, it was one of the pain points that’s easy to point out.

I’m leaving Notion mainly due to its closed ecosystem of keeping everything in proprietary formats and allowing embeds of other things but still being mostly closed. Notion’s not the first do this, I believe Web 2.0 is just full of examples of this. The lack of openness leads to no real collaboration or sharing of content between multiple types of editing software, whether I want to use Notion’s nice looking UI for editing a database table and then actually exporting that to something like Excel or exporting a legible markdown file. All this is somewhat possible but it feels not so great. Especially editing of database rows.

A good example of just how bad markdown editing is this exported view of my Travel page from my Notion workspace, everything is illegible from a human point of view, see screenshot below:

Even worse is the fact that the workspace is unusable in any other software like logseq, vim, obsidian, or even a file browser.

Below is the graph from loqseq when I pulled in the Notion workspace:

It’s impossible to make sense of this graph since everything has insanely long names and the relations don’t make much sense.

I’m hoping to use Obsidian as my primary tool for things at work and logseq as my personal digital mind. Why the separation? I like having my work stuff completely separate from personal stuff to avoid any important and non-public information from leaking anywhere. Even leaking between my personal and work computer, that would not be okay in any case.

I will have to start over on logseq to organize my digital mind but I hope that the effort is worth it.

On paying for software

I am a strong believer of paying for good software, this is why even though I had decreased my use of Notion over the last year to once in awhile, I decided to continue paying for it but recently the $48/year is not really worth its cost anymore to me and I’m going to move that to other software I use daily or benefit from daily.

Spending a week with my parents

The past week, up until last night, I was spending time with my parents. This is the first time I’ve spent significant time with my parents since I moved out almost a decade ago. It lined up nicely with Eid al-Fitr which happened last Monday.

The first half was spent in California, visiting my parents and siblings from Saturday to Wednesday. Then Wednesday evening we flew out to Portland.

It’s odd having to host your parents. I never thought about this much until it happened to me. Kristen hosts her parents often, 2-4 times a year and has done so for at least 5 years now. This was my first time.

The part spent in California wasn’t too much since there was a lot of things going on at the house, Eid preparations happening, and all the nieces and nephews running around.

Starting Thursday morning up until last night, it was pretty hectic. My parents were staying at my new house in Portland for the first time and they had something to say about every little thing. From how there are too many trees near my house to how little room there is in the garage. I had to repeatedly mention that 122 years ago when this house was built, cars were not really a thing. For instance, my house was built in 1900 and the Model T became available around 1908. And I’m sure it took even longer to consider building houses based on cars being a primary mode of transportation. I’m sure horse drawn carriages were a thing but they probably didn’t have the need for multiple of those (I’m just guessing here).

Seeing my parents made me think of the movie The Namesake as it reminds me a lot of my parents’ early years in the US. It really gives me a nostalgia I only feel through the settings in the movie. I feel a strong parallel between the parents in the movie and my parents, especially about the time when they first arrive in the States and misunderstand or misinterpret cultural norms. I feel a strong urge to share photos of my parents’ early life in the US but at this time I feel it might be too much for me to expose their lives and faces to an unknown world of the internet.

Upcoming plans

My parents are planning on visiting Pakistan for a few months. I’m going to miss them and also I feel happy for them to be able to spend more time there this time around. Hopefully, the politics of Pakistan don’t get in the way.

The bygone photos of people in offices

Me in 2015

I am visiting the New York City office for my work this week. I am tagging along Kristen on her work trip and decided to into the office. It’s similar to the San Francisco office, has most of the elements, albeit toned down a ton and the population is sparse due to the pandemic.

I’m getting settled into the office and one of the things that really stuck out to me was the fact that there’s photos of people on the walls. Not the photos taken by the office teams (office events teams, front desk people, or anyone like that) for office morale or promoting employees amongst theirselves, but candid shots of someone doing work or two colleagues hanging out talking about something.

The genuine smiles and moments get caught in time and glued to the wall as if these will reoccur but it really makes me wonder, would those past selves of us know how we feel now? In offices with strangers who happen to work at the same company as us but not relateable due to the fact that a 2 year hiatus of being at the office really has made the office just that, a place to work and nothing more.

I went through my old photos and found one of me where it’s meta as it can get, there’s another photo of me working in the same office from a different angle. Young me was an ambitious guy, my desk is still as messy as back then.

A retro on the Bookends alpha

From December to February, I was pushing hard on building out the Bookends app, especially during the end of year break that gave me about 10 days to work on it while being off work. It acted as a catalyst allowing me to launch a working version of the website and then start adding features.

Keystone’s good and bad

I chose Keystone.js as the CMS for storing my data and helping me manage models and quickly get off the ground. Keystone’s beautiful marketing pages really sucked me into using it. It comes with a lot of batteries included features like a working schema and migration approach (using Prisma) and a GraphQL UI and API to be used for easy building and testing.

All good things aside, it does have its limitations. Debugging Keystone on a deployed server is tough, errors are hidden away and if something breaks, the admin UI doesn’t really show much information about it either.
A big nuisance for me recently has been the fact that interfacing with Prisma settings is practically impossible. This came up because I was having some connection pooling issues which led me down the path of looking for what exactly is causing slow search results from coming back. Turns out, Prisma was unable to handle more than 5 simultaneous searches and that was problematic as I only have a dozen users and they are not searching at the same time, those 5 searches are done by me to stress test even a tiny bit.

Next.js and typescript are great

I’ve grown to love Typescript’s strict approach to making sure I’m not deploying shitty code. When starting out, I was getting frustrated with type errors and the linter in VS Code bothering me so much but as time went on and my natural instinct to make sure the type was added made working with typescript pretty straight forward. And it has made me really think about what I’m trying to do with a particular function.

Next.js has been a very helpful tool as I’ve used Vercel to deploy and once getting over the learning curve, I’ve started to produce useful code more and more.

Upcoming plans

I’m hoping to continue working on the UI as I have a ton of things to add but I’m really rethinking which approach to take for the server-side implementation. I’m most likely going to go for a JS/TS based server-side approach that will not be Keystone.js.

Feature dev has been halted as most weekdays I don’t have energy to add on code after work and I’m thinking of clearing out my mind and queue of tasks to focus on getting the foundations right.

Some quotes by Albert Camus

Recently I’ve been listening to The Midnight Library by Matt Haig and I ran into a few quotes by Albert Camus like the following one:

β€œYou will never live if you are looking for the meaning of life.”

I also went on the internet to find some more.

β€œWhat I’m sure of is that you can’t be happy without money. That’s all. I don’t like superficiality and I don’t like romanticism. I like to be conscious. And what I’ve noticed is that there’s a kind of spiritual snobbism in certain ‘superior beings’ who think that money isn’t necessary for happiness. Which is stupid, which is false, and to a certain degree cowardly…. For a man who is well born, being happy is never complicated. It’s enough to take up the general fate, only not with the will for renunciation like so many fake great men, but with the will for happiness. Only it takes time to be happy. A lot of time. Happiness, too, is a long patience. And in almost every case, we use up our lives making money, when we should be using our money to gain time. That’s the only problem that’s ever interested me…. To have money is to have time. That’s my main point. Time can be bought. Everything can be bought. To be or to become rich is to have time to be happy, if you deserve it…. Everything for happiness, against the world which surrounds us with its violence and its stupidity…. All the cruelty of our civilization can be measured by this one axiom: happy nations have no history.”

NuPhy Air75 review

I bought the Air75 from Nuphy as a gift for Kristen.

It’s a low-profile wireless mechanical keyboard that comes Gatreon switches. The switch options are Blue, Red, or Brown. I got her the red switches due to their linear mechanism.

I don’t have many thoughts about this keyboard because at $75, it sits perfectly in the range of a starter mechanical keyboard that’s wireless. Usually, wireless is harder to come by on mechanical keyboards (or maybe that’s my experience so far).

The keys have a subtle concave shape that makes the typing experience feel different than a laptop keyboard but still doesn’t require you to use a wrist rest or lift up your hands to type. The RGB is a nice touch. I’m not too big on RGB so it’s not something I care too much about.

Overall, it’s a decent keyboard with no major downsides.

Setting up a Mac (with command line tools)

It’s probably my 10th or 20th time setting up a computer and each time I start this process, I think to myself that I should be writing it all down so next time it’s easier for me and maybe it will get other some ideas on possible things they should check out.

I’ll start with exactly how I go from opening Safari to download another browser all the way to setting my command line to look and feel like it does on my other computer.

Apps

  1. Download your favorite browser (I use Firefox).
  2. Use a password manager. I use 1Password because after a few hiccups that Dashlane had with its UX, I decided to pay a bit more and go with the best experience. This also helps me log in to almost all the subsequent apps below.
  3. Use Alfred. It’s way better than Spotlight and I use the clipboard history like an addict.
  4. At this point, I will usually look at setting up my terminal and as I run into missing things, I’ll download them. So, one of the first things I do, I download iTerm2. I am hoping to give Warp a try at some point but not yet.

Setting up the command line

  • I don’t like how the dock comes fully loaded on the MacOS with all the native apps. So one of my first commands I run is clear out the dock.
  • I guess before I do any git cloning, I’ll need to set up my SSH keys.
  • I also like to use a simple dotfiles setup. You can get it from my GitHub: usmanity/dotfiles.git.
  • This time I’m using the Gruvbox iTerm2 theme.
  • And for hiding your title bar and making iTerm look very minimal, use the following settings
    • Settings β†’ Appearance β†’ Theme = ‘Minimal’
    • Settings β†’ Profile β†’ Window β†’ Style = ‘No Title Bar’
  • I use zplug for managing plugins for my zsh setup.
  • Homebrew before everything else: https://brew.sh/
  • Install Powerlevel10k so that the prompt looks nice.
  • Install asdf for managing packages.
    • Add nodejs plugin: asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
    • Install it: asdf list all nodejs
  • Install yarn: npm install -g yarn
  • At this point, I’m going to stop installing stuff and get some repos cloned.

Here’s the iTerm theme + font setup (font is powerlevel 10k’s installed font)

Here’s the iTerm profile.

Other apps

  • I use Magnet to manage my windows.
  • I have a SetApp subscription to install a bunch of helper apps.

After years, I bought a personal MacBook

The last time I bought a macbook was in 2010. It was a 13″ Macbook Pro at the base specs. It was great, lasted me a couple of years and then I passed it on to a friend. Last month, I decided to order a new macbook, the ones with M1 chips.

I got a mid-range MacBook Pro 14″ with M1 Pro (I just now learned that MacBook is camel-cased). I don’t have any graphics intensive tasks that require a M1 Max so the M1 Pro is going to be an overkill already. My total out the door cost was $2569 (no sales tax in Oregon πŸ˜€).

Before buying this, I had a dilemma. I was using my work computer for most of my internet browsing outside of work and that’s not a big deal. It’s all just a browser after all and logging in to my bank or reddit isn’t crazy but I ran into a few specific development related issues I didn’t want to get messy. I have a few personal repos, one being my dotfiles and another for learning new things. The dotfiles contains basic command line stuff that just is that. But the learning stuff could get messy because I am mostly learning technologies related to my daily work but installing dependencies sometimes would hit the work related CDNs to download the packages. And I noticed that the lock files, for ruby and JS were storing the full paths to these CDNs which I wasn’t comfortable putting on the internet. And on top of that, I am not building any crazy side projects but I did want to have a bit of a personal workspace where I don’t have to be alternating between versions for work related projects and personal projects.

For posterity, I wanted to put the stats of the computer I got below:

The few things the screenshot doesn’t have are the 1TB storage and the number of cores: 10 (8 performance and 2 efficiency).

I moved to Portland 🌲

Last week, I left Oakland, California and moved to Portland, Oregon.

It’s a huge move for me and Kristen along with the pets but we wanted to try a new city while we can. Working remotely enables to move.

I don’t have many impressions to share yet except it’s cold as it’s the middle of winter right now.

I’ll miss Oakland, the Bay Area, and California a lot because I grew up in that area and spent all my years that I can remember there.

The house we got in Portland is larger than our place in Oakland so I’m excited to set it up and share some photos down the line. For now, I just wanted to write this down so others know and I can remember it.