TL;DR
- App: Jot.zone
- My blog (zone): tim.jot.zone
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.