Let’s Build A Web App! Week 26 of my 30 week web dev journey

Rona Chong
4 min readJan 29, 2018

--

In which I finish wrapping all my React dom renders with Aphrodite’s renderStatic and research data persistence with Docker Swarm.

Previous posts in this series:

(Might have lost proper count here)

Now let’s get back to my weekly update on what I’ve been up to!

What did I set out to do?

I’ve been working on deploying my app for a few weeks now, so my goal for this week was (again) to finish with that and restart my work on the reader module of moshimoji.xyz.

What did I get done?

As I mentioned above, I finally managed to get my Aphrodite styles to work even on the server side (wrapping all my React dom renders with Aphrodite’s renderStatic) and I researched how to manage data persistence with Docker Swarm (another one of those issues I’ve been vaguely aware of but not ready to tackle till now). My goal for now is to go with appears to me to be the simplest solution, which is to use Amazon RDS.

I also made a small fix for my url configurations and spent a bit of time fixing my git history in terms of getting rid of superfluous commits from when I had one monorepo instead of two separate repos for frontend and backend. (I’d thought I’d done this a couple times but turns out I never use git filter branch properly).

Last week I wrote that I felt close to finishing my deployment journey for moshimoji, and now that I’ve got my styling resolved, I’m pretty certain that’s true (the response when hitting my stage endpoint now is visually all there/the same as the response locally, except for parts dealing with data since I still haven’t gotten my stage/prod db setup together).

What didn’t I get done?

On the other hand, it’s long been my goal to be DONE with deployment and move onto recontinuing development on the reader module, so I am a little disappointed that I didn’t set up my prod/stage db this week. To re-iterate, here’s what I haven’t achieved relative to my big picture goals:

  • Finish deploying my app on a stage and prod cloud, respectively”
  • “Restart work on the reader module of moshimoji.xyz”

What went well?

  • Learning by asking a peer nearby on something they do more than me (moving commits around and squashing/fixing up with git rebases). Yeah, you can learn from reading git documentation, but sometimes it’s a lot faster to see someone do it in action.
  • A solution working according to my tentative but effortful understanding of modules used in my codebase (this is in regards to how the Airbnb withStyles library implements Aphrodite — making calls to resolve without any side effects, so that I might as well think of it as if I used Aphrodite on my own; and also what Aphrodite’s renderStatic method does).
  • Being able to reason through and eventually identify where an error was arising, even though there were a couple red herrings that resulted in the wrong assumption at first. (It did take a long time though!)
  • Making sure to look up what other people tried to do for my specific setup (database solution for a Docker swarm) and identify the most common approaches, rather than just thinking through it myself (which has been my automatic approach a couple times, but I’ve learned!).

What was difficult?

I’m going to pick out one thing this week, which is something I mention on and off: pushing myself to work more. Maybe if I’d worked a complete work week, there’d be other things that stuck out to me as issues to improve on, but for the time I did work, I felt that work went well and I made decent progress. But this was another incomplete week of work, with only 2 full days of work (on other days, I got scattered between other commitments or simply being off edge).

What would I do differently next time?

I‘ll be approaching the next week with the intention to wake up at 6 everyday so I can spend a fuller portion of the day on my project, even if I do have to break it up once or twice by outside commitments. On the latter point, hopefully I protect my work schedule from 9 am to 5 pm, and choose to schedule other things outside of that timeframe if possible.

One cool thing I learned about

  • git rebase -i: pickup and squash
  • git reflog
  • git stash — list

Misc links for your browsing pleasure:

--

--