Nach is coming to iPhone and Android! Join the waiting list for the mobile app beta.

Dev Diary #1 - First Look at Nach for iPhone and Android

Published 16 May 2017 | Category: Dev Diary

I'm very excited to announce that, this summer, Nach will be getting native mobile apps for iPhone and Android.

What's also new, is that I'll be sharing the progress of how the app develops in a regular "development diary" series on this blog. This is the most exciting period for Nach's development since the web app first launched, so I'm looking forward to sharing in-depth looks at the new features (which will eventually be making their way into the web app -- more on this later), ideas, and challenges faced during the journey to take Nach to the next level.

Why now? Primarily because technology has finally caught up enough to make this multi-platform approach feasible, meaning I can now start making progress through my long list of ideas to improve the platform as a whole. Don't get me wrong though - this is still a very significant undertaking, so I figure it will benefit from a level of transparency, where those who are interested can see how things develop, and provide their feedback, to help shape the final product.

Much more to come, but let's start with some headline features:

  • The apps will be fully native. Thanks to the power of React Native, I can leverage all the power of native iOS and Android APIs, focusing on building something that feels great to use, and is far beyond what can be achieved by wrapping a website.
  • Offline-first is here! All your data will be accessible offline, and changes you make will seamlessly sync when a connection is available.
  • The apps are being built from the ground up for mobile-first experience. It's always been a limitation of the web-app that, due to a primary focus on desktop users, some functionality doesn't transfer that well down to mobile. Designing from scratch for mobile gives a great opportunity to rethink how visuals and interactions can be better designed for mobile devices.
  • This will be a completely free addition to the web app for existing subscribers.

Sounds exciting? I'm aiming to get a beta / early access version going as soon as I can, but there's still some more work needed to get to that point, so stay tuned.

I'll use the rest of this post to explain a little more the history of Nach, and why after just being a web app for so long, mobile apps are making an appearance (warning: heavy on the technical details).

A technical history of Nach

For those who aren't aware, Nach is a one-man project. Back in 2013, I had a burning desire for a decent system to store and track my goals in, but couldn't find any suitable software, so decided to build my own. See a very early UI mockup below:

Back then, Backbone was my Javascript library of choice for implementing this. I'd built a couple of other web apps with it in the past, and I liked how it didn't try to do too much.

This worked nicely. I was able to execute on my initial vision very fast, launching the web app in a matter of months, and continuing to polish and add the occasional feature.

However, this is where I hit a bit of a roadblock. The "sitting at a desktop with a stable Internet connection" use case was covered, but the very obvious next step at this point was a mobile app, to allow for the more spontaneous access to and manipulation of goals while on the move.

The first thing I looked into was the likes of PhoneGap. Essentially taking the existing web app, wrapping it in a WebView (the component iOS/Android use to display webpages), and packaging that as a native app. But in the end, after much experimentation, I just couldn't bring myself to do this. The user experience just felt cheap, and ultimately I felt it wouldn't live up to the type of experience I'd like to be able to offer.

The next thing to look into was native Android development. I delved very deep into this in 2015/2016, even taking on a freelance project to produce a complete app. I prototyped quite a bit at building something for Nach with this. But the main issue I ran into here was: Java and the Android APIs are extremely verbose, and have almost nothing in common with the technologies and techniques used in the web app.

Add into the mix that naturally I'd need to follow the Android app with iOS, which again has its own completely different language (ObjC/Swift) and libraries, and it becomes clear that this approach isn't sustainable for a single developer. Even with a team, you end up with 3 codebases, where every change needs to be mirrored in 3 places - it just isn't sustainable and removes any kind of lean maneuverability.

Enter React. I'd been hearing about this for a while, and was finally convinced enough to take this seriously summer last year. I dived in at the deep end, getting a couple of projects under my belt. This was just as React Native was entering real stability, which was the final piece in the puzzle.

What makes React Native great is that it allows you to use the same techniques and languages used in web programming, but in a way which interfaces directly with the native APIs and components of the target platform.

It's not the right tool for every job, but for Nach's current stage, it's perfect. It makes someone like me 3x more productive, able to start prototyping features and retaining the ability to stay lean and change things up across multiple platforms. It's relieved me from the digital stalemate of wanting to create a great cross-platform experience, without the codebase becoming unmanageable.

So, that's where we are now. I'm looking forward to sharing over the coming weeks what I've been working on, and the progress I make. Regular updates to be posted on this blog, linked to on Facebook and Twitter, and occasional summaries to come on the email newsletter.

Finally, a big thank you to those who are subscribed to Nach! The support is extremely encouraging, and ultimately one of my biggest motivators is providing you guys with a great product. I'm always keen on hearing feedback too, so if you have any thoughts, feel free to get in touch.

—James


Review Your Year with the Calendar Chart

Published 27 Dec 2016 | Category: New Features

To wrap up 2016, we've just added a new graph to Nach. See at a glance a heatmap of your entire productivity history, from the day you joined Nach, using the new Year Calendar, accessible from the Graphs page.

Each square's colour intensity is driven by the number of steps completed and positive habits reinforced on a given day, and contains a blue corner if any goals were completed on that day (which you can see listed by hovering over).

The end of the year is a great time to take a step back and review everything at a high level — where did you achieve success, and where is attention needed? Several of the tools on Nach can be extremely helpful in this process. The Completed Goals graph gives a nice reminder of the big things you achieved throughout the year; the new Year Calendar gives a more in-depth view, letting you see goals in the context of your entire productivity, and discover patters across the year (or multiple years!); and finally the History section lets you really drill down to any point in the past, and see what tasks you were completing on a daily basis, and any notes that you left behind.

This kind of insight can be invaluable when it comes to making a new plan for the coming year. Now is a great time to give yourself an honest evaluation, take these learnings on board, and tidy up your Goal Map — taking decisive action on goals that have been long-neglected, and mapping out new ambitions and goals into solid plans which you can start actioning in 2017.


No Goals?

Published 18 Mar 2016 | Category: Theory

I've been asked a few times to share my opinion on the 'no goals' way of life, examples of which can be found in the linked Zen Habits blog articles. The gist of the argument is as follows: setting goals leads to an insatiable obsession with out-of-reach goals, making it difficult to live in the moment, and ultimately resulting in perpetual stress and unhappiness.

Obviously this flies right in the face of a goal-setting app such as Nach, so I'll briefly outline here my thoughts on the matter — why I believe this approach is a bit of an overblown knee-jerk reaction, and there's a better balance to be found somewhere in the middle.

To give this argument the credit it deserves, yes, it's fair to say that focusing too heavily on goals can have negative repercussions. I think these can come in two forms. Firstly, being too militantly focused on the end-goal, even if the current plan of action to get there is proving unenjoyable, and/or not leading to real progress. Of course this is bound to lead to day-to-day stress, an experience that is on the whole negative, and likely destined to fail.

The second consequence of over obsession — perhaps more insidious, as its negative effects only really come to light once a goal has finally been achieved — comes about when you allow yourself to be defined by your goals. This has an unforgiving habit of leading to existential feelings of emptiness and despair, whether the goals are successfully achieved or not.

The first effect — feeling unhappy about the way you're currently living life, but expecting that the lifestyle will lead to the completion of a goal that will result in salvation (typical examples including getting rich or becoming famous) — is a common trap to fall into. If you're feeling unfulfilled and unhappy about your life as it is, I typically don't believe that aiming for some far-future goal is a pragmatic way of addressing that. It's probably more appropriate to switch focus away from the imagined future, and instead examine the immediately explorable facets of day-to-day life, thinking about what aspects of the process are making it unenjoyable.

As long as it is reflected on openly and adjusted as appropriate, the process of working towards a goal can be a greatly enjoyable way to spend time in itself, regardless of the final outcome. A mantra that Steve Jobs was fond of:

"The journey is the reward"

This strategy of being fairly adaptable with the process leading towards a goal is something that Nach is designed around. Unlike typical corporate project management software, we often advise users against going into meticulous detail by building entire plans for their goals, and instead to be flexible and open minded, just planning a few steps ahead. That way if the first idea of how to tackle the goal is, for example, proving unenjoyable, it's quick and easy to delete or adjust the steps and try something new instead.

On a higher level than this, Nach also makes it easy for you to follow your motivation and passions, with extremely straightforward reprioritisation of multiple goals. Are you starting to lose interest in a goal and becoming indecisive over whether it's something you want to pursue further, thwarting your progress? Simply pause it, and prioritise whatever is now catching your interest to the top of your Goal Map.

Nach makes a big effort to be lightweight, and non-imposing. It uses technology to give a boost to how effectively you'd be able to make plans of action that are too complex to manage in your head or with a pen and paper. It can be thought of an extension of your mind, that allows you to go about non-trivial sets of tasks in a way that overcomes the limitations of human memory and focus.

Ultimately, there are many ways to create a life filled with joy and excitement, and I'm not here to dismiss any of them. But I believe that working towards goals is an equally valid one — and it has the merits that it's one of the most effective paths towards leaving your mark on the world, by helping you make well planned and structured progress.

For someone who has recognised that they had become too obsessive over their goals, such as the vocal advocates of these 'no goals' lifestyles, breaking out of the negative habits that have built up around them via a drastic change in lifestyle makes a lot of sense. But I think that demonising goals for the wider population is unnecessary.

The second consequence, mentioned earlier, of become too obsessive over goals — defining yourself by your goals — is a more tricky topic to address. For now, I'll leave this quote from Eckhart Tolle, which provides an interesting, somewhat spiritual, perspective on the subject:

"Yet on a deeper level you are already complete, and when you realize that, there is a playful, joyous energy behind what you do. Being free of psychological time, you no longer pursue your goals with grim determination, driven by fear, anger, discontent, or the need to become someone. Nor will you remain inactive through fear of failure, which to the ego is loss of self. When your deeper sense of self is derived from Being, when you are free of "becoming" as a psychological need, neither your happiness nor your sense of self depends on the outcome, and so there is freedom from fear. You don't seek permanency where it cannot be found: in the world of form, of gain and loss, birth and death. [...] There is nothing wrong with setting goals and striving to achieve things. The mistake lies in using it as a substitute for the feeling of life, for Being."

Calendar Receives an Interactive Overhaul

Published 29 Aug 2015 | Category: New Features

Until this point, the Calendar has simply acted as an alternate way of viewing the steps you manage through the To-Do List and Goal Map. Today, we've rolled out a set of enhancements which make the Calendar fully interactive when used from a desktop or laptop, so that it can be used just as effectively to manage and reorganise your steps and goals.

Firstly, as suggested on our roadmap, steps and goals can now easily be dragged and dropped between different days on the calendar. Having the visual reference of a calendar grid to shuffle things round against can save a lot of time when trying to adjust the due dates of several different items.

The calendar now projects at least one week into the past, and two weeks into the future, of the currently selected month, giving lots of flexibility for juggling the due dates of steps with less need for jumping back and forth between months.

However, if you do find yourself needing to change the due date of a step by several months at a time, you can even drop it into a month on the year selection widget - so you can now reschedule your entire year, without needing to leave the Calendar.

Finally, alongside the various UI tweaks and performance improvements this update also introduces, the familiar Shortcut Menu can now be reached from the Calendar too, by right-clicking on any step or goal.

If you'd like to stay up to date with the latest tweaks and enhancements as they are introduced to the platform, follow us on Twitter.


Next Steps: The Tipping Point Towards Progress

Published 17 Jan 2015 | Category: Theory
If you spend too much time thinking about a thing, you'll never get it done. Make at least one definite move daily towards your goal. – Bruce Lee

When it comes to ambitious life goals, one of the single most important factors in determining whether you'll make progress or not, is how well defined your next step is - the step which you've prioritised towards the top of your list, as the first task you intend to tackle.

Choosing an appropriate next step is primarily about finding the right balance. It needs to be important - preferably the single most important thing that's currently holding you back from getting closer to your goal. If you don't think carefully about this, you could end up falling victim to busywork - even if you are getting lots of tasks done, which have some relation to your goal, unless you take a step back to review the big picture, there's no guarantee they're having a significant impact towards your progress.

On the other hand, they should also be simple enough to be actionable. If you've ended up with a first step which is a huge challenge in itself, it can often lead to procrastination, as the lack of certainty about how to tackle the task turns into an urge to put it off. Any step which is so big and vague that it can't be completed with a few hours of concentrated effort, would likely be better as a sub-goal, where it can be broken down further.

The above isn't to say that it's only the next step that matters - breaking down a large goal into a plan of action is also a highly useful process. But when it comes to making significant progress towards goals, breaking through plateaus, and identifying blockers, picking a good next step to tackle is crucial.

To make this process easier, we've introduced a new supplementary tool to Nach called the Next Step Revealer, which can be found at https://nachapp.com/next.

The page lists all of your top-level goals, and pulls out only the current next step. We'd recommend opening this up side by side with your Goal Map, so that it can be used as a reference while reorganising your goals. This view cuts away all distraction of future plans, so you're able to clearly consider whether your next steps are sufficiently important and actionable. You may find it helpful to carry out this process regularly - perhaps by setting up reviewing your next steps as a weekly repeeating step.

You can also consider whether you're giving these vital steps the attention they deserve, or whether you've allowed yourself to get distracted by tasks of lower priority and importance. Taking time out at the beginning of each day to complete just one important next step is enough to ensure you'll be consistently making real progress.