Working on morphlog
Tl,dr: Hey, my name is Benjamin and here I write about the things I made during the last week (or more). This mostly involves coding projects in my spare time. Today, let’s talk about morphlog.
But first we’ll set the scene. I’m a software developer from Germany working at a company developing different products and doing consulting in the SAP ecosystem. Like many other people I started some side projects during my free time and, let’s face it, often didn’t finish. That’s ok, I use them mostly to learn new things, relax and do what I want, not to build the next big thing. Still, it would be nice to finish more of them. So I decided to write publically, right here, about what I do. See it as a public commitment and incentive to me.
It’s still undecided how often I’m going to write, but let’s hope for the best. Also, some of the future posts could be in a bullet point form.
The current project is morphlog, an app for helping developers write changelogs outside of the usual version control workflow. The plan is to enable dev teams to write down the changes to their product, eventually link them to some issues and create releases.
Choosen tech stack is React for the frontend and GraphQL powered by Prisma as the backend. You see, the current hip stack, this is a developers’ side project dor sure! Well, I actually really like it for now.
I started the project in January 2018, quickly building out the core features. Until now, one can signin, create projects and write the changes. We also locked down the GraphQL API with a pretty straightforward permission pattern. After some trial and error, I settled for Semantic UI React as the ui layer. This could change any time. There still are missing features I have in mind, like changing the Changes, linking them to GitHub issues and managing teams.
During the last weeks I worked mostly on two things. Firstly, I brought up test coverage on the server and the client side. Yes, I did start untested, but have reached a pretty good level of testing now. Secondly, since the client side data management layer of choice, Apollo, released a new version last week, this clearly had to be updated.
Those who follow that project know, that they introduced a new and hot render props API. Although that is completly optional, I changed my components over this weekend. Doing that started out a little confusing (there are a lot of brackets of all kind), but once you got the hang of it… I found it to be a pretty nice pattern to not wrap the whole component in a render prop, instead only the needed part. For example, you can only wrap your button in a Mutation component and still get your mutation function to call.
That’s it for know, feel free to pull down morphlog, take a look and let me know your thoughts. About the project or about this series!