Web Development
Your one stop contact - from idea to professional solution!
We produce both large and small, simple and complex web apps according to your needs. From corporate websites and e-commerce solutions to highly interactive single page applications with separate back-end service.
Our development process is designed to deliver a product that meets your expectations without exceeding the budget.
You can read more about our web development process below.
How we work
01. IDEA
- Identifying customer needs
- Documenting requirements
- Preliminary effort estimate
- Signing the contract
A great web app starts with a well-conceived idea or arises from the need to modernize your everyday business. The clearer the vision, the better the outcome. We will gather and organize your wishes to form a comprehensive requirements specification. Documenting your needs will also help eliminate any grey areas.
When your idea is not quite nailed down yet then we can also proceed with agile development process, gradually specifying and adding new functionality. While such approach is more flexible than traditional development methods, it often leads to increase in duration and cost of development. Moreover, with agile methodology it is more challenging to predict time of delivery and the budget required to finish the product.
In order to achieve mutually satisfactory results, it is important to document the terms of reference. We need to specify clearly what functionality will be provided by the app to end users. It is also necessary to agree upon which browsers the app must be usable with, whether it should be multilingual and other properties. Once the requirements are agreed upon, we shall provide an effort estimate and provisional deadline for delivery.
02. DESIGN
- Use interface design
- Use cases and user flows
- Prototyping
Once the desired functionality of the app is decided, it is time to dig into the details of how the website will look like and how its different functions are presented to users. We describe the actions that users are presented with and the contents of the pages that are displayed to them along the way to reach their goals. This will result in website architecture and user flow description.
For customer-oriented websites, esthetic appearance is essential. In order to achieve that, we engage a designer who shall come up with page layouts, color schemes, images and other visual aspects. Normally, different designs are created for different screen sizes – computer, tablet, smartphone.
To better understand the behavior of a complicated application, it may be helpful to develop a prototype. A prototype is an incomplete piece of software that demonstrates the usage of user interface components in the context of specific user workflows. It may be created with a fraction of the effort that would be required to develop complete website.
03. Development and testing
- Development
- Documentation
- Testing
Development takes place behind the scenes according to specifications and workplan. If we discover that some task takes longer than expected, then we will consult you about further steps.
During the development we document the source code and other technical properties of the website. The extent of the documentation depends on the peculiarities of the app.
Our developers are expected to thoroughly test every new feature that they implement. However, to ensure proper functioning of all features in different environments and browsers we engage a specialized quality assurance (QA) team. The scope of functional testing is decided based on the complexity of the website. We also consider the potential impact of any undiscovered errors on your end users or business process.
04. PLANNING
- Creating work plan
- Detailed effort estimates
Software development is often done in increments to provide earlier access to the website and keep you better informed of the progress. Before starting with development, we establish a work plan outlining the functionality that will be implemented and the date when that functionality is delivered.
After the work is completed for the increment, we make the app available to you for evaluation and accept your feedback. Required changes or additions will be planned for following phases.
If you are on a limited budget or have a strict deadline, then all desired functionality may not be attainable. To help you decide what will be implemented and what will not, we can provide you detailed effort estimates separately for each feature. Such analysis will increase the time and effort required to create the work plan.
05. FEEDBACK
- Deployment to test environment
- Review and feedback
The features implemented during an increment will be deployed to a test environment for review and approval.
This gives you the opportunity to verify that the website functions as expected and give us specific instructions for improving the design or functionality. It is usually possible to enrich the testing environment with real-life data, if available, to provide a realistic user experience.
The goal of the evaluation period is to discover any issues or miscommunications as early as possible to avoid costly rework down the line. Make sure you reserve some time for the reviews in your calendar.
06. MAINTENANCE
- Public deployment and configuration
- SEO
- Updates and maintenance
Deploying the website to live server requires greater effort than setting it up in the test environment. In addition to installing the software, the activities include arranging the domain, setting up automated backups of the environment and databases, configuring certificates and other security settings. In case of larger user base, it is also necessary to set up load balancing and other performance related optimizations.
For public websites, we will take care of the SEO (search engine optimization) – we will make the pages visible to search engines and propose a strategy for increasing your online visibility considering your business goals and competitors. Upon request, we can analyze users’ behavior on your website and suggest ways to improve user experience.
After the active development is finished, we shall agree on the conditions of maintenance and the procedures for adding new features to the website.
Rest assured, our development team will be devoted to the success of your business.
Our favorite technologies
LANGUAGES
PHP
PHP is a language specifically designed for building web pages and services. As a relatively cheap solution, it is often used to build simple and less-demanding web sites. The strength of PHP is the abundance of available web template systems, CMS frameworks and e-commerce solutions.
JavaScript / TypeScript
JavaScript is the fundamental language of dynamic web pages, but with the rise of Node.js it has become popular for server-side development as well. TypeScript adds static typing to JavaScript which makes source code of the web site more manageable.
Java
Java is a traditional programming language that is used to develop web services that require higher computational performance. Due to long-term use in servers and to its characteristic features, applications developed using Java are very secure and more predictable in case of failures.
E-COMMERCE
Magento
Magento is a modern cloud eCommerce platform with an open-source ecosystem. Flexible for B2C, B2B, and B2B2C. For large eShops, highly scalable.
WooCommerce
WooCommerce is a free eCommerce plugin that allows you to sell anything, beautifully. Built to integrate seamlessly with WordPress. For small and medium eShops.
PrestaShop
PrestaShop is an efficient and innovative e-commerce solution.
FRAMEWORKS
React
React is one of the most popular front end JavaScript frameworks for developing dynamic web applications. React is flexible and it may even be embedded in existing static web pages. Many 3rd party JavaScript components are available for reuse. Next.js framework that is built on top of React allows to create combined front and back end solutions with support for server side rendering.
Angular
Angular is another front end framework for dynamic web and mobile applications. Angular applications require a separate back end web service, which may be developed using Java or PHP, for example. Different design libraries like Bootstrap and Material can be easily integrated with Angular. Angular provides server side rendering support out of the box with Angular Universal.
Laravel
Laravel is the most frequently used PHP framework in the world. It may be used as full stack framework with built in template system or it may be combined with a front end framework such as Angular. I the latter case, Laravel application will work as the back end.
Node.js + Express
Express is a back end JavaScript framework that sits on top of Node.js runtime environment. It’s best suited for applications that mostly deal with data transfer. The weakness of Express comes from the low computational power of JavaScript.
Others
We also have experience with Spring, ASP.NET Core, Symfony and other frameworks.
Development process in detail
A great web app starts with a well-conceived idea or arises from the need to modernize your everyday business. The clearer the vision, the better the outcome. We will gather and organize your wishes to form a comprehensive requirements specification. Documenting your needs will also help eliminate any grey areas.
When your idea is not quite nailed down yet then we can also proceed with agile development process, gradually specifying and adding new functionality. While such approach is more flexible than traditional development methods, it often leads to increase in duration and cost of development. Moreover, with agile methodology it is more challenging to predict time of delivery and the budget required to finish the product.
In order to achieve mutually satisfactory results, it is important to document the terms of reference. We need to specify clearly what functionality will be provided by the app to end users. It is also necessary to agree upon which browsers the app must be usable with, whether it should be multilingual and other properties. Once the requirements are agreed upon, we shall provide an effort estimate and provisional deadline for delivery.
Once the desired functionality of the app is decided, it is time to dig into the details of how the website will look like and how its different functions are presented to users. We describe the actions that users are presented with and the contents of the pages that are displayed to them along the way to reach their goals. This will result in website architecture and user flow description.
For customer-oriented websites, esthetic appearance is essential. In order to achieve that, we engage a designer who shall come up with page layouts, color schemes, images and other visual aspects. Normally, different designs are created for different screen sizes – computer, tablet, smartphone.
To better understand the behavior of a complicated application, it may be helpful to develop a prototype. A prototype is an incomplete piece of software that demonstrates the usage of user interface components in the context of specific user workflows. It may be created with a fraction of the effort that would be required to develop complete website.
Kliendile suunatud rakenduse puhul on kindlasti oluline ka kasutajaliidese esteetiline välimus. Parima tulemuse saavutamiseks kaasame disaineri, kes pakub välja lehe paigutused, värvilahendused, pildid ja muud visuaalsed omadused. Unustada ei tohi, et erinevate ekraanisuurustega seadmetele võib vaja minna erinevaid kujundusi.
Keerulisemate rakenduste puhul võib kasutajakogemuse paremaks mõistmiseks arendada proovirakenduse ehk prototüübi. See on kiiresti valmiv, lõpuni kujundamata ja vähendatud funktsioonidega rakendus, mis demonstreerib erinevate kasutajaliidese komponentide kasutatavust ning sobivust konkreetsete kasutaja töövoogude kontekstis.
Software development is often done in increments to provide earlier access to the website and keep you better informed of the progress. Before starting with development, we establish a work plan outlining the functionality that will be implemented and the date when that functionality is delivered. After the work is completed for the increment, we make the app available to you for evaluation and accept your feedback. Required changes or additions will be planned for following phases.
If you are on a limited budget or have a strict deadline, then all desired functionality may not be attainable. To help you decide what will be implemented and what will not, we can provide you detailed effort estimates separately for each feature. Such analysis will increase the time and effort required to create the work plan.
Mõnikord paneb piiratud eelarve või range tähtaeg paika selle, milliseid funktsioone on võimalik arendada ja millised jäävad paremaid aegu ootama. Sel juhul on enne tööplaani koostamist vaja täpseid töömahu ja aja hinnanguid iga üksiku funktsiooni kohta eraldi. Selle tarbeks vajalik analüüs muudab plaanide koostamise paraku töömahukamaks.
Development takes place behind the scenes according to specifications and workplan. If we discover that some task takes longer than expected, then we will consult you about further steps. During the development we document the source code and other technical properties of the website. The extent of the documentation depends on the peculiarities of the app.
Our developers are expected to thoroughly test every new feature that they implement. However, to ensure proper functioning of all features in different environments and browsers we engage a specialized quality assurance (QA) team. The scope of functional testing is decided based on the complexity of the website. We also consider the potential impact of any undiscovered errors on your end users or business process.
Nõuame oma arendajatelt iga lisatud funktsiooni põhjalikku testimist. Selleks aga, et peale muudatusi töötaks kõik rakenduse funktsioonid ja seda erinevates keskkondades ning erinevate brauseritega, kasutame eraldi testimeeskonda. Funktsionaalse testimise ulatuse otsustame vastavalt rakenduse keerukusele ning hindame võimalike testimise käigus avastamata jäänud vigade mõju sinu klientidele või äriprotsessile.
The features implemented during an increment will be deployed to a test environment for review and approval. This gives you the opportunity to verify that the website functions as expected and give us specific instructions for improving the design or functionality. It is usually possible to enrich the testing environment with real-life data, if available, to provide a realistic user experience.
The goal of the evaluation period is to discover any issues or miscommunications as early as possible to avoid costly rework down the line. Make sure you reserve some time for the reviews in your calendar.
Deploying the website to live server requires greater effort than setting it up in the test environment. In addition to installing the software, the activities include arranging the domain, setting up automated backups of the environment and databases, configuring certificates and other security settings. In case of larger user base, it is also necessary to set up load balancing and other performance related optimizations.
For public websites, we will take care of the SEO (search engine optimization) – we will make the pages visible to search engines and propose a strategy for increasing your online visibility considering your business goals and competitors. Upon request, we can analyze users’ behavior on your website and suggest ways to improve user experience.
After the active development is finished, we shall agree on the conditions of maintenance and the procedures for adding new features to the website.
