Developing an app for ephemeral writing as the capstone project for neuefische web development bootcamp
18 outputs


add bookmark

Today I finally merged the animations branch into master after rolling in a lot of unrelated changes and fixes. I'm very happy with how it now looks and feels and runs under the hood.
Play with it:

add bookmark

Today, I mostly prepared some more cleaning up by watching code reviews of other people's projects by our coach. Ready to dive in again tomorrow.

add bookmark

Another biggie!

I've reorganized the code structure, cleaned up the code, added animations, added dates to the logs, and fixed some issues with Git.

Major functionalities added: sessions, logs

Finally this mega user story can be laid to rest. Only took several days plus an all-nighter…

There's too much here to list, but as a summary:
- session tracking
- session logs
- prompt logs
- note viewing

The pull request is here:

add bookmark

Today's update brings together 4 days of progress:
- new home screen
- new note log screen
- new note editor
- ids out of hashed note content
- new shuffle screen
- some cosmetic changes
Enjoying the process :)

It feels like an app now

Alright, today is going to have to make up for yesterday's missed log, and I believe it does.
I managed to implement session notes such that after each writing session the user can write and save a note to localStorage. This is accomplished as a continuous autosave rather than through a connection to a submit or save button (see code in the video).
It took me quite a while to properly set this up and actually understand what I was doing to a level satisfactory for me. Instrumental in that process were Pim Elshoff ( and Viktor Futo (, both of which joined me for a pair programming session each. Thanks guys!
GitHub PR:
User Story:

add bookmark

Every session now starts with a random prompt. The user has the option to shuffle for a new prompt or to start the session with the current prompt.
My favorite prompts so far are "You and everyone you love will die", "A nuke goes off in 5 minutes", and "You could leave life right now" (#stoicism).
You can check out the full list here:
If you have any prompts you'd like me to include in the official™️ list, comment here or reach out!

User story 10: Prompts

add bookmark

I made good progress today:
- took two hours to write, draw, and arrange the user stories for this week (
- presented the app in public review
- replaced a janky layout with an ordered and named grid
- added a new shuffle button which I have yet to connect up to the state machine so it can trigger a reload of the prompt (HELP???)

Tomorrow I'll try and finish the button and start on session notes.

add bookmark

I didn't upload yesterday although I did work on things – I just forgot.
Since my last output I implement what I call 'prompts'. Currently I have a JSON file with 10 pre-written prompts, next are user-created ones.
I've also changed the styling of the app a bit (#neumorphism), refactored a bit, and started to put more strings into variables I export from either utils.js or colors.js.

add bookmark

I spent the morning and most of the afternoon installing Cypress, writing some simple tests, and simplifying the existing code.
Tests all pass, the PR is merged, and now it's on to more features.
For reasons I won't go into here, I have a fire burning in my belly –– let's see what it forges… 🔥

add bookmark

God, how I love xstate!
Jumped into the topic for the first time today and with a bit of help from various people in my network (h/t Viktor Futo, Lawrence Wang, David K, @lisovskyvlad, and @Jayphen) it worked out quite nicely.
Pull request:
Twitter thread #1:
Twitter thread #2:
Facebook post:

add bookmark

User story 8: Welcome screen
Today, after plenty of struggle with Git and a pesky error, I succeeded in getting a (basic) intro screen up. I had even experimented with a typewriter-style animation of the intro text, but that proved too cumbersome. I'll try and do another feature today.

add bookmark

Today I did nothing for the project other than think and write some more user stories. But at least you get to see the outcome of yesterday's session in the video above. :)

add bookmark

Today I implemented a feature in about 30 minutes and spent the rest of the polishing it and organizing code reviews with experienced programmers from my network.

Also, a guy on Twitter liked my project and we jumped on an impromptu call where I showed him the app and we hashed out some ideas. I've attached a screenshots of the notes I took in lieu of a video of the app, because trying to upload the video results in a weird error.

add bookmark

Today, I finally got someone to review my code. Based on her review, I cleaned up the codebase and eliminated some superfluous files. I also experimented with testing my code with jest, but ultimately decided to leave that subject for next week. In addition, I added some more user stories to my backlog.
Merged feature branch:

First working screen

I finally managed to get the very basic version of a meditation-by-writing screen ready for use that also meets enough of my aesthetic minimum requirements (see above).
Tests still fail, although that's more to do with not yet knowing how to write them well. Until I work that out, I can't call this first user story complete.
Loving the process though: alternating between attempting to solve a problem myself and pulling in support from other bootcamp attendees and my internet friends. I think this'll stay fun for a long time to come, at least that's what it feels like.

add bookmark

Today I wrestled with the first screen, trying out different ways of getting a stream of text as input from the user to roll off the left side of the screen. I haven't quite succeeded yet.

I'm wondering specifically about whether to use the html <canvas> or just a text <input>. The first is more likely to be easier to add animation to later on, but it requires a different way of thinking. The second seems easier but also a lot less flexible and powerful, and I can't work out how to have the caret stay centered on the screen while typing.

I'm liking how I can get good feedback from friends and my network on these issues on Facebook and Twitter. Looking forward to the first comment on here…

add bookmark

Busy first official day:

- created initial and potential screens (see pic)
- set up the GitHub project (
- wrote the first issues in the App Dev project (
- researched and familiarized myself with HTML canvas, which I'll be needing for the writing experience
- discussed the project with head coach Jerry, my dad, and a couple of friends
- expanded the original concept to a "Thinking, Fast and Slow" frame, including a second writing mode based on writing prompts with potential for social features (e.g. sending prompts or prompt sequences to friends, running chains of prompted writing)

thanks :)
pesky errors is half of coding, in a nut...
Hahaha, that's awesome you like it here!...
Major functionalities added: sessions, l...
It feels like an app now
First working screen
bierlingm capstone-project