menu

Salient is a software development team that specializes in web technologies and applications, as well as database management. We also develop industrial applications for PC and mobile devices.

We function as an external team and Software Factory for graphic design studios, advertising agencies and all kinds of companies and institutions that need help with their software and web development needs.

Services

Customized online applications

Customized CRMs, ERPs, dashboards, business process automation...

We develop applications using PHP and web technologies (HTML, JavaScript, CSS). Whether public or private, you may need an application when you want to automate tasks, perform calculations, visualize data, digitalize business processes, etc...

Web applications are often a cheaper alternative to desktop and mobile apps without loss of functionality. Most features which were previously the exclusive domain of mobile or desktop apps are now readily accessible to web applications by way of Progressive Web Application (PWA) architectures.

Customized website development

Corporate websites, data-driven web portals, product microsites...

We take your specifications, layouts and artwork and transform them into HTML5 pages and templates. We test the result in various browsers and screen sizes, and work with designers to ensure a great user experience.

At the same time, we can develop the database and a content manager. Finally, we integrate the contents served by the database into the templates using PHP.

We thoroughly test each website to ensure that everything works as expected and we only publish it when everything is 100% ready.

We will advise you and your designers on best practices for easy and intuitive navigation, touch user interface, as well as mobile and responsive web design.

Database conversion and synchronization

We can transfer data between websites, different CMS systems such as Wordpress and Joomla, and various applications. In other words, from any place where we can access a database or obtain an Excel, XML or CSV file, etc. we can recover and convert data to make it accesible in the destination system.

The process can be automated in order to have a database permanently synchronized with the original data source.

This can be very useful when you want to reform an existing website and not have to re-enter contents again.

Responsive, mobile and high-resolution

Prepare your website to suit all screen sizes and resolutions.

A mobile-specific version of your website may be essential for your business as it might be receive more visitors from smartphone than desktop users. Moreover, search engines will better position a website adapted to mobile screens on searches made from a smartphone.

It is also important to take into account that many devices will have a touch screen, which changes the way we interact with websites and therefore UI-design must adapt to these requirements.

In addition, high-definition screens (Retina screens, 4K monitors, high-end tablets, etc.) abound, which give many images the appearance of being in a poor resolution. The wide range in screens makes it important to serve an adequate quality image for each specific device. Different versions of each image must be defined and the adequate size should be sent to the browser, ensuring maximum quality without unnecessarily clogging up the network and increasing loading time.

CMS-driven e-shops and blogs

You have chosen your template for a content manager (CMS), be it Wordpress, Prestashop or other. You have a clear website structure in mind and you are ready to roll out your content. Do you need help to install it on a server, make some adjustments to the structure, improve its operation and publish it without bugs?

When you don't want to reinvent the wheel, or you need something quick and uncomplicated, or you have no unusual requirements, this may be the ideal solution.

If you need more customized solutions we can also adapt any CMS to the needs of your project, create plugins, or even program it from scratch.

E-mailing

E-mailing systems that are integrated with your website, database or application, can be useful for sending newsletters, periodic automated e-mails or a response to a specific system event.

We can use tools like Mailchimp or develop a custom application hosted on your server according to your specifications.

Domain and hosting transfer

When you need to change your mail server you can't afford to lose access to your corporate e-mail for a moment, let alone miss a single e-mail.

Perhaps you also need to transfer your website or domain to another server or service provider without a glitch. It may also be necessary to prepare the website's code for the new server.

We will take care of managing a flawless transfer, working with the hosting provider and the domain registrars. We will make sure that no data is lost and that there is maximum service availability.

SEO & SEM

Search Engine Optimization. These are all the measures taken to make your website's information and structure understandable to search engines. Very few people at Google know the ever-changing algorithms that the search engine uses. But you can be sure of one thing: Those algorithms are put in place so you can find the most interesting results related to your search. So what can you do about that?

First rule: Make your website really interesting.

Rule number two: Be honest, don't try to trick Google, it's much more productive to put your efforts into the first rule.

Third rule: Build well-coded standards-compliant HTML (but you don't have to worry about this, we take care of it!).

Last but not least, you can also make sure your website appears high up in search results by using Search Engine Marketing. We can improve the positioning and accessibility of your site in Google with paid ads. At the same time, using SEO techniques, your website can reach its intended audience across myriads of websites which partner with Google through its Display network. Social media (Facebook, Instagram, Twitter or LinkedIn) is also available through their own advertising and content sponsoring programs.

Technologies

HTML

Acronym for Hypertext Markup Language. Markup meaning that there are tags which explain the role of each piece of content. Hypertext indicates that HTML goes beyond mere text thanks to its system of linking to other texts (or HTML pages) and so, builds a hyper-structure that binds websites around the world. And no, it's not a programming language.

The current version is HTML5, which was preceeded by XHTML, which was not scrictly-speaking HTML, but XML. XHTML was, nevertheless, considered the successor of HTML4 for a while.

HTML5 was born to simplify everything by going straight to the point. Moreover, more tags were added to allow greater semantic markup capabilities.

PHP

PHP is one of the most popular programming languages when it comes to tell servers what to serve when somebody asks for a particular webpage.

Being extremely flexible, one can end up with totally messy and completely criptic code when little care is taken, which would make it practically impossible to update. However, when PHP is properly handeled and combined with a database, anything is possible. PHP code is as elegant as its programmer.

There are those who say PHP is ten times slower than other technologies (e.g., C# on ASP.Net), but when everything scales up it is usually the unfortunate database that does most of the work, so in practice it does not really matter.

Performance has been greatly improved from PHP 5 to PHP 7. For websites still running today on PHP 5, migrating to PHP 7 may not be immediate, especially if we have to deal with a database. PHP 6, by the way, was never launched.

CSS / Sass / Less

Cascading Style Sheets is a language to define styles. While the purpose of HTML is defining a role for each piece of content, the purpose of CSS is to tell how this content should be visually presented.

Initially, only pure visual aspects were described, but since version 3 a lot of functionality was added, providing features that previously were only possible using JavaScript.

Often preprocessors like Sass or Less are used to generate source code more efficiently and make it easier to maintain.

JavaScript

This is the programming language every browser understands. Today most websites use this technology to enhace user experience.

Libraries and frameworks, such as jQuery, React, Angular or Vue.js, can extend the language.

But ... is there anybody not using JavaScript? Yes, indeed: web developers testing whether the website works fine without JavaScript and paranoid users in dark networks who consider that JavaScript is a gateway for attacks against their privacy.

TypeScript

A superset of JavaScript to make it static typed (that is, to define for each var whether it is an integers, a string, an objects, etc.). Static typing helps reduce runtime errors.

It was first used in Angular, but it can also be used with React, Vue or just instead of plain old JavaScript.

When used on the web, TypeScript code ends up transcompiled into JavaScript code, which any browser can understand.

Node.js

It's a JavaScript runtime environtment that allows running JavaScript programs outside of a browser.

One of its uses is running JavaScript as a server-side language, as an alternative to PHP, ASP.Net or Java. It's a popular choice for RESTful APIs for mobile applications.

The other use is for developing environments for client-side technologies, like JavaScript, CSS and HTML. Using bundlers (e.g. Webpack, Grunt, Gulp), tasks can be automated, like compiling and minifying code for its deployment.

React

React is a JavaScript library (almost a framework) maintained by Facebook that helps us in building interactive content. It can either extend traditional multipage web functionality or build single-page applications (SPA).

It can be used to develop mobile applications in combination with other libraries.

Being one of the most popular JavaScript libraries, many resources can be found for almost any desired feature, either as a plugin or as help from other developers.

Angular

Angular is a framework maintained by Google that works over JavaScript and allows the development of application that can be executed in a browser.

Very used in developing single-page applications (SPA) and mobile applications, it is especially suited when the application is complex. For simpler ones, just the initial set up work may be too much.

Alhough sharing part of the name, there are two different frameworks:

  1. Angular JS: often called “Angular 1”, a framework that uses JavaScript as programming language.
  2. Angular: often called “Angular 2” or “Angular 2+”, the successor of Angular JS, which uses TypesScript. Despite being sometimes called “Angular 2+”, they have already launched version 9.

Vue.js

Vue is a JavaScript framework, similar to Angular but simplified and lighter. In fact, it was created by a former Angular developer.

Like Angular, it can be used to build single-page applications (SPA), but its light weight makes it very convenient for simpler tasks such as controlling interactive parts in a multiple page application (MPA).

It's not maintained by any big company, but there is a big and growing community providing enough resouces for any kind of project.

Just like its competitors React and Angular, Vue.js is also suited for building mobile applications, although some options have still limited support.

jQuery

A JavaScript library. In its golden age (about eight years ago) it was almost a de facto standard on websites.

It allows covering every common browser without having to write duplicated code to account for differences, as well as simplifying many tasks. Hence its slogan "Write less, do more". It also provided a simple way to do animated transitions when CSS3 wasn't fully supported.

Its use has been falling out of favor since many of the older, most problematic browsers, have been progressively abandonded (mostly old versions of Microsoft's Internet Explorer). Moreover, the use of transpilers and polyfills help cover those old browsers whilst allowing to write in modern JavaScript and using its latest features.

Other libraries and frameworks such as React, Angular and Vue.js have also contributed to its decline, although they are not perfect replacements and sometimes jQuery is still used in combination with them.

HTTPS / SSL / TLS

HTTPS stands for HTTP over SSL. SSL stands for Secure Socket Layer and it is an encrypted channel to transmit information in a way that it can't be intercepted. Actually, SSL is an old protocol and today TLS (Transport Layer Security) is recommended instead, but often SSL refers to both SSL and TLS.

To use HTTPS we have to install a certificate on the server that gets renewed each year and adapt the website to the new URL. Basic certificates are free and convenient in most cases, but the initial installation and certificate renewal service is often charged. Most hosting plans include this service with no extra cost.

Having your website over HTTPS enures that it hasn't been suplanted and communications cannot be peeked by a third party. As an extra, browsers stating that our site is secure gives visitors more confidence and a better impression about our business.

These secure channels are also used by electronic mail applications to connect to the server, but there's no need to provide a certificate because mail servers are usually managed by hosting provider, which will have installed its own certificate (if not, it might be time to change provider!). For security reasons it is best to connect to IMAP and SMTP servers with SSL or STARTTLS activated.

Progressive Web Applications (PWA)

Thesea are web applications that can be run on any browser, but in addition they have features that until a few years ago could only be found in native applications for the devices. Those extra features are not required, but if available, the application can harness them.

Some of these features are: push notifications, picture and video capture, offline operations and local databases.

It does not matter if the web application is an MPA or an SPA, PWA technologies are compatible with any kind of website and supported by modern browsers and devices.

It is possible that in the coming years, PWAs become a full-fledged alternative to most mobile apps. Their best-selling point is that they do not need to be installed or go through the official device stores.

WebAssembly (WASM)

A language designed to be run in browsers and created by taking the best parts of different languages (C, C++, Rust, Java). "It comes to obliterate JavaScript", says many a JavaScript hater.

Currently supported by all popular browsers, it is probable that it will soon be used instead of JavaScript in some cases, but a complete substitution is not likely to happen. JavaScript works fine and is resonably efficient in most cases.

WASM can indeed be a good complement for JavaScript, specially in parts requiring high-performance operations, but it is still not ready for production environments.

SQL: Relational Databases

Usually, anyting not static on a website ends up in a database and the most powerful option is a relational database.

Relational means that information is organized in tables, where columns for each table are defined and then values for each column are placed in rows. SQL (Structured Query Language) is the langauge used to query the database to get or manipulate data.

As any database, its purpose is storing permanent data to be retrieved when needed. Generally the information stored are texts or numbers, but it also allows for the storage of any kind of file such as images, videos or downloadable documents.

A very popular database is MySQL, which is open-source and number one on the web. MySQL is very convenient for small to medium projects as are alternatives like MariaDB or PostgreeSQL. Commercial alternatives are Oracle and Microsoft SQL Server.

A simplified version exists, called SQLite, that can be integrated in applications, e.g. mobile apps, to store local data.

NoSQL: No Relational Databasees

As any database, it allows data storage, but unlike relational ones information is not stored in tables and there is no information on which type of data is going to be stored. So, basically, you can store anything on the fly. Just as with SQLite, it can be integrated in applications.

A common example is MongoDB, consisting of serveral collecions of JSON documents.

Restrictions are often defined in the application, to compensate for the lack of restriction in the database. There are libraries like Mongoose for that purpose.

Another example is IndexedDB, a database available in modern browsers.

WAI, WCAG, ARIA

WAI is an initiative to make websites accessible to all. It was born to promote the use of coding practices that would allow people with different accessibility needs the use of websites with special devices.

Inside WAI, there are the WCAG, web content accessibility guielines. The WCAG tell us how to make websites accessible. E.g. each image must have a descriptive text for its interpretation in non visual contexts.

In addition, following these guidelines is an excellent way of optimizing the web for search engines (SEO).

A late-comer is WAI-ARIA. Standing for Web Accessibility Initiative - Accessible Rich Internet Applications, it takes accessibility one step further to include dynamic content and user interface components, such as forms.

AJAX

The names comes from Asynchronous JavaScript And XML. It's a collection of practices with JavaScript for a website to interact with the server without having to refresh the page. It allows for the dynamic load of more data (for instance, extra content when scrolling down) or to send data asynchronously, while the app keeps performing other tasks.

In the beginning, the XML language was used to fetch data from the server, but nowadays JSON or even HTML are also quite common.

Tools

Consierge

Version 3 of our content manager, developed in PHP. It is so simple to use and intuitive that we often do not need to explain our customers how it works. If required, there is no limit as to its features. We customize it 100%, no restrictions.

Wordpress

The most popular content management system on the world wide web today. If needs can be matched to any of the thousands of templates available, you are lucky, it may become an economical solution to get your website up and running.

Mailchimp

Mailchimp is a popular web application for e-mailing managemnt and mantaining e-mail lists.

WooComerce, Prestashop, Magento

The reference platforms for e-shops. With them, an online shop can be created in a short time using prefabricated templates. They have everything you need to start selling on the web, including payment gateways, automated invoing, order management and stock control.

NPM / Yarn

These are package managers for Node.js. NPM and Yarn provide access to many plugins for our JavaScript application, both server-side and front-end ones.

They both do mostly the same and access the same repositories. Yarn may be a bit faster and more secure in some aspects, but for many people that is not enough to move from the very well established NPM. A hard decision!

Composer

This PHP package manager makes lots of processes readily available for our PHP applications, easily covering the most typical requirements.

It's also a way to install some frameworks like Laravel.

Laravel

Laravel is a PHP framework based on Symphony. Since PHP is very flexible, maybe even too flexible, it provides it with order and structure as well as the typical functionality.

We can quickly create routes, connections to databases, user/password access, read different filesystems, etc. It is nowadays hard to imagine complex web application development without the use of a framework such as Laravel.

Contact

Our team is based in Spain and Switzerland

Barcelona

Our offices in Barcelona

Berna

Our location in Switzerland