👨‍💻I'm building an audio journaling app @lesley_app .

🧵I will be journaling my progress here. I will update daily [A Thread]

♻️Please RT for Visibility
The benefits of journaling have been scientifically demonstrated, yet it has not been adopted by the general public as of yet.

I believe most people do not know how to start journaling and the fear of a blank page also sits in the way of most.
I aim to break this barrier with this app. Use your voice to record unfiltered thoughts, ease your mind, reflect on your personal and professional experiences, and your big life events.
The tech-stack at the moment is pretty simple:

🤖 Back end with @typescript
📱 Mobile app with @FlutterDev
☁️ Cloud infra with Terraform on @awscloud
Today I fixed a couple of sneaky bugs:
🏎️ A race condition between 2 microservices when a user signed up
🎙️ Having to refresh a screen after asking for mic permissions to the user

Also added some visual cues when a user locked an entry or finished a quest.
Today I:
- Fixed a bug where the background music and the recording wouldn't be in sync
- Refactored a giant file in the client app
- Improved the pipeline from submitting a recording to getting the transcript using AWS transcribe

I'll share a diagram of the transcribe pipeline
Pretty rough diagram of the @awscloud infra for getting a recording from the users phone and transcribing it. Making use of lambdas, s3, transcribe and dynamodb.

Of course at the end of the process all the files are deleted for privacy reasons.

Questions and suggestions welcome
Today I migrated some of the modules I use across multiple services to @github packages.
Day 5: I changed the default logo and the app display name; I had a lot of "fun" setting up my apple developer account and started working on the push notifications with @Firebase. I then moved to deploy a few services and setting up the prod database.
Day 6: More work on the notifications. the idea is to set daily reminders to record our thoughts and reflect on the day. I will also send positive words and quotes from time to time.
Day 7: I'm keeping it going with the notifications. Unlike yesterday they're now automated. Additionally, I fixed a bug where errors were not well propagated through services. I also did some work on the front-end just to spice things up a little bit.
Day 8: A lot going on, setting lambdas on localhost and scraping the containers; wip deploying separate prod and dev environments, some more automation of the push notifications and UI improvements (the settings pages are up!)
Day 9: I "finished" (until I find bugs) the notifications system, which allows users to subscribe / unsubscribe to notifications and select the time at which they desire to receive reminders.

A simplified diagram of the architecture to follow.
It's all on @awscloud lambdas with a @MongoDB database to store the user preferences and tokens. the lambdas are triggered either by cron jobs for the daily quotes and reminders or by SQS messages for more personalised notifications.
Day 10: Spent most of the time today talking with potential users (friends) and getting feedback on the design and features I'm working on. On the tech side, I added a membership field to the user, with all the associated attributes and linked it to the app.
Day 11: I re-wrote the landing page. I wasn't happy with it and got inspired by some discussions on @IndieHackers. it's clearer what the app does and I think it's more appealing.
Day 12: We're getting there!! I did copy updates on the landing page. Extracted the infra as code into two separate repos to more easily manage prod and dev environments. Onwards and forward!! I'm expecting to share the landing page in the next couple of days! 🤠
Day 13: I took the day off, resting, meditating and catching up with friends and family. 📴👪💐
Days 14, 15 and 16: I've been going a little slow the past few days. Nearly a month of self isolation starts to kick in. However I got the dev env up and running and both the android and iOS apps running on physical devices hooked to the internet. 💻💯
Day 17: I've been doing testing on physical devices mostly. Identifying bugs and documenting them such that I can fix next! 🐛💻
Days 18 & 19: I tried a couple of designs on the landing page, but ultimately didn't change it as I was not satisfied with the result. I also was taken by a prototype idea I had and couldn't get out of my head. I built it and will share in the upcoming days.
Day 20 and 21: I worked on fixing a number of issues with services talking to each other.

And now it's Bank Holidays, time for a break!
Day 25: I linked the file transcription with the mobile app and fixed a ton of random bugs. I'm getting there!
Day 26: major step forward today. the transcripts after the speech to text conversion of the journal entries are now fully encrypted. I keep my promise of having absolutely everything encrypted on the user's device

also fixed some transition animations and some cost optimisation
Day 27: something I have been putting off for a little while is now working ! push notifications on iOS! it sounds like a small thing but the steps are not straightforward at all.
Day 28: Nothing today, had a pretty bad day.
Days 29-32: Very slow progress. I'm doing less technical work, reading about the benefits of journaling and working on designing routines and quests for the app.

Also super distracted by a "quick" prototype I've been building on the side.
Day 33: 33 days since I started this thread! It's just research today, ready psychology stuff to come up with routines and prompts 💬
You can follow @BorisTane.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: