The Making of Task Tracker Pro

Task Tracker Pro has been in development for Monarch Games since 2021 and continues to the present. The following collection of images and descriptions details its creative process. In some ways, it also serves as a post-mortem. For security reasons, we haven't revealed as many specifics on programming as we have with the art, but many technical aspects are threaded throughout this article.

During most of our career, we worked with Python and C# to create tools for game development. However, after massive experience with Task Tracker Pro, we grew fond of web-based frameworks and aimed to develop future utilities as browser apps. Among the first we felt inspired to revise was Palette Box.


Tools
PHP, MySQL, Bash, JavaScript, HTML, CSS, Photoshop
Development Time
27 Months (about 2.5 years)
Team Size
1
Visit
tasktrackerpro.app >
Next
Part Two: Tasks
More
Part Three: Features
Article Read Time
14 minutes


Splash

Why?

Probably the first question anyone would ask is why? For what reason would any human embark on writing an app for tracking bugs and tasks when there are already so many out there? Seriously!?

For example:

  • Bugzilla
  • Mantis
  • Redmine
  • Trac
  • GitHub
  • Bitbucket
  • DevTrak
  • Fog Bugz
  • Jira
  • Trello
  • Asana
  • Monday
  • ClickUp
  • Wrike
  • Basecamp
  • Todoist
  • Slack
  • And the list goes on and on...

Necessity was the mother of invention—and the father of lies. Back in 2019 after publishing Rise of The Star Kingdom on Mac OS, we needed a way to track bugs and tasks for our game. We loved spreadsheets but at some point needed the power of sorting and filtering to prioritize our work. From working in AAA games, we got used to DevTrak but it wasn't available to the public. As we kept looking for a solution, our options dwindled. Bugzilla, Mantis, and others like it were too cumbersome to set up and bloated with features we didn't need. Other apps online focused on charts, graphs, and centered design around schedules and time management. We needed something simple, easy to use, quick to update, and as close to a bug tracking app as possible. GitHub's wasn't bad but very limiting and constraining; we wanted our lists to be centered around priorities—not time or anything else. That's why we opted to make our own.

Transition

That's how Task Tracker Pro was born. Initially, we kept it private, but once it reached critical mass, the point where we couldn't live without it, we decided to share it with others. Then we spent the next year after, in 2021, developing it further with PHP, MySQL, CSS, and JavaScript. It has been our de facto tool for tracking bugs and tasks ever since.

Transitioning from game development to web apps was daunting. While the processes were similar, execution was entirely different. We had to throw away conventional wisdom and start from scratch. It was a humbling experience.

Process

As for design, the Splash Page went through a lengthy process. These works in progress led to our final version. We liked keeping a visual record of achievements and iterated as we went along. Work-in-progress screenshots were a great way to gauge and witness productivity.

Starting with Photoshop, we laid out our design, and then broke it down into objects before coding in HTML. When building this app for the public, we never wanted to give anyone an excuse not to engage. That's why we did everything we could to polish and perfect the Splash page. We were proud of producing both code and art from scratch. It was a herculean effort.

Argument

In the time it took to develop Task Tracker, we could've probably made more progress on other game projects. One of the major setbacks to our production was being split between game and web development. However, in truth, one complimented the other. Once our app was completed, game development became faster and much easier in a shorter time.

Today we have over 20 projects, all queued up with time frames and design docs available for the day we're ready to go. Realistically, our focus is on the top two or three, at most. Not to sound like an infomercial, but thanks to our app, it's never a worry to pick up where we left off. It's totally worth it.

To see it in action, visit the Splash Page >

Mobile

Porting for mobile was by far one of the biggest challenges. We wanted to keep the same look and feel of the Splash Page as our desktop edition but with a compact layout. Using a one-column table as the core of our mobile design was a great way to keep the page clean, simple, and flexible. It was responsive, ensuring it looked its best on any device.

Responsive: A design that will adjust to the size of the screen it's being viewed on.

Task Tracker Pro Splash

We developed a device guideline through a series of trials. With so many specs and dimensions to test, it took weeks to figure out. Using this template, we established a standard for positioning key elements of the splash page, then adjusted for viewport variations as we went along.

Responsive design is a pain. But with planning, it gets easier. We blueprint four presets: Desktop, Tablet, Mobile Large, and Mobile Small. This approach simplifies both the art and coding implementation. Afterward, we blend transitions for other device resolutions in between.

Our Presets

Note: Viewport width is the most important part of our responsive design.

  • Desktop: 1920 x 1080
  • Tablet: 768 x 1024
  • Mobile Large: 480 x 926
  • Mobile Small: 320 x 568

Design

Task Tracker Pro Splash Task Tracker Pro Splash Task Tracker Pro Splash Task Tracker Pro Splash Task Tracker Pro Splash

In previous pages we discussed Palette Box. For the design document, we used our 9-color swatch to ensure color coordination, style, and consistency. This palette wasn't created until later in production, when it was time to gather feedback. The lack of graphical appeal kept many from wanting to provide feedback, making it clear how getting people to use it would be one of our biggest challenges—a common problem in the early stages of software creation. Therefore, we felt the need to go the extra mile to make it look as good as possible, reducing friction and increasing engagement. This need was a part of how the design guide was born.

We aimed for fonts and colors that were bright and inviting. The logo was designed with simplicity in mind. Aside from converting green to gold, the majority of our color scheme remained unchanged.

MORE INFO

To see the original design, click here.

To see more of the early development process, check out Early Development

The Power of Limits

As volunteers for Saddleback Church, we learned to formulate rules, conventions, shapes, colors, and the do's and dont's of art direction through their graphics ministry. Joining a team of professional designers with diverse backgrounds, tastes, and walks of life made it clear how imperative it was to have everyone adhere to one vision and understand the reasons why. For larger campaigns, consistency was key. As a result, every creation made by the team always felt cohesive. This experience deeply inspired us to make design guide templates the core of our workflow.

Limits are our friend, especially in art. Strong guidelines urge us to think outside the box, leading to new ideas and unconventional approaches that define identity and make it memorable. That's why it's cool to create presets and assemble them in varying ways without worrying about breaking uniformity. For scripting, this approach is particularly helpful because it allows you to achieve the most appealing results with the least amount of code.

Registration

The background strip for our Registration design was an added touch. Every other element, including buttons and links, adhered to our standard for user input, similar to the Login and Password Reset pages. Originally, we kept the design bare, but the layout felt empty. While it was a pain for mobile, one solution for misalignment was to make the background strips disappear after a certain viewport size. Some users won't see them and don't need to; it’s optimal for larger screens.

Insecurity

Arguably one of the toughest parts of web programming is cybersecurity. We spend a great deal of time protecting user data by filtering names, emails, and passwords. It takes a lot of work to ensure a system is stable, free from SQL Injection and able to prevent it. Juggling multiple languages at once can be daunting, it takes time to get accustomed to database engineering. Encryption, hashing, and salting passwords are a key part of that.


SQL Injection:A hacking technique that tricks a database into outputting private data by embedding malicious database commands into user input.

Prevention was better than cure. That's why we did everything we could to parse data as much as possible, to protect against malicious spam and bots. While it was never 100% guaranteed, security was all about layers.

We also avoided cookies and found them unnecessary. Managing sessions became a priority, making us appreciate the importance of hitting the "log out" button on any website whenever possible. It reminded how important it was to ensure safety of personal information.

In truth, hacking is unavoidable. There's no perfect solution. The more mechanisms in place to prevent exploitation by malicious users, the better. The best one can do is deter. That's why we also recommend two-factor authentication whenever possible.

No Passwords

In future apps we intend to get rid of passwords altogether. They're cumbersome, easy to forget, and unnecessary. What we'd like to use is a combination of email, phone number, OS, location, and graphics card info via User Agent data to create a special hash code for for each individual. Combined with two-factor authentication, this could offer a simpler and more effective security measure. A first-time user would be registered but unable to log from anywhere else until they approve access. Otherwise, an email, number, or username should suffice to gain entry. A pin number could be enabled as an option if clients share a computer with someone else.

While hackers might be able to spoof their way in, it should prove more difficult. Decrypting stolen hash code and masking one's browser, OS, and hardware to match would be daunting. This approach allows users to forget about passwords and focus only on their login credentials. We can also set limits to ensure bots aren't able to easily spam the system. While we haven’t tested this concept yet, we’re eager to develop it further in future updates. We’ll see how it goes.

Confirmation

Once registered, users received a confirmation email. But we thought it would be cool to turn it into a membership card, which is why we added this design motif. Depending on the tier, the color of the card would change—a feature that was planned for further implementation in future updates. It was something we were excited to expand on in upcoming releases.

From other screenshots you might have noticed our iteration process. Initially we went for something simple and functional. But once the Splash Page came together, we knew we had to expand on it.

Lesson Learned: Photoshop First

When we started working on Task Tracker, we believed if we iterated on design through coding and browser tweaking, we could achieve the best possible look. At first we were content with our progress. But then we noticed many great-looking websites using beautiful templates. We realized they couldn't have achieved their quality without being put together on a limitless canvas. Since our site was custom-built from the ground up, we couldn't take advantage of pre-made bootstraps or similar frameworks. It had to be done from scratch.

It didn’t have to be Photoshop, but creating pages in an app focused on art without constraints made a night-and-day difference. Coding somehow got in the way. Once we had a design we loved, it was clear the whole was better than the sum of its parts. By prototyping the site in an art program first, especially after drafting all the content, we ended up with a better product, made from modular pieces that came together with ease. Not only did the site look better, but we also achieved the greatest quality with the least amount of code. "Plan first, program later" became our new motto.

While this isn't always the case, there are many occasions where function is all that matters. A lot of iteration occurs during creation of a site, and aesthetics aren't always the priority. At times, it's better to get something out there and improve it later.

We started Task Tracker this way but it was due to difficulty with user feedback we adapted a design-first paradigm. Over time, we evolved our tactics depending on the project, moving toward documenting first, designing in Photoshop second, and coding last. While this philosophy bloated our projects, it allowed us to complete a whole product at once, rather than improvising in bits and pieces that didn’t always fit together. Every endeavor required its own approach.

Email

We also learned to improve our send-mail system. Back at Naughty Dog, we coded something similar using Python's SMTP protocol for Bake Notifications but it was through a private network. This meant we didn't have to worry about various service providers and web hosts.

Unlike Python's robust library, PHP's lackluster offerings meant we didn’t have an easy-to-use solution. We had to find one among third-party projects, import, and integrate into our system. Writing our own from scratch would have been too time-consuming. For something as simple as sending an email, there was a lot of toil involved. In addition, with Task Tracker, we had to consider formatting for Gmail, Hotmail, and other commercial services, as well as connect our system to a mail server so users could receive updates for reset passwords without having them ending up in junk or trash folders.

Spamming Planning

The importance of email security was underscored during this experience. SPF, DKIM, and DMARC protocols helped ensure our emails were delivered and not marked as spam. It took some time to guarantee newsletters always delivered.

Styling email art to make sure Gmail would accept them was tricky, as they have some of the strictest policies for STMP exchanges. All other providers worked out well, despite some hassles. It was reassuring to have an affirmative confirmation page after emails were sent. User addresses were highlighted in gold to make them extra visible in case of a typo.

For more info, check out our Newsletter section

Reset

Creating a robust password reset system wasn’t as straightforward as following a web tutorial. We explored sites like Gmail, Chase, CrunchyRoll, and others in order to remember how they worked. Some were trickier than others but once we got their notifications, it was a matter of reverse-engineering their approach, replicating it, and then adding improvements on top.

We followed a majority of standard conventions and security protocols behind the scenes. It was a pleasant surprise to see our results align closely with industry standards. While no security is perfect, our custom code prevented bugs and mishaps.

Goodbye

It's pesky when canceling subscriptions or closing accounts, many apps make it difficult, if not impossible. For Task Tracker we aim to keep it simple. We hope by providing a smooth and positive experience when closing an account in less than three steps, users will consider returning in the future. At the very least, we want to avoid leaving a bad impression. Design-wise we expand on the same style as our Registration Page and feel it's a great opportunity to solicit feedback as well as bid a pleasant farewell.

Contact

It was also important to have a contact page for anyone interested in the Enterprise edition. However, we expanded it further to serve multiple purposes. By adding a dropdown menu, users can select from other inquiry types: general, technical, and personal.

We updated the Access Email and Newsletter protocols to automate responses from queries. This allowed us to quickly identify the nature of each message and respond accordingly. While there was room for improvement, it worked well across the board and ensured delivery to the appropriate inbox.

Access

Login

Arguably, we considered the login page to be the most important on our site, second only to the home page. Making sure it was secure—able to avoid bots, spam, and unauthorized access—was a top priority. However, we later realized it also needed to be pretty. What began as a straightforward template evolved into an opportunity to enhance user experience. Surprisingly, a lot of work went into what seemed like a simple page.

Managing session data required significant trial and error to guarantee smooth entry and automatic closure if users forgot to log out. We also ran into an issue when they hit the back button to re-enter the page, which wasn't supposed to happen. Cleaning up data and ensuring the login page worked well across all devices and browsers was a challenge, but in the end, it all worked out.

Features
  • Hidden input display (user-requested feature)
  • Password reset link
  • Registration link
  • User feedback notification for incorrect passwords

Logo Design

The logo went through several weeks of iteration before we settled on the final design. We tried free AI-generated logo services to create different drafts, but eventually, the idea fell short. Realizing there was a limit to variety and complexity one can get from such systems, ultimately, this process helped spark our creativity. Even though the final design required a more hands-on approach, it at least provided us with inspiration!

Task Tracker Pro Login

Eventually, we settled on a hybrid between our own design and one of the AI-generated options. From all our choices, the hexagon stood out most, resembling a cube and inspiring the idea of using it as a 3D checkbox. The serif font and clipboard were also derived from this design. Creating a checkmark that overlapped the clipboard took some work in Photoshop, especially since it had to be vectorized, but it was worth the effort.

Newsletter

Fraudulent emails abound. That's why paying extra attention to detail when generating templates is as important as printing a dollar bill. Security officials often study the intricacies of an authentic fiat note for weeks, if not months, to ensure they can distinguish it from a fake. As a result, they detect counterfeits with frightening accuracy.

ART IS A SECURITY FEATURE TOO

Going the extra mile to ensure consistent styling, color, font, and layout became not just a hallmark of our design, but also a security feature. Shamefully, the current version followed our legacy style instead of the style guide we created. While it worked, updating it was added to our to-do list.

After this experience, it surprised us how obvious fake emails were, but also by the mediocre to poor quality of legitimate ones from large corporations. It was risky not to have a well-designed layout, as poorly designed ones could be easily spoofed, tricking users into giving away their personal information. According to the FBI's 2023 report, phishing still made up 22% of cyber attacks, making it the number one complaint on their list of all cyber crimes.

More Info