Hey everyone! Got a quick weekly for you before I head out on a little weekend vacation. This post expands on concepts I brought up a couple weeklies ago.
My top priorities right now are:
- Public projects
- Easy project sharing links
- Mobile support
- Editor upgrades
While tackling all these things at once may seem like a lot, these four efforts in particular share a surprising amount of overlapping features, design decisions, and code. I quickly came to a crossroads: Approach #1: I could continue expanding LK's current codebase to accomodate mobile, public projects, and the new editor. Approach #2, I could make a fresh start using my experience from the past several years.
Rather than leave it to gut feeling, I dove a little a deeper. I sat down and specified all the changes that would need to be made for Approach #1. Since LK wasn't built "mobile-first" as they say, and LK was designed to work offline, I quickly ran into roadblocks that would require many weeks of untangling and refactoring. LK started as my "baby's first web development project", and four years ago I made a lot of choices that honestly make development today harder than it should be.
Then, I outlined Approach #2. Long story short, within maybe 4 days I had a responsive, mobile-first, public-link-serving, new-editor-rendering version of LK. Oopsie! In this process I discovered a few things:
- There have been huge advances in web development technology in the past couple years, many of which eliminate entire classes of problems.
- These new developments reduce code build and deployment times by 20x or more, which has a dramatic impact on day-to-day progress.
- "Starting from scratch" isn't really starting from scratch: There's a ton of stuff in the "old" LK codebase that's actually pretty good, and was easily moved to the new codebase.
- It's not all-or-nothing: Old LK can cover for New LK while it's developed. New LK will be used to serve shareable, read-only, mobile-first pages, while Old LK will still provide all the editing features. Old LK will be silently retired once New LK reaches feature parity. And yes that means you'll be able to edit on mobile!
Progress on "New LK" is going very fast. My aggressive goal is to get some kind of public linking demo out in the next week or two. I'll start by making one of the example projects "public", so it can be tossed around and used to show LK's potential. After that, it'll be time to deploy some kind of "Anyone with Link can view this page/project" feature, which I know will open up the LK experience for many of you.
So where does the editor fall into all this? The "new and improved" editor is already being used to render "New LK" pages. It will be backported to "Old LK" so that you won't have to wait for the whole suite of changes just to use the new editor.
Anyways, there's a lot going on. It's a little chaotic, but I'm really excited about these changes. Honestly, LK's technical debt has been burning me out a bit, so it's nice to set aside time to clean it up.
It's funny; LK started as a side project that I did on weekends. Now I have within-LK side projects that I do on weekends—When we get tired of grinding away at "mainline" LK features, sometimes Justin and I will take a Sunday afternoon to prototype future things that excite us. It's why we've made a surprising amount of progress on timelines. More to come!
I made a TikTok. 😅 I found a funny D&D-related song I couldn't resist adding a harmony to. (CW: language)
Until next time!