Regardless of what kind of website you want to develop — a simple landing page or a full-fledged e-commerce website with hundreds of pages — you need to keep in mind that website development is not limited to technical nuances, and also requires work with the business requirements, target audience, design, and overall goals.
Therefore, let’s cover the main points that beginners should remember when developing their first website.
Defining the Goals and Requirements
Without specific business goals in mind, your website will either lack important functionality or technical capabilities to handle a huge amount of data and implemented features.
If you plan to develop a commercial website, then it’s recommended that you set the following requirements:
Functional requirements: they help better understand what part of functionality should be developed (user story, use cases, wireframes)
Non-functional requirements: they explain the overall performance of your product (performance, reliability, scalability, convenience).
Examples of functional and non-functional requirements:
- Authorization using a third-party service (Google)
- The database must process incoming requests up to 0.01 s
- The amount of used RAM should not exceed 256 MB.
- All traffic between browser and server must be encrypted (HTTPS connection)
- Order information should be sent to the user’s email address
Development of Technical Specifications
It is one of the most important stages in website development. The cost of error here is very high, as it can set back or even ruin your development process and you will have to start all over again. Technical specification regulates the technical requirements for the project, its scalability, design, and structure.
The technical specification should also include business requirements, risks, restrictions, project management methodology, and milestones.
A prototype is a mockup or sketch of the product you want to create. It can be something very simple, like hand-drawn sketches (lo-fi prototype) or a high quality fully functional product (hi-fi prototype).
They will help you to build the fundamentals of your UX and experiment with navigation.
Prototypes are developed to:
- test the hypotheses of your functional requirements;
- make changes to the product functionality without any coding;
- explain the logic of interaction between the user and the product;
Here you can use such tools as Figma, Axure, Sketch, and Adobe XD.
You are getting closer to the development part. Layout involves adapting your prototype to all kinds of devices and different browsers. The layout is about the front-end, which is based on HTML — the basis of any website.
If we talk about developer tools, the most commonly used are:
- Perfect Pixel – to test the quality of your layout
A typical web development process will involve the frontend and backend parts. The front-end is responsible for the work on the client side; it displays web pages on different types of devices. The back-end does all the work on the server side: the calculations, work with databases, and the interaction with other services.
Basic Frontend Technologies
The front-end of a website is everything that the user sees on the website and interacts with it.
Basic Backend Technologies
The backend is the server side of a web application and is hidden from the user’s eyes. This includes the servers of your website and certain logic that controls the features and processes of the website.
The development of the server side of applications is related to many programming languages (Java, PHP, Python, C#, C++) and backend frameworks (Django), and web servers (Nginx, Node.js, etc.).
An important part of the backend is databases. They are used to store arrays of data which is retrieved and displayed in the web application when requested by the user. In practice, different databases can be used, the most popular of which are PostgreSQL, MySQL, and MongoDB.
As for the areas of application of different languages, Java is used in medium and large projects. High-performance, scalable and secure applications are created using the Spring Java framework.
Python is used in projects of all sizes; such products as YouTube, Google Search, Instagram, and Spotify are partly written in Python.
Node.js allows building projects where simultaneous processing of a large number of requests is important.
Deployment is the process of configuring your website on the servers. This process can be quite complex and greatly depends on the technology used. During deployment, the following tasks are performed
- The project code is downloaded to the server (usually via cloning Git)
- All the necessary dependencies are installed
- Code compilation
- Code migration. Migrations are SQL scripts that change the database structure
- A new version of the code is launched
The deployment method is highly dependent on the hosting used and even the way the server environment is configured. There are the following types of hosting:
- Shared Hosting — the most cost-effective hosting option for small projects
- VPS/VDS – ideal for websites with high-load network services, as well as for software design, development, and testing.
- Dedicated Server – required to run complex projects that cannot be stored in the same place as other projects
- IaaS (Infrastructure as a Service)
- PaaS (Platform as a Service)
How to Choose a Tech Stack
Usually, complex projects with higher requirements for flexibility, loads, and security are written in native languages. The bigger the project, the more demands on flexibility and loads will be which means it’s easier to write everything from scratch.
But if you are planning to develop a small project with a traffic of 10 thousand users a day, it will be wiser to use CMS solutions. Landing pages, corporate websites, small e-commerce websites, and even news portals can be easily built with the help of CMS.
The most common CMS are:
If CMS is not for you and you are still looking for a solid tech stack to develop a website from scratch, you can take advantage of MEAN (MongoDB, Express.js, Node.js, and Angular.js.) and MERN (MongoDB, ExpressJS, ReactJS, and NodeJS ) tech stacks that became a standard in the web development and will work for most medium-sized products.
Each web project is unique in its own way, the deadlines, resources, and technologies are different for different websites, however, the development stages and their order are the same. This will help to structure the development process and reduce the number of errors in the final stages.
About the author:
Janet Polson is a graduate of George Washington University in International business. She is an unspoken expert in the study of science and philosophy. Janet is also a blogger, author of tech articles and she works as business analyst at Computools.