The planning stage of a project helps our clients answer the question: “What exactly should I build?”
Understanding Project Goals
Questions we ask at the start of each project:
- What is the goal of the project?
- What features are required to reach our project goal?
- What type of users will be using the site?
- What is the look and feel of the brand or product?
CHOOSE A PLATFORM
We live in a magical modern era where many problems have already been solved for us. By utilizing existing platforms and frameworks, we can jumpstart our projects with common functionality, while allowing us to focus on the core features unique to the project.
Early in a project, we have to decide which platforms and frameworks we'll use. Which we use depends on the project and what problems we’re trying to solve. We consider what's best for users, what’s best for the clients, and what tools let us work quickly and effeciently.
The design stage of the project involves considering considering how a user will interact with the website or app and creating interfaces that are usable, intuitive, and intelligent.
Wireframes are essentially sketches. They act as the blueprints for what we’re building. We sketch many designs before implementing a just a few. Everyone on the team, including designers, developers, and clients are encouraged to sketch.
In the context of our projects, the user interface is the individual screens that a user interacts with. It's not enough to be only functional or beautiful, users must know which capabilities exist and be able to anticipate how the website or app is going to react to their actions.
Interaction gives users the ability to change or directly manipulate the canvas. Designing those interactions is what makes our projects come to life. Interactions should provide affordance — animation, for examples, can be used as a powerful metaphor for helping a user understand an interface. Interactions help guide a user from the beginning of a task through its completion.
The development stage of a project is when we get our hands dirty and start writing code that is clean, secure, and future-facing.
Backend development refers to the process of making the frontend work. Backend developers write the code that makes the app "smart." The backend (usually consisting of a server, application, and database) is responsible for storing information, processing user actions, and so on.
Bugs inevitably happen. Despite the tireless efforts to make sure code is perfect, there are a number of ways bugs could slip into a project. Through our comprehensive processes and set of best practices, we do everything we can to maximize efficiency and minimize bugs.
Code reviews ensure our code is up to our standards. Before code goes live, a team member, other than the author, will review the code. If there are issues, they’ll ask the author to fix them.
Automated tests are the process of writing code to test code. These tests mimic a user's actions with the website or app and tests against expected results. This allows developers to test frequently, without the tedious and often inaccurate manual alternative.
Each browser has individual nuances. These differences can commonly lead to bugs. To ensure our code has support across browsers, we test our work in latest versions of Chrome, Safari, Firefox, and Internet Explorer 10+.
Ensuring a site works seamlessly across desktops, laptops, tablets, and mobile devices are essential to a project’s success. To ensure our code works on all devices, we test our work on iOS and Android.
Deployment means making a site or app available to users - with minimum technical overhead.
Domains are the addresses a user types into the browser to access your website. We prefer to use Domainr to see what's available and NameCheap to buy domain names.
Hosting is where your website is stored. It's easy to think of a domain name and hosting as the same. While they are closely connected, they are different things. We prefer to use Heroku for custom apps, Flywheel for Wordpress sites, Netlify for static sites, and Digital Ocean for pretty much everything else.
SSL certificates are needed for any website that is going to process payments on the site. These certificates encrypt the user's credit card info so that hackers can’t steal it.
For collecting payments from users via credit or debit card, we use Stripe. It is a payment gateway and merchant account. We also use it for recurring billing. Charges for Stripe will vary depending on usage. There are no setup fees, monthly fees, or card storage fees.
Once a site is live, we’ll want to track our visitors. More specifically, we probably want to know how many people are visiting, where they are from, how often they are visiting, and what they are doing on the while visiting. We use Segment to track our visitors. Segment isn't an analytics tool itself, but rather integrates into hundreds of analytics tools with an easy to use interface.
Even if a project is over doesn't mean we’re done. We provide ongoing support to the majority of our clients. Support could be anything from new features, design tweaks, or security updates.
We offer support in 2 forms:
Often clients know they will need ongoing work. We also know that this work isnt always consistant. Rather than a fixed monthly, use them or lose them retainer, we offer a more flexible support solution. A flex-fund is a prepaid fund for us to draw from for feature requests. When our clients need support, we'll quote the work and draw from their fund. These funds are then topped by by our clients in incriments of $1,000 whenever they are low.
When a retainer isn't a good fit, we can work on a project basis. This type of support is suited best for a client who has very unpredictable support needs or larger project that are few and far between. Project-based support is subject to a $1,000 invoice minimum.