Case study

Serpotrack

Web application development

In this case study I will take you through the development of Serpotrack and the associated challenges, solutions, and positive outcomes.

Serpotrack is a tool for online marketers & SEO specialists to monitor website positions in Google search results (SERP).

Serpotrack

Type

  • Web application
  • SaaS

Role

  • Owner
  • Software architect
  • Software developer
  • Maintenance
  • CI/CD

Timeline

  • 2022 - Current

Client

  • Own project

Challenges and goals

This project started on my own initiative. For my own professional and hobby projects, I often do the SEO myself (in some cases I do use professional online marketers).

One part of SEO is monitoring my website positions in Google search results. This allows me to see which pages are ranking well and which ones could be better — the higher your position in search results, the better. This is a very common practice in the SEO world.

There are also numerous SERP rank trackers in circulation. However, for hobby or small-scale use, these types of tools are relatively expensive. That is why I started this project. This way I could build an affordable tool with the features I needed. Initially it was built for my own use, but now everyone can register.

Serpotrack was initially developed for our own use.
Serpotrack was initially developed for our own use.

Architecture

Based on my initial requirements I developed the architecture. Although the project started with the minimum requirements to go live as soon as possible, I developed it with the idea that it will be expanded.

In the diagram below you can see at a fairly abstract level how the whole thing fits together. You can see which components there are, internal and external, and how they work together.

Various (abstract) components within the Serpotrack system & external systems that are linked.
Various (abstract) components within the Serpotrack system & external systems that are linked.

Techniques

As you can see in the architecture diagram above, there is one backend API. It is built with Java Spring Framework. The database is a PostgreSQL database.

The public website is built with Next.js. This is because of the built-in SEO features, as it is important that this site is found organically via search engines.

The user and admin environments are React applications. In all three of these frontend applications I used Typescript and Tailwind CSS.

JavaJava
TypescriptTypescript
Spring FrameworkSpring Framework
Next.jsNext.js
ReactReact
Tailwind CSSTailwind CSS
PostgreSQLPostgreSQL
MavenMaven
JUnitJUnit
Cucumber.jsCucumber.js
ES6 (Javascript)ES6 (Javascript)
NPMNPM
UbuntuUbuntu
Caddy 2Caddy 2
PM2PM2
AuthSMTPAuthSMTP
MollieMollie

Development process

Although this project started as a personal project, I approached it from the start like any other professional project of mine. Using project management tools, such as Jira, I worked on the project iteratively using Scrum.

I have continuously delivered small sub-products and adjusted requirements where necessary. In a number of cases I have asked for feedback from professional online marketers.

Plan
Analyze
Design
Implement
Test
Maintain
Plan
Analyze
Design
Implement
Test
Maintain

Implementation

Although I started with minimal requirements for a quick go-live, I wrote highly maintainable and extensible code.

I always value code quality, regardless of the type of project.

The code for Serpotrack is written in several programming languages.
The code for Serpotrack is written in several programming languages.
Both front-end and back-end tests are automated.
Both front-end and back-end tests are automated.

Testing

In addition to code quality, testability is important. All code is tested automatically.

The backend code is tested using unit and integration tests.

The frontend applications are tested with end-to-end tests. For this I use Cucumber and Selenium.

Continuous development & integration

Since the first release in 2022, a lot has been developed. New features have been added, the application has been rebranded and made public.

After the release of the first version, Serpotrack has undergone an overall rebranding for an improved UX.
After the release of the first version, Serpotrack has undergone an overall rebranding for an improved UX.

Screenshots

Monitoring SERP positions for a user's project.
Dashboard overview of a Serpotrack user.
Creating a new project by a user. In the list of dozens of languages, it can be filtered by typing something.
The application is fully responsive. Everything is optimized for mobile.
Overview of a new, empty, Serpotrack project on mobile.
The UX is well thought out, familiar design patterns are applied. For example: instead of adding a keyword 1-by-1, this can be done as a batch operation.
Users can enable 2FA for their account themselves.
Prompt to enter 2FA code during login. Users can enable this themselves.
Overview of blog posts from the admin CMS.
The entire blog is managed from the admin CMS. The self-written blogs are about SEO & Serpotrack updates.
Every blog post is automatically provided with technical SEO features.
The Next.js homepage contains an extensive help center. All data is taken from the admin CMS.

Monitoring SERP positions for a user's project.

Need an experienced software engineer?

I help companies with software solutions (SaaS, automation and more) — from backend to frontend. Feel free to contact me to see how I can contribute to your project.

  • Robust backend: Java/Kotlin, SQL, Spring Framework
  • User-friendly front-end: Next.js, React, Typescript, ES6
  • Rapid development: Continuous integration & deployment, Jenkins
  • Efficient collaboration: Agile, Scrum, Jira, Git, Bitbucket, GitHub
  • Freelance software developer from Arnhem, The Netherlands