Skip navigation

How we onboard a charity website

David Murray

David is an experienced developer with a lot of strings to his bow. He has experience in many different technology stacks and server-side systems with knowledge of system maintenance, performance improvements, security hardening, containerisation and CI/CD pipelines. He is passionate about secure, tested and extendable software adhering to common programming rules and practices making sure that clients get the best application/solution possible within their budgets with minimal fuss.

David Murray, Full Stack Developer

Introduction

As a creative agency, we work with a whole range of clients on diverse digital projects. Taking on an existing project like a charity website can often have its own challenges, so we set out a clear onboarding process to ensure we can elevate the project, meet client goals and increase impact.

In this blog, our Developer David Murray takes you through where we start with onboarding a charity website project and how we ensure a streamlined development process that ticks all the boxes.

Image for A man using a laptop to write code

Accessing an existing project repository

Often, we onboard a new website project that has come from another agency. To get started, we need to have access to the existing repository of code and data, so we can bring it under our own management. There are many different ways of doing this, but our preferred way at Studio Republic is through a transfer on GitHub. This software allows code to be easily shared, managed, and developed.

By transferring through GitHub, we are able to maintain all of the project history, including previous actions and development decisions. We can also access all the branches of code and tagging that someone else has done all in one place, giving us everything we need to take the project forward.

Testing

With access to the existing repository, we can look at kicking off some testing. Testing is an essential part of the onboarding process – it allows us to make sure the project is what we expected and pick up any issues. Through testing, we can make our clients aware of what any issues are and the potential impact it can have on the website. This could include dedicating more development time to create any additional features needed for a successful charity website, or alerting to any security issues within existing code.

Environment variables

This goes without saying in modern development, as environment variables are essential in the way applications like websites work. Having detailed environment variables and knowing what they do means we can easily replace them, without impacting larger parts of the codebase. We can also then recreate your website on any hosting system, without the need of being fixed to a single machine or provider.

Image for Photograph of a laptop showing Laravel documentation

Local development

Next, having the project up and running locally will allow us to make headway into establishing how well a system is put together and a baseline of how it works. We can debug the system to better understand key functions of the website, as well as develop and add features more easily. We can also run the testing on a local machine in order to see which tests pass, fail, and workout any necessary solutions.

Local development is dependent on the developer themselves, however having a standardised development environment helps get the project up and running quickly and resolve any issues. I use Valet locally as it provides a lot of key functionality that developers require without installing additional tools or programs, and has the ability to transition between projects quickly.

Development and staging

When onboarding a website, we set up a development or staging site with dummy data that replicates the final product. This enables us to isolate and diagnose issues and set-up new features or enhancements. The staging site also gives clients the opportunity to test and review any changes to see how they work in action before sign-off.

The staging site also allows us to quickly find and fix any issues that arise using errors logs, sentry and various other monitoring tools.

We can then move on to deployment. This is where we take everything we have created, tested and finalised through development and move into production – the most secure environment and final version of the software is published.

Image for Image of four logos: Cloudflare, Sentry, GitHub and Laravel

Database and content access

For long-running projects, we often find a lot of existing content. Sometimes, it can also be helpful to get a content freeze and a clone of the existing database. This can then be imported into the new database provider.

When setting up these clones, we mirror the database it is coming from as much as possible. This prevents any issues with data types acting differently, or even the use of column types that didn’t exist.

DNS Access

Lastly, one of the most important aspects of onboarding a website is having DNS access. This means that when everything is ready to go, we can happily point the domains to our clients’ hosting so the site is running on their infrastructure. Often, when taking on a new project, a lot of configurations are missed off the list and can lead to errors later down the line. Quick access to DNS also enables us to be more responsive and fix any potential issues quickly and effectively.

We use Cloudflare as our preferred DNS router. It has lots of great tools and functionality, so our clients can feel confident and secure knowing that their websites won’t be hit by a DDOS attack, a small outage or any other issues the modern web encounters on a daily basis.

Image for The Rights of Women website displayed on a laptop

Conclusion

Above all else, I’ve found that getting into the code base and digging around, making notes, bookmarks, and to-do lists is the best way to understand what we have onboarded.

Asking questions to previous developers, checking any developer comments, even function names can help us to understand how the system is linked together. Things like this allow us to build out what we need and work out what parts of the system are critical.

Communication with our clients is also key – to help explain processes, why things might take longer at the beginning, and understanding our rationale behind solutions. We believe in the importance of collaboration with our clients, so work to create an environment where this can thrive. This breeds not only fantastic working relationships, but results that meet client goals.

Interested in migrating your website?

Email us

or give us a call: 01962 659123