Open your mind with an open source note taking tool
I started building engram because I wanted a place where I could quickly capture thoughts and have them automatically associated with the current day.
The last few weeks have centered on improving the iOS app. My phone is the primary device I interact with engram, so I’m keen to get this working well.
This release adds a home screen widget to view tasks at a glance, sharing of notes to all other apps, and adds engram to the share sheet so you can instantly save interesting websites, insightful snippets, or funny cat videos when browsing on your phone
https://www.youtube.com/watch?v=5gCFA9vbKAM
A huge shoutout to my dad for helping me put together a promo video. Filming, directing, editing, etc! Without his help this never would have seen the light of day.
I still have some work to do with narrating, but considering this was my first attempt at something like this I’m reasonably happy.
After completing the React Native app, I was determined to complete a native iOS app as well. After playing with CloudKit, I was particularly interested in getting the iOS version to sync across devices without requiring an account or my servers.
My initial CloudKit build worked fine in development, but for some reason would consistently crash in production. After exhausting myself googling for answers, I eventually abandoned CloudKit and decided that if requiring a user account was the easier way to get something out, that was the approach I should take.
I rewrote the app to have a sign up, login, and fetch data from the api. After some hurdles learning how to even perform requests in Swift, I again finally had a functional build that I was happy with. I pulled the trigger and submitted to the App Store.
Unfortunately, they got back to me the next day with a message saying that the app must work without an account. This was difficult news, because that was the version of the app I aborted thinking it would get me on the App Store more quickly.
I set the project aside for a bit and then entered one last time with the most stripped down attempt I could imagine. A completely offline version using CoreData. I ripped out anything network related and swapped in a CoreData backend.
I submitted this version of the app this past weekend, and it was successfully accepted in to the app store on Tuesday.
The Android version of engram landed on the Google Play Store late June. I built it using React Native as an excuse to explore how it worked.
Overall, I was impressed with how familiar it felt and how easy it was to get up and running. I finally incorporated Redux at this point (eventually porting these changes to the PWA version as well).
I was not a huge fan of how much it felt like I was just gluing together giant pieces of code. This becomes even more obvious when you see the final apk size of 50MB.
All that said, it was the perfect place to prototype the app. React Native does a great job of consolidating the main components of a mobile app (e.g. menu, bottom tab navigation, etc).
An additional benefit was the ability to share code. Data fetching and redux code code be identical across the PWA and the React Native app. Something that would make continuing progress on both much more pleasant.
engram can now be easily connected to over 3000 apps through an integration with Zapier. This integration helps you quickly get information into engram (e.g. RSS Feed) or out of engram (e.g. Google Calendar Quick Add Event)
Created my first engram ad campaign together https://ads.reddit.com . Set my lifetime budget to $30 just to test the waters. Somehow, the bill ended up coming out as almost $50.
~13000 impressions
26 clicks
I didn't have a sign up or mailing list at the time, so some may have tried out the app, but I didn't receive much more than that.
Registered engramhq.xyz domain name and created product page hosted by Github Pages.
Took a few screenshots of the app and slowly attempted to craft some copy to sell what the app is. I added Google Analytics to the page in order to eventually see what parts of it people actually use.
Posted url about engram early access to Hacker News: https://news.ycombinator.com/item?id=25706790.
Despite not receiving any upvotes, this post brought ~100 people to this page and led to 7 user signups.
At this point, I am mostly trying to figure out how HackerNews works and whether people would actually click and sign up. These results were promising.
At this point I am still experimenting with what I'm actually building. I reached out to friends and family that I knew would provide me with helpful feedback. Some have been more engaged than others, but the conversations have been instrumental in understanding what is useful and what isn't.
After reviewing all my notes and possibilities, I quickly became overwhelmed with how to actually start. I mocked up the smallest possible MVP that I could start using immediately and decided this is how I would start.
This first version of engram was not much more than a text input, submit button, and list of submitted thoughts. I knew I would be the ony user, so I ditched any form of authentication and slapped together a very basic Node.js api.
I was able to get the whole thing deployed in a matter of hours and spent the next week or so using it to add my thoughts about what worked and what didn't.
First commit: https://github.com/adamjberg/engram/commit/de27c2d7f5a9522de5e7b8fb1984b7f6bfe856a3
I started building engram because I wanted a place where I could quickly capture thoughts and have them automatically associated with the current day.