Creating Jot.zone

Personal project, to create a micro-blogging platform.

Jot.zone screenshot

TL;DR

Intro

This summer, I took a 6-week trip to Europe.

Prior to the trip, I was considering how I would share updates with my friends/family.

I am not an avid user of any existing social media platforms, so I thought… why not make my own?

I took it as an opportunity to dip into the world of native-app development.

What I wanted was: a place (zone) people could go to find my posts (jots), with the option to subscribe to email “digests” of the posts on a daily or weekly basis. So, I decided to make an entire platform where others can do the same.

And here it is: Jot.zone.

(Android and iOS app “beta” access is also available, on request. Email me.)

My own personal “zone” can be found here: tim.jot.zone.

Tech

The frontend is built using React Native, with React Native Web. This allowed me to (somewhat) easily build for Android, iOS, and web, using much shared code.

The backend + database functionality was all built using Google Firebase and associated Google Cloud services.

Reflections

React Native was very handy as an entry-point into native app development, for someone coming from the web world. However, I was surprised to find that the package environment doesn’t seem to be as mature as I expected. There is a lot out there, but doesn’t seem to be many obvious-choice packages for some of the typical things you might want to do.

If I had to do it over again, I think I would have cut out React Native Web, and built the web frontend using a true web-only framework. It turned out that React Native was very restrictive in terms of doing typical web things, so I ultimately ended up having to write a lot of separate web-only code anyway.

Firebase was great. Pretty easy to get started with, and a nice free tier.

Future

To get listed in the Google Play and Apple App store, I will need to write up some policy documentation, and add some privacy-compliance features. As I don’t ever expect to make any money from this project, I’m not sure it is worth the trouble.

I still have a long list of features I would like to add. For example: a more timeline-oriented view, for better scrolling back in time.

However, I think it is in a good spot for right now. I learned a lot working on it, and it served me well as a tool for sharing updates during my travels.