One of the ways ADHD makes my life difficult is that I am easily distracted and quite forgetful. I'll set out to do something, walk into another room and it'll be gone. The picture above is a classic example. I probably wanted to throw that banana peel away, yet something distracted me and it ended up spending the better part of a day on my bedroom door handle. I know that we all do this from time to time. But with me and with most of those with ADHD, it can get comically/tragically out of hand.

Add to that the emotional rollercoaster that fast cycling Bipolar is where the ADHD hyperfocus and thy hypomania combine creating a perfect storm to obsess over an idea or project that will change the world and learn everything there is to possibly ever know and build a prototype or fully functioning version within a matter of weeks working 10-12 hours a day not really sleeping but more resting your body while still planning.

This results in the inevitable crash, where you question your original motivation. How could you even think you had a chance? You've never done anything good in your life. You barely have a GED. You can't even get through a page of text? How do you expect to learn anything? You'll never be a developer.

Fortunately, things are much more under control these days with the help of Lithium, Valdoxan, and Concerta. I'm the stablest I've ever been, and it's led to serious, consistent improvement. I'm never going to be "normal" though and will always have my battles, but they're manageable now.

Now I'm in a place where I can start laying out plans for how to deal with my idiosyncrasies. One of the things that have always annoyed me is that I start hundreds of thousands of projects, get distracted, move on to something else and by the time I come back to the pile of pieces, I don't remember how they fit together, literally or figuratively.

The Solution - GoalBuilder.Space

This little idea has been brewing for quite some time. I want to make a "platform" where a user can create goals. Each goal has an arbitrary number of steps that you can break things down into. For example, I want to learn how to use Strapi.io to create and serve an API.

Then each step has a further explanation of how you intend to complete it (realizing now I should set finish by dates on these). When the step is completed, you can add evidence showing either how you completed it, problems encountered, lessons learned, it's up to you. But it should be something that if someone else looks at the step description and the evidence, they can then verify whether you completed it or not and give feedback as to what might need more work or what was great. The same goes for the goal once all the steps are completed. The complete goal can then be verified and Feedback can be given about it.

That's the basic idea. Currently, I have Strapi up and running on a personal server, my next.js frontend is hosted at Vercel and everything is working great. Now, this is totally a work in progress, but I like the idea of doing this in public. I'll share with you how I got everything up and going.

I originally saw a twitter post about a one-click deploy option with Strapi & Gatsby. If you just want to get a working system up and running to have a look at how everything works, this is an awesome Strapi Gatsby Tutorial. But I'd just finished a big Gatsby Sanity.io project and wanted to try out Next.js.

After about 5 min of searching, I found the tutorial to build the Strapi Gatsby Blog using Next.js from the ground up - Strapi Next.js Tutorial. This tutorial was great! It gave me everything I needed to adapt it to my API. I learned how to create collection types and use Apollo to work with GraphQL, which I found much cleaner and easier to maintain than having the GQL queries in my component/page code. I ended up scrapping the UIKit that is in the tutorial because it was too opinionated for me (I'm still figuring out how this thing needs to look) and I went with CSS modules.

I also wanted to have more of a menu option that would allow for a better mobile experience as well as more space for more goal categories than what the NavBar in the tutorial allowed for. I found a great tutorial on CSS Tricks on how to build one. It's almost perfect, except for the fact that it doesn't automatically close when you click a link. I'm going to give that problem a go next.

Current State

Currently, I have views for goals, categories, individual goals, and goal-steps. The styling isn't totally horrible, but it's not great. That will come later and the menu needs to be fixed.

Next Steps

I think the best plan of attack is going to be to work on the verification system next. Once I get that working securely, I can start thinking about users, profiles, etc...

Well, that's it for now. I'll be working on this thing for a while, so keep checking in to see the changes. I'd love to hear what you think! Give me a shout @RollerDev