How Gatsby is so blazing fast? A Guide to GatsbyJS

Gatsby is an extremely powerful tool for quickly creating complex websites. It allows us to pull data from any source, provides access to a rich ecosystem (both of Gatsby-specific plugins and the broader React ecosystem), and even does things that feel magical, like auto-optimizing images.

In this article we’ll cover different attributes of Gatsby and how those features help in speeding up the application. And before that let’s take a closer look at GatsbyJS, a framework that has captured the hearts of many React developers worldwide!

Blending Static Websites with Dynamic Apps

In addition to using React, Gatsby is also a static site generator. If your website has multiple pages, it creates HTML files for each page.

Node.js will mount the React application to create HTML files with the rendered content for each route. Gatsby’s core is this.

Gatsby pre-builds pages instead of waiting for them to be requested.

-Gatsbyjs.com

In order to understand why this is important for performance, let’s go back to the basics.

An HTML file is accessed by an HTML browser, which renders its contents. Using an anchor tag, without any cache or JavaScript, will load another HTML file when clicked, even without any cache or JavaScript.Consequently, the user may have to wait or, in the worst case scenario, see a blank page while the page is being rendered.

Until Single Page Applications (SPAs) came along, this was the most common way to design a website.

JavaScript is used to render the page. This allows you to update much more quickly than if you had to download static files. As the user interacts, they update a single HTML file.

As the view layer of an SPA, React is used. JavaScript code is required for such frameworks and libraries as React. This means that the Critical Rendering Path is significantly affected when these are built as SPAs.

Critical Rendering Path stalls the render while loading and executing JavaScript.

Source: Guillermo.at

What about API calls to fetch data from external servers or databases, such as blog posts or product lists for your eCommerce shop? After the build process is complete, GatsbyJS creates the corresponding site content. Every time you update your database, you have to run the build process again. A continuous deployment tool would be useful in this scenario.

You can see how Gatsby deploy and build website in the diagram below:

Below are the ways how Gatsby JS speeds up your web application.

Image Optimization

Image optimization can be one of the most effective ways to improve a website’s performance.

Less bytes to download means less bandwidth required, allowing the browser to download and render content more quickly. Some of the optimizations we can make are as follows:

  • Resize it to take up the same amount of space.
  • Create responsive images with varying resolutions for desktop and mobile devices.
  • Compression and metadata removal.
  • Lazy loading can be used to speed up the initial page load.
  • While the image is loading, show a placeholder.

This can take a lot of effort and Gatsby has a solution: this whole process can be automated.

Gatsbyjs-image, like many other Gatsby tools, is powered by GraphQL. This plugin prepares images in various resolutions for download. It generates thumbnails and compresses them. This is all on the construction step.

You will receive all of the following benefits by using this component:

  • Images that are responsive and optimized for your screen size,
  • By default, an image blurred by base64 encoding (low resolution) is loaded.
  • When the image is visible, an integrated IntersectionObserver swaps the base image for the proper image.

When the image loads, a “blur-up” technique shows a preview in a very low-quality image that is already in the HTML file (or just the background). To create the automated optimization, all of the work in coding GraphQL queries is reduced. Check out this example:

So, what does this mean for app performance? In summary:

  • Using media queries, a user will receive the smallest image that is compatible with his device,
  • Heavier images are requested only when they are visible,
  • A blurred image retains the required size,
  • Jumping content or shifting elements are avoided.

Prefetch on scroll and hover

The majority of people dislike apps that take too long to load or are unresponsive while in use. That is why Gatsby expends so much effort in resolving the issue. During the build process, your code and data are divided into smaller chunks. Users load only the most important elements on the first visit to ensure that your site is rendered correctly. Once everything is visible and the user begins interacting with the page, Gatsby by default prefetches data for other pages on the site, making clicking around and navigating between pages incredibly smooth.

Remember that the Gatsby application is still a single page application (SPA). It means that after a routing event on your site (for example, after clicking on a link), there is no need to retrieve the entire site from the server again, which saves a significant amount of transferred data.

Best of Both Worlds

Gatsby gives us the best of both worlds by generating HTML statically and letting React do whatever it needs to do on the client side.

Statically rendered pages improve SEO, TTI, and overall web performance, among other benefits. Static sites are easier to deploy and have a wider global distribution.

Conclusion

This does not mean that there will be no issues with the build version if the code runs successfully in development mode (Gatsby develop). Build the code regularly and fix issues. Builds are generated after every change, and the build time is only a few minutes. A build might be more difficult to create if there are frequent changes and multiple issues need to be resolved at the time of the build.

Sites with many styled components and libraries take longer to build. As a result, it is no longer feasible to run the build after every change, making it difficult to track down build problems.

About Galaxy Weblinks

We specialize in delivering end-to-end software design & development services and have hands-on experience with popular front-end and back-end frameworks. Our back-end and front-end engineers also help in improving security, reliability, and features to make sure your business application scales and remains secure.

Choosing Django as Your Backend Framework in 2021

Building a scalable product is a best practice and necessity, even if you’re starting out. Because once you get that user validation, scaling becomes difficult and not so cost-efficient. So you outsource backend in order to move things around to accommodate more users and tackle heavier loads. 

Now think about when you’re building an application, you need to get two major things right i.e. Frontend (what users see and interact with) and the backend (what happens in the background, invisible to users). For this blog we’re focusing on the backend side of things. Django backend framework to be precise. 

The Backend runs on a server, that’s why it’s called server-side of the application. Although invisible, this server-side of the application holds great importance in terms of performance. Hence, choosing the right backend framework becomes critical, if you want to avoid slow, buggy, and overall bad user experience. For this blog we’re taking a look at Django and its relevance in 2021 as a backend framework. 

Relevance of Django in 2021

Django provides generic functionalities to build a web app without many hassles, as it comes equipped with solutions that eliminate the need of writing everything from scratch. Django code is reusable, which subsequently helps in cost and time reductions in development.

Django is a batteries-included framework. And, for the Frontend part, depending on your goals, you can select and combine different complementary frontend elements with Django. 

Benefits of Choosing Django as Your Backend Development Framework

As mentioned earlier Django is batteries included so it comes with everything you need to build an MVP right out of the box. Provided you have user flow, information architecture and UX of the product planned to a T. Some other benefits are as follows:

  • Out of the box Django comes equipped with Content administration, site maps, RSS, user authentication, etc.
  • Django provides you with a production ready admin interface, you just have to define your models. It also lets you add and authenticate users with different levels of permissions. 
  • Django likes to keep URLs clean and elegant, so it avoids putting any cruft in URLs, like .php or .asp
  • Django is equipped with templates to help avoid security attacks like cross-site scripting, cross-site request forgery, clickjacking and SQL injection.
  • Scalability is one of the strong suits of Django and some of the famously large organizations across the globe use Django to build scalable web applications.
  • If we talk about versatility, Django is used to build robust backends for CMSs to Social Networks.

Why Do You Need Django in 2021?

If you were to do backend development from scratch, you will realize that raw SQL queries will be needed to manipulate the database and soon enough it will stop scaling. Subsequently you might end up writing your own wrapper on top of the raw SQL queries, to keep the code DRY. 

Now your users are interacting with the interface with raw queries. Which in turn makes your app vulnerable to SQL injection. Security vulnerabilities don’t just stop there, the app will be exposed to cross site scripting and clickjacking. 

Even if you even managed to tackle these security vulnerabilities, which is tedious to say the least, exposing the backend to the frontend of a web/mobile app in 2021 is even more difficult. 

Django Usage Across Industries and Countries

Here are the industry-wise and country-wise stats of Django usage. About 30,699 live websites run on Django.

django
django-country
Source: SimilarTech

Reasons to Choose or Not to Choose Django

If you need Machine Learning and Artificial Intelligence based core features and functionalities then Django is highly recommended. All you need is a strong Python team. 

  • Django is great for growing projects, as they’ll need features like database, migrations, cache, etc right from the start. 
  • Django is great for use-cases like a CMS-style CRUD application or when you’re writing in the framework while it can be a real pain to work around when you need to do something it doesn’t easily support.
  • Django or even Python in general is not good at some async and CPU-intensive tasks. 
  • Django scales gracefully, has a great security track record, and sane deprecation schedules.
  • Choose Django when you require both API backend & web app within the same codebase.
  • Django supports ORM.
  • Don’t go for Django if your application is huge and you don’t intend to break your app into micro services.
  • Choose Django if you’re building something bespoke and from scratch. 
  • Django is not recommended for basic apps that do not require a database. 

Wrap Up

There are an impressive number of web/mobile apps that utilize Django as the backend framework because it’s fast, reliable, and easily scalable. These traits are enough to make it relevant in 2021.

If you’re still not sure if Django is the right framework for your project or not, then get in touch with us here and we’ll try to help you make the right decision.

About Galaxy
We specialize in delivering end-to-end software design & development services. Our analytics team and UI/UX designers are creative problem-solvers with a decade of experience in all facets of digital and interactive design. We create compelling and human-focused experiences delivered through clean, and minimalist UI.

What Makes a Great WordPress Plugin?

There are thousands and thousands of listings in the WordPress Plugin repository, 58,600, to be precise. These plugins offer numerous different functionalities and use cases. But just like any other thing in the world, not all of these plugins are great at what they do. The ratings tell a different story altogether, even some great plugins get some flak every once in a while for doing something differently or worse, badly. Those 5 stars don’t last a lifetime. 

So how does this happen and what are the aspects that determine success or failure of a WordPress Plugin? Here is a dive into what makes a great WordPress Plugin.

Users judge apps, utilities, and other pieces of software based on their usage, needs, and previous exposure to other alternatives. How do we go on about this defining business of something subjective such as a WordPress Plugin being good or not? Each person will judge a plugin based on their own needs and experiences. It might be difficult but not impossible, here are some aspects to help you start:  

Get your Goal

According to the ‘Golden Circle’ rule, “people don’t buy what you do, they buy why you do it.” A plugin developer should also start with a why and then move into other important questions like – 

  • Why is this plugin being developed?
  • What purpose does it serve?

Let the answers to these questions be the mission statement. Most of all the plugins should be solving a problem. The purpose can be something as simple as adding new functionality to an existing plugin, WooCommerce extension for example. Or something complex and comprehensive. 

The goal and the purpose is not just something to get the development started and getting the solution in the users hands. As the user base grows, it becomes vital for the developer to stick to that mission statement. The plugin might improve with regular updates but completely changing tracks is unadvisable. For example, it wouldn’t make sense if all of a sudden an SEO plugin starts adding irrelevant features like a shopping cart. Users might get frustrated and abandon the plugin altogether. 

Great plugins tend to stick to their initial goals and mission statement. 

Mind the Users

Be mindful of the users and respect their preferences. Users like to have control of the tools and what they do. Implementing policies that are not transparent is a bad practice. Don’t upsell unnecessarily and clutter the dashboard. Also don’t spam users with stuff they didn’t sign up for or enroll users for auto-update without telling them. Even if some of the actions might be good for the users but make it clear to let them know and let them make the choice. 

Users hate it when their personal space is being breached and when crucial functionality is turned on/off without their consent. 

Mind the Coding and Accessibility Standards

Not just for WordPress plugins but coding and accessibility standards should be followed in general. Sticking with the standards makes the plugin code efficient, secure, and stable, and UI accessible to everyone. 

WordPress being an Open-source platform, adhering to these standards is easier said than done. Literally anyone who wants to write code and build a plugin can do so. But not everyone sticks to the rules, especially when dealing with bigger, harder-to-manage plugins. A little piece of rogue code can create a big mess in an instant. A great WordPress plugin sticks to the standards for the very same reason.  

Support it and Maintain it

Developing a WordPress plugin is difficult and maintaining it is a major undertaking on its own. But it’s worth it because it’s one of the major factors that determines long-term success of a WordPress Plugin. 

Bugs are a part of the system, they appear even in the popular enterprise applications that have large and vigilant teams dedicated to hunt and rectify them. They will appear regularly and it can be frustrating but the key here is to deal with them in a timely and regular manner. Firefighting won’t take you far.  

Providing support reinforces user trust in the developer. When things go wrong, provide support, at least to the extent you can. Type and cost of the plugin also plays an important role here in determining what kind of support users are going to expect from you. A free product can survive with a basic knowledge base while a commercial product is expected to have a good support. 

Final Thoughts

WordPress Plugins are meant to solve problems and as long as your plugin does that, keeping the users needs in mind, it’s going to score good. Utilize the key aspects mentioned in this blog to make things easier while you try to achieve WordPress greatness. 

And if plugin development is something that you need WordPress experts to handle for you, then drop by here and tell us your needs.

About Galaxy

We specialize in delivering end-to-end software design & development services. Our analytics team and UI/UX designers are creative problem-solvers with a decade of experience in all facets of digital and interactive design. We create compelling and human-focused experiences delivered through clean, and minimalist UI. Click here for a free consultation!

Node.js vs Python | Which Backend Framework to Choose?

Choosing the right backend technology for your project is a decision that can have a long-term impact on your software. A favorable decision will be robust and easier to scale while a wrong one could send you down the path of rewriting the entire app, costing you time, money, and team morale in the process. 

Backend technologies are directly attributed to the stability, performance, and scalability of systems, hence thorough research is needed before making the decision. This blog will help you with that research. 

We’ll be comparing Node.js and Python on the following grounds:

  • Frameworks, libraries, and community
  • Use cases
  • Learning curve
  • Scalability
  • Performance

Backstory

Initially used in data sciences, Python has been ranking in web development as the most popular backend language since 2018-19.

Python is a programming language while Node.js, a runtime environment, on the other end boasts of a speedy V8 which makes it a popular choice for real-time server applications. 

So when you’re choosing either for your application take their respective ecosystems and how they fare for you into consideration.

Frameworks, Libraries, and Community

Python has Django and Flask as the most popular frameworks in its arsenal. Python also has support for rich libraries for various projects like:

  • Panda for data analysis
  • OpenCV for image processing 
  • matplotlib or Numpy for data visualization
  • TensorFlow/Scikit-Learn/PyTorch for machine learning
  • Raspberry Pi for robotic applications

When it comes to Node.js, NPM(Node Package Manager) is one of the richest libraries out there with about 1 million packages available. The most popular and dependable packages are:

  • express.js – a MEAN stack microframework
  • Nest.js – This framework is Node’s answer to Django
  • lodash for modular utilities
  • react for UI.

Takeaway

  • Both frameworks boast a rich ecosystem and libraries, which makes them a difficult choice. It comes down to your project and its inherent needs. If you think Python has the libraries that would make your life easier, then that’s the one you should go for. Same with Node.js!

Node.js vs Python use cases

Comparing Node.js and Python superficially is futile because both are robust and actively supported. To solve this mystery we have to dive into details. 

Python can be seen as a general-purpose language and hence is suitable for a vast range of applications. You can build web apps, machine learning projects, numerical computations, and even deep learning. The Banking and Insurance sector has a default inclination towards Python for the backend as it’s strong and natural at handling big data sets. 

When we talk about real-time and web-based projects that are data-intensive like chatting or streaming platforms, Node.js is the best option. Developers choose Node.js because of its asynchronous nature. It is ideal for projects that don’t require heavy processing and are good with I/O operations. Node.js is also preferred for memory-intensive applications like rendering 3D projects. 

Takeaway

  • Choose Node.js for small and extremely fast run-time apps.
  • Choose Python for large systems with huge datasets that require stability and consistency

Learning curve

Node.js is not a challenge to those who are adept at JavaScript. You can even utilize the same language to build the frontend as well as the backend of your application. Node, however, is natively asynchronous. The new developers find it hard to wrap their heads around in comparison to synchronous Python.

Python, on the other hand, is known as the easiest backend language to learn, as far as earlier phases are concerned. It is a compact and very well-documented language. 

Takeaway:

  • If your team is familiar with asynchronous code then it might be easier to go with Node.js. You’d still need to hire backend experts for complex problems. 
  • Even though introductory Python is dubbed as the easiest backend language to learn, the difficulty increases with the complexity of the problems.

Scalability

Node.js has an event-based asynchronous architecture and non-blocking I/O, which ultimately contributes to efficient scaling. As a default feature it’s great for smaller applications but not so much for the bigger systems. New developers or even intermediate ones will find it difficult to scale. 

Python is synchronous, however, it has additional tools that allow data migrations and data streaming. What works in its favor is how well it scales in code complexity.

Takeaway:

  • It’s a difficult call when it comes to scalability because both tackle scalability in their unique way, be it through architecture or tools. 

Node.js vs Python performance

We want fast apps and we want them now!  

Although it’s an unfair comparison, Node.js with its V8 engine and asynchronous architecture is one of the fastest server-side solutions among its peers. 

Python is not that far behind in terms of speed. With the latest release and speed optimizations, it has achieved up to 50% speed improvement in some cases. 

Takeaway:

  • Choose Node.js if building a real-time solution
  • In other cases where high-load is a concern, Python is recommended. 

Conclusion

When choosing the right software technology for your project, choosing between Node.js and Python can only add to your confusion as both are exceptional backend technologies. They can both be used to build robust, scalable, and performant software. 

We hope that this blog has helped you choose the appropriate backend framework for your project. If you’re still left with some unanswered questions, get in touch with our backend experts here.

Vue vs React: When and How to Make the Right Choice

Vue.js and React.js are two popular frontend JavaScript frameworks, with React tipping the scales for the last three years. Both tools provide developers with a productive approach to developing various Web applications, but each has its own best use cases and addresses different business needs. In this article, we’ll look at some of those use cases, as well as the benefits that distinguish Vue.js and React.

The Cream of the Crop

There are numerous reasons for Vue and React’s prominence on the developer landscape. Before we delve deeper into their distinguishing features, let’s take a quick look at what the two have in common that makes them so popular.

Virtual DOM  – With a regular DOM, the entire page is rendered after making changes. With both these frameworks, only the changed object is updated, thereby saving time and resources that heavy DOM manipulations would consume.

Component-based UI development – The extensive component libraries provided by Vue and React facilitate code reuse, increase developer productivity, and accelerate the development process.

Concentrate on the view library — Separate concerns for routing, state management, and so on.

Official component library for building mobile apps — Long-awaited in Vue, but now available in both tools.

React and Vue are among the two of the most popular JavaScript frameworks. According to the State of Frontend 2020, the most popular JS languages are React and Vue. 4500 professional front-end developers took part in this survey.

While both the platforms have some common advantages, let us compare how they measure up in terms of performance, scalability, security, flexibility, and other important parameters.  

Vue vs React: Performance

JavaScript utilizes two types of object models, virtual DOM and real DOM. The organization of working with the DOM is a major factor in the performance of JavaScript tools for developing interfaces.

React makes use of the virtual DOM, which is a lightweight, browser-independent system. One of the main reasons for React’s popularity is that it works very well with the DOM.

Vue also makes use of the virtual DOM, but it outperforms React in terms of performance and stability.

The performance difference between Vue and React is minor, measuring only a few milliseconds. This demonstrates that Vue and React have very similar performance.

There are some cases in which one framework outperforms the other. When you change the state of a React component, all of the components in its subtree re-render. You can prevent child component re-renders in React by using immutable data structures, ComponentUpdate, or PureComponent. However, this can add complexity and result in DOM state inconsistencies.

With Vue, the dependencies are tracked to avoid any unnecessary re-rendering. 

Vue vs React: Flexibility

React’s core provides only basic functionality. With the practical application of this library, its capabilities must be expanded. This provides the developer with a great deal of freedom when it comes to selecting additional tools.

They usually solve the following problems with the assistance of additional libraries:

  • routing, 
  • application state management, 
  • server rendering, and 
  • mobile app development

Vue, as opposed to React, provides a more comprehensive set of standard tools to developers. This enables you to use third-party libraries to solve the same problems that the React ecosystem typically solves.

Vue vs React: Security

Vue apps are slightly easier to secure than React-based apps. While automatic protections against XSS vulnerabilities are not possible, Vue developers can sanitize HTML code before implementation or use external libraries to help protect against attacks. You can explicitly render a safe HTML and protect the application. 

To protect against XSS vulnerabilities, server-side rendering attacks, SQL injections, and other threats, React security relies on the developer following security best practices.

Vue vs React: Scalability

React is at an advantage due to its ease of scalability. React apps are written entirely in JavaScript, and the developers can use traditional code organization methods for easy scaling. Reusability of components improves React’s scalability.

While Vue is also scalable, it is more commonly used in smaller applications due to its diverse set of flexible tools (although the size of the app of course depends on the architecture). Because of the dynamic architecture, you will need to use Vue’s libraries and Mixin elements to overcome scaling limitations. We believe that React is a better choice for building enterprise applications.

Vue vs React: Popularity

We can track developer interest in these two frameworks over the last two years using Google Trends statistics. It is quite obvious that React and Vue are in a race to best each other. 

Let’s look at the stack overflow 2020 stats. The survey is about popular web frameworks and shows the percentage of developers who are developing with the language or technology and are interested in continuing to develop with it. In this ranking, React is ranked second. And Vue is only a little behind. Vue has grown in popularity in a relatively short period since its initial release in 2014.

Vue vs React: Community Support

The React library is maintained and developed by Facebook. Anyone who chooses React as the foundation for their application’s frontend can be confident that it will not become an abandoned project anytime soon. Many additional tools have been created and maintained by the React developer community.

Vue, on the other hand, has grown in popularity, with many programmers contributing to its development. 

Vue vs React: Mobile Development

You can use React Native to create native iOS and Android apps. 

Vue is not as fortunate in this regard. It has announced its official support for the Weex project, a cross-platform UI framework developed by the Alibaba Group. With Weex, you can use the same Vue syntax to create browser components as well as iOS and Android apps.

Weex is still in the early stages of development and is not yet as mature or well-tested as React Native. A NativeScript plugin for creating truly native apps with Vue.js is another variant of NativeScript-Vue.

How to Make the Right Choice

Vue.js

Vue, as a progressive framework, can be incrementally integrated into an existing project based on project requirements. As an example, it could be used as a lightweight library to add interactivity to a Web application. 76 percent of developers polled for the 2019 edition of the State of Vue.js Report cite ease of integration as Vue’s most valuable asset. Whereas, 90 percent of developers in the 2021 report of State of Vue.js, claimed there is a very high probability of them using Vue.js for their next project.

Vue is ideal for delivering MVPs and startup ideas quickly, thanks to its simple learning curve and tools like Vue CLI 3 and Vue UI. Vue is also a cost-effective solution for small to medium-sized apps as a result of these factors. 

Don’t let that fool you into thinking Vue isn’t suitable for large Web apps. It has a large ecosystem of tools and companion libraries, allowing the framework to address the complex requirements of enterprise-grade applications.

React

React was designed for large-scale Web projects, therefore using it for small and simple apps may be excessive. Although it takes a lot of boilerplate code to get a working project up and running, React’s architecture pays off in the long run.

JSX gives developers access to the full power of JavaScript — flow controls and advanced IDE features like autocompletion and listing are included in component view templates.

React, unlike Vue, lacks official packages for routing and state management. To create complex apps, you must rely on third-party solutions for almost everything. However, the options are numerous. Experienced developers tasked with delivering advanced projects will understand which of the numerous libraries will be the best fit to meet the business requirements of a specific Web application.

Conclusion

Vue.js and React are both excellent frameworks for creating interactive user interfaces. You must consider several factors when deciding which one is best for your next project, including your specific use case, business needs, environment, developer availability, budget, and timeframe.

We hope this guide has helped you decide between React.js and Vue.js for your next project. If you still have questions about the technologies, or if you need a team of experienced developers to help you create your project, please contact us using the form here!

About Galaxy Weblinks

We specialize in delivering end-to-end software design & development services and have hands-on experience with popular front-end and back-end frameworks. Our back-end and front-end engineers also help in improving security, reliability, and features to make sure your business application scales and remains secure.

Our Backend Development Technology Favorites in 2021

Website development has become critical in business expansion as the business world has become more reliant on digital technology. Backend development plays a pivotal role in the software development process, enabling web developers to create high-quality websites, thereby resulting in business growth. 

Backend development’s role in website development

The server-side of the website is the primary focus of backend development. In general, the backend is made up of three major components:

  • Database 
  • Application 
  • Server

Backend power-ups the website’s operation on the server. Furthermore, the backend developers’ programs are used to communicate database information to the browser.

Backend development will be even more important in 2021 as businesses seek to expand at a rapid pace. We’ll take a look at the five best languages for backend development that will rule the roots in 2021.

#1 Kotlin

Kotlin, which is used by 60% of professional Android developers, has a strong position in the programming world. Some of its advantages include Kotlin being a code-concise language and providing solutions to common developer problems, such as null references. It retains all of the benefits of Java while also providing a condensed version of the language. Kotlin captures the spirit of today’s SSR development as well. According to the Kotlin Roadmap, it will have increased support for server-side development, which is critical for today’s website performance and user interaction.

Kotlin was the fourth most popular language in 2020, according to StackOverflow, with 62.9 percent of the vote. Global companies such as Google, Netflix, Amazon, Trello, and others use Kotlin. Pinterest and Uber are among the companies that have switched from Java to Kotlin.

Since it is compatible with Java, Kotlin will have a significant impact on future backend development. The developers have access to massive libraries, allowing them to write concise code. More than 61 percent of developers, with more than 5 years of experience prefer to work with Kotlin. 

Spring.io is a framework that supports Kotlin.

According to JetBrains, Spring is the most popular Kotlin-supported framework, accounting for roughly half of all JVM-based projects. As per the StackOverflow Survey, it is used by 16.4 percent of respondents. Its popularity stems from the simple and effective solutions it employs. One of them is dependency injection and inversion of control, which allow dependencies to be clearly defined and requirements to be easily resolved.

#2  Python

Python is a high-level dynamically typed programming language that has been gaining popularity in the IT industry for some time. It was conceived and first implemented around 30 years ago, and it is still the third best-known and most in-demand programming language in the modern developer community (according to last year’s CodinGame 2020 Developer Survey).

Python’s popularity is out of this world. It was named the TIOBE programming language of the year in 2020. Its popularity attests to its superior features.

In comparison to other backend programming languages, Python has a more open programming approach. It is an ideal language for new startups due to its flexibility and multiple paradigms. 

Python is the most popular programming language

Python ranks extremely high in community popularity rankings. It was named the TIOBE programming language of 2020 for the fourth time, after experiencing the greatest increase in popularity in a single year (2.01 percent ). The TIOBE Index is a programming language chart based on the number of professional engineers and courses available worldwide. According to the Stack Overflow Developer Survey 2020, Python is also the third most popular programming language (66.7 percent of respondents say it is their favorite).

If you’re about to embark on a software development project, one of the most important considerations is likely to be popularity. Whether you want to assemble a knowledgeable in-house team or find a dependable tech partner to assist you in building your product, choosing a widely used technology will undoubtedly help you start the development process much faster.

Go-to frameworks of Python: Django and Flask

Django includes a plethora of add-ons such as content management, site maps, RSS feeds, and many more. This complete package not only expedites the development of an MVP or proof of concept, but also simplifies the process of tailoring the product to the needs of its users by customizing, adding, or unplugging separate components.

If Django appears to be an overwhelming monolith, you should consider Flask as an alternative. It is a microframework that ensures flexibility and gives developers greater control over which components they use and how they are implemented by providing only the basic tools and capabilities.

#3 Golang

Go, also known as Golang, is a programming language. It was released in 2009 and has already been named the Programming Language of the Year by TIOBE twice. While it is undoubtedly less popular than the aforementioned Python, it has been named the fifth most popular technology by 62.3 percent of Stack Overflow survey respondents in 2020. So, why is it on our list of suggested backend development solutions for 2021?

The learning curve is progressive

To begin with, Go is simple to understand and use for both a novice programmer and an experienced developer. On the one hand, if you look at its specification, you’ll notice that its syntax is simple, and it shouldn’t be too difficult for a young IT specialist. Furthermore, there is an interactive Tour of Go on the Go website that you can use to become acquainted with the language. On the other hand, the simplicity of Golang’s code makes it simple for professionals skilled in other programming languages, such as C# or C++, to adopt.

Google engineers created Go to make their software development process simpler, more reliable, and efficient, which is why more and more programmers are switching to Go to increase their productivity. According to the Go Developer Survey 2020, a whopping 81% of respondents felt very or extremely productive in Go. 

Gin Gonic is one of the best Go frameworks

Golang, like Python, is supported by several frameworks, including Martini, Revel, and Goji. If you want to advance your Go backend development in 2021, we recommend Gin – a minimalistic web framework with 45.2k GitHub stars.

It is simple to learn and ideal for creating efficient REST APIs that are said to be 40 times faster than Martini’s. Furthermore, Gin appears to be a viable option for developing microservices, which, from a business standpoint, have the potential to significantly increase your product’s time-to-market.

#4 Node.js

When it comes to switching to the back-end, developers can reap all of the benefits of JavaScript development. Node.js is one of the best backend programming languages due to its vibrant developer community. The dynamic developer community contributes to the language’s development.

Irresistible microservices in NodeJS

Because it is a lightweight technology, Node.js is ideal for microservices architecture. It allows for the division of application logic into small modules, resulting in greater flexibility. Because developers can add new functions to the existing ones, Node.js has become a popular backend programming language. Furthermore, because the developers can reuse the codes, the website’s performance and productivity improve.

Because it allows for the creation of separate components that easily complement the larger application, Node.js allows for cost savings during the initial development stages, potentially shortening your product’s time-to-market. This feature alone makes Node.js an excellent backend development choice for MVPs and other scalable, high-traffic applications.

When asked about many of the other miscellaneous technologies that developers use, Node.js takes the top spot for the second year in a row, with half of the respondents using it.

Express: The popular framework for Node.js

After deciding on the JavaScript runtime for backend development, you’ll be wondering about the best framework to go with it. Express is our pick for the new decade, as it is currently the most popular Node.js framework, with 76.1k stars on GitHub.

According to the framework’s website, Express.js is a quick, unbiased, and minimalist solution. It gives programmers a thin layer of powerful web and mobile app features: not too many, but just enough to make the backend development process easier.

#5 PHP

In 2021, Ruby on Rails will play a pivotal role as it helps in reducing the time spent on standardized tasks. It minimizes the website development time by 25% as compared to other languages. In addition to it, there are some amazing advantages of Ruby on Rails that will help businesses in the long run.

PHP is a useful backend programming language with excellent features and flexibility. This is why PHP is regarded as the backend development language of the future in 2021. Furthermore, the syntax of PHP is very expressive, giving developers a lot of creative freedom.

PHP includes built-in website development capabilities. It encourages rapid website development by simplifying it with a simple structure. The app’s features can be added by the developers without the need to write complex and lengthy code.

This backend programming language enables developers to interact with a variety of relational databases. Furthermore, PHP automates common web development tasks such as session management, URL mapping, caching, and so on.

Laravel: Best PHP framework to use

Laravel is a web application framework that features expressive, elegant syntax. To be truly fulfilling, we believe development must be an enjoyable and creative experience. Laravel aims to make development easier by simplifying common tasks found in the majority of web projects, such as authentication, routing, sessions and caching.

Conclusion

Backend development programming languages like those listed above will be critical for businesses to grow in 2021. Once business organizations understand their requirements and choose the appropriate backend programming language, they can use them to the core.

Businesses must choose the best language for backend development based on their needs. Aside from the language, you must ensure that your project has the best backend developer. Don’t skimp on backend developer quality because it can make or break your project.

Contact us for a professional consultation on which backend technology will be best for your business project in 2021, and how to put them into action to create a trending product.

About Galaxy Weblinks

We specialize in delivering end-to-end software design & development services and have hands-on experience with popular front-end and back-end frameworks. Our back-end and front-end engineers also help in improving security, reliability, and features to make sure your business application scales and remain secure.

Top New Plugins of Popular CMS in 2021

With over 50,000 plugins in a single CMS plugin directory, it can be difficult for business owners like you to find the right plugins from your favorite CMS platform. Plugins greatly enhance your website and there are several thousand plugins available on your chosen CMS platform and third-party websites.

Choosing the right plugins is critical for your website’s speed, security, and usability. Fortunately, some clear winners will benefit almost any type of CMS site.

In this blog, we’ve compiled a list of the best plugins for popular CMS. We’ll go over plugins designed to improve WordPress, Shopify, Craft CMS, and Joomla.

WordPress

Simple Responsive WP Slider

Simple Responsive WP Slider is a lightweight WordPress slider plugin. You can use the plugin to create and customize an unlimited number of sliders for your website. To add the slider to a webpage, you can use a shortcode or place it within Gutenberg blocks. The plugin’s features include unlimited sliders and multiple sliders on each page. Custom configuration options are available for each slide, including the navigation and slider. Adding dots or arrows to the slides is one of the basic configuration options for individual sliders.

Quick Audio Player

Quick Audio Player is a customizable WordPress audio player. The plugin is mobile-friendly and compatible with any WordPress theme. It works flawlessly on all devices and web browsers. The plugin includes an HTML5 audio player, live player editing, a player poster image, rich control settings, a player shortcode, player width and color customization, and a player color picker. The player supports a variety of audio formats, including.mp3,.wav, and.ogg.

Tutor LMS Elementor Add-ons

Tutor LMS Elementor Add-ons is a useful plugin that adds 25+ Elementor page builder add-ons. Users can use the plugin to create custom styling and layouts for Tutor LMS courses. You must install both Tutor LMS and the Elementor Plugin for this plugin to function properly. After you’ve activated all three plugins, you’ll be able to use Elementor to create single course pages. Course rating, course title, course author, course level, course duration, course thumbnail, course price, and many more are among the Elementor Add-ons. The plugin can also be used to change the appearance of your existing courses.

Job App Manager

Job App Manager is a simple WordPress plugin that allows you to display a job application form on your website for candidates to fill out and submit their information. To display the form on any webpage on your site, a shortcode is used. After completing a form, the user will receive a confirmation email. Go to the admin page and navigate to ‘All Submissions’ to find the submissions in the form. You can also search, filter, and delete forms from the admin page. There is also a dashboard widget that displays the most recent five form submissions.

Wall Pricing table

WordPress users can use the Wall Pricing Table plugin to create pricing tables for their websites. You can include the features of the various pricing plans as well as display the price table anywhere on your website. The pricing table includes the following fields: title, subtitle, price, button, and features (you can add as many as you want). Each plan can be distinguished by color. The plugin is available for free.

Craft CMS

Marketplace for Craft Commerce

Craft users can use Marketplace for Craft Commerce to turn their Ecommerce sites into a marketplace. Users can charge fees for your platform as well as add payees to products. You have the option of charging a flat or percentage fee. Stripe Connect is used to process payments.

Presence 

Presence is a Craft plugin that shows who is currently editing an entry. While editing any entry, the users are displayed in the right sidebar settings. For users who do not have a profile image, a default logo is set. Admins can review and approve the entries made.

Joomla

AA Tiny Audio Player

AA Tiny Audio Player is a Joomla extension that adds an HTML5 audio player to your website. The extension includes a responsive layout and animation support. It supports the video formats.mp3,.ogg, and.wav. It is also compatible with all templates.

MyRealPin

MyRealPin gives your website a Pinterest-like appearance. You can make your pinboards, and collaborate with your friends on them. You can modify the Joomla extension to meet your specific requirements.

AA Youtube Subscription Button

AA Youtube Subscribe Button is a Joomla module that displays a YouTube subscribe button along with the subscriber number of your site. It is simple to use and fully responsive. It is cross-browser compatible and can be used with any template.

Shopify

Advoz 

Advoz is a Shopify plugin that allows professionals to create high-quality Google, Facebook, and Instagram ads to promote your company. Once you’ve decided on a weekly budget, you’ll receive a custom graphic or video detailing how the ads will appear. The plugin will generate advertisements that will drive high-quality leads to your store.

Products Stories Convert Sale

Products Stories Convert Sale is a cool plugin that transforms your website into a trendy social network. Customers can view products in your store in a fun and easy way thanks to the plugin. Like Instagram feed stories, all of your catalogue will appear in carousel stories. Coupons will also appear in the stories to aid in sales. You will also receive real-time reports to assist you in determining what your customers are interested in.

ConvertOut Ambassadors

ConvertOut Ambassadors is a Shopify plugin that allows users to quickly set up an ambassador program. To get started, you don’t need any technical knowledge. The plugin begins working immediately after installation. ConvertOut will track the commission that must be paid to the ambassador for each sale. Payments are made to the ambassador’s PayPal account.

Wrapping Up

It is nearly impossible to run a CMS website without using plugins to add functionality. There is a plugin for almost anything you can think of on your website, whether you want to engage users through email opt-in forms, add social sharing buttons, compress images to improve website speed or optimize your content to rank in search engines.

Furthermore, plugins greatly improve and optimize the user experience, resulting in higher engagement and a better chance of reaching a larger audience.

If you’re not sure which plugins to install first, these well-known and trusted plugins will get you started.

About Galaxy Weblinks

We are your offshore CMS development partner and have state-of-art infrastructure and development expertise on the latest CMS technology trends. We have hands-on experience in customizing websites using multiple platforms, be it Shopify, Craft, WordPress, Joomla, catering to different business needs. We offer assistance from building custom CMS websites to website migration and maintenance processes.

10 Tips to Improve Your Website Accessibility

Have you ensured to follow WCAG 2.1 guidelines before building your website? You may be in for a rude awakening if your beautiful, meticulously planned website is inaccessible to people with disabilities.

You can begin by identifying your most pressing and easily remedied accessibility issues. This will reduce your risk of lawsuits and make an immediate difference for your disabled customers. Of course, this is only the first step in the process.

Consider this blog as an accessibility triage.

Why Web Accessibility is Vital

The first web accessibility ADA lawsuit occurred in 2017, and it went all the way to federal court. Everything because a website was incompatible with screen reading software.

Consider how inconvenient it can be for a visually impaired person to be unable to order a product they require from a website. Especially during a pandemic, when online shopping is the only option to shop safely.

Making your website accessible to people with disabilities is important not only for avoiding lawsuits, but also for better serving your customers. Here are a few quick tips for testing and improving the accessibility of your website.

#1 Take Stock of all Digital Experiences 

The first step is to examine your entire digital profile, just as you would an inventory of your store.

  • Take your time and carefully review all websites (including content behind gateways), mobile apps, videos (on all platforms), and PDFs that are available for download. 
  • Make a list of every digital access point your company has for both internal and external customers.

#2 Test Your Website

You should begin by selecting strategic samples of what to test and focus on. This is important to quickly assess the current state of your site’s accessibility. This also helps identify major issues that your customers are likely to encounter, 

This should include your most popular and valuable pages, such as the following:

  • Your website’s home page
  • The header and footer of your page
  • Your desktop and mobile navigation menus (as well as general navigation)
  • The most important user tasks
  • Forms and templates are frequently used
  • Core business functions that customers may require.

The goal here is to quickly test these high-value pages so that you can triage and address high-risk issues.

ProTip – 

A good place to start is with the Google Lighthouse tool, which allows you to run a free website audit. It checks for website accessibility, among many other things. You can also use the WAVE tool or the aCe accessibility tool, which are designed specifically for testing the accessibility of websites.

#3 Initial Accessibility Tests

After you’ve established your sample, you should put it through these three tests.

  • Allow a screen reader user to read through each page. Request that they attempt to complete basic tasks such as logging in, navigating to different features, and filling out forms.
  • Experiment with only keyboard navigation. 
  • Make use of an automated testing tool to identify easily flaggable issues. However, it is critical to continue running manual tests because automated tests can help but do not catch all issues.

#4 Create Alt-Image Text and Video Captions

This is an easy-to-implement, easy-to-overlook step toward accessibility that you should not overlook.

If your images don’t have alt-text and your videos don’t have either transcripts or closed captions (or both), you’re putting yourself at risk of an accessibility lawsuit. These are extremely simple for automated software to locate, and they also prevent major accessibility issues.

#5 Label Forms and Keep Them Readable

Always use the label tag to associate each field description with its field, as this provides more context about each field to screen readers and other accessibility systems.

The use of placeholder text in form fields is another potential accessibility issue in forms. Placeholder text—the text suggestions that appear by default when no text is entered into a field—is frequently useful.

#6 Enable Font Size Adjustments

One disadvantage of allowing the user to zoom in and out to adjust element sizes is that it changes the size of everything on the page. A better solution would be to include plus and minus icons somewhere on the page that allows the user to change the size of the base text on the fly, and to save that setting on the client. This would be as simple as a JavaScript function that changes the size of the base font for the text styles in the document.

#7 Use Descriptive URLs 

A descriptive URL like https://magazino.com/article/ten-best-harrison-ford-films/2125451 tells us quite a bit at a glance about the destination

A descriptive URL reduces the amount of work a visitor must do to figure out what the article is about. As a result, a well-designed website will devote some of the URLs to a brief textual description of the contents, while the article ID is used by the server to determine which article to serve.

#8 Choose Color Blind-Friendly Visuals

It is something you should always keep in mind when selecting visuals for your website design. Everything from the contrast between the background and the content to the colors used in the images should be carefully chosen to make them accessible to people with various types of visual impairments.

Some websites, for example, use color to emphasize the importance of buttons and links. Those buttons will have completely different meanings for someone who is colorblind.

#9 Use a Content Management System

Web accessibility is also affected by the flexibility of your website. It is much easier to make the necessary changes to improve website accessibility with a more flexible website. Using a content management system (CMS) is an excellent way to accomplish this goal.

CMS software, for example, allows you to easily customize your website in any way you want. You can optimize your design for web accessibility with page builder plugins like Elementor without writing a single line of code.

#10 Document The Process

When working on accessibility, it is critical to meticulously document everything. This not only keeps your team focused, but also establishes that you are working to improve accessibility in the event of a lawsuit.

Here are some things to think about documenting:

  • Your accessibility policy and statement
  • An executive summary outlining your website’s and mobile apps’ budgeting and resource allocation.
  • The items that need to be repaired, organized by specific issues and components.
  • A collection of preliminary feedback from user testers on major barriers and accessibility issues, as well as preliminary audit results.

Conclusion

By making your website more accessible to a wider range of audiences, you will not only increase the number of people who can access your product or service, but you will also gain a competitive advantage over your competitors. You’ll also save a lot of time and money by avoiding potential lawsuits.

Angular v12 Update – All you Need to Know

The latest update of Angular was released on May 12. It’s got a bunch of major changes that are essentially facilitating the Angular ecosystem’s transition to Ivy. They are calling it “Ivy Everywhere”. Deprecation of IE11 support along with other changes were also announced. 

Let’s check out all these changes-

What is “Ivy Everywhere” 

It means that the ‘View Engine’ will now be excluded in future releases. Existing libraries on View Engine will however still work with Ivy apps. It is supported for now but it’s only a matter of time, so it is advised that library authors start working on the transition to Ivy. 

New Canonical message ID format

According to Angular’s official blog, the team is ditching the legacy message ID formats for a new canonical message ID. A conical message Id is more resilient and intuitive as compared to multiple IDs in the i18n system. 

According to Angular.io

“These legacy message-ids are fragile as problems can arise based on whitespace and the formatting templates and ICU expressions. To solve this problem we’re migrating away from them. This format will reduce the unnecessary translation invalidation and associated retranslation cost in applications where translations do not match due to whitespace changes for example.”

Protractor Pushed Further

The community-driven end-to-end testing framework was given a pass for this release. The angular team is currently working with Cypress, WebdriverIO, and TestCafe to help users adopt alternative testing frameworks until the protractor becomes a part of a future release. 

Nullish Coalescing in Angular 12 

The Nullish coalescing operator is great for clean coding in Typescript classes. It has also made its way to Angular 12 templates to simplify complex conditionals. 

For example:

{{age !== null && age !== undefined ? age : calculateAge() }}

Becomes:

{{ age ?? calculateAge() }}

Stylish Enhancements

  • Angular components now support inline Sass in the styles field of the component decorator. 
  • You can add inlineStyleLanguage”: “scss” to angular.json to enable this feature, otherwise it’s available by default for new projects using SCSS.
  • Angular CDK and Angular Material now use Sass’s new module system. node-sass is no longer maintained, hence ensure that you’ve switched from node-sass to the sass npm package. 

Other Notable Features

  • Angular now supports Webpack 5
  • ng build now defaults to production
  • By default Strict mode is now enabled in the CLI.
  • Language service is also included as a default in the new update
  • Typescript version support updated to 4.2
  • Angular v12 will now show a deprecation warning for IE11 and it plans to end support with Angular v13

Conclusion

It’ll be exciting to see how all these new changes unfold and what Ivy has in store for the Angular v12 platform. With the focus converging towards more modern solutions and an evolving ecosystem, Angular v12 is doing away with certain features while adopting new ones. It’ll only help them better focus on what matters and provide better support to developers and users in the process.


Our Angular team here at Galaxy is also looking forward to testing how migrations and new projects on Angular 13 will turn out. If you’re in the market for Angular development partners then get in touch with us here and let’s discuss your project.

The Cost of Building an Ecommerce Website

Do you wish to start an online business and would like to know how much it would cost? How we wish there was a simple answer to this question. Numerous factors come into play while developing an Ecommerce website, and each of them will have an impact on the overall cost.

You can overshoot your budget if you do not have a clear action plan. We have penned this blog to give you a clear idea of how much an Ecommerce website costs.

How to Estimate the Cost of Creating an Ecommerce Website?

Several factors contribute to the overall cost of developing an online store. In general, some Ecommerce stores cost a few hundred dollars to set up, while others can cost tens of thousands of dollars to set up.

You will have to pay for the following:

  • Ecommerce software
  • Domain name
  • Ecommerce hosting
  • SSL certificate
  • Store theme and designs
  • Add-ons and extensions
  • Payment Gateway costs
  • Marketing and SEO
  • Maintenance

Ecommerce Software

The cost of Ecommerce solutions varies depending on their out-of-the-box features, the type of software, and the level of service they provide. There are numerous platforms to choose from, and selecting the right one is a critical step in launching an Ecommerce store. Let’s take a look at some of the platforms you might want to look into few platforms:

– Magento:- Magento provides both on-premise and cloud-hosted options, but many businesses are now turning to SaaS models because they provide continuous updates, including security patches. Magento does not include training wheels. There are also no on-site developers to whom you can turn for assistance in building your site. To build your site, you will need either a developer or a team of developers.

You can choose from Magento Community Edition or the Enterprise edition for your Ecommerce website. A Magento website is likely to cost you $5000 onwards. 

– Shopify:- Shopify was created to meet the needs of small businesses looking for an easy way to create online stores. If you’ve never worked with code before, it’s fairly simple to build a site using drag-and-drop areas. You can quickly set up a simple website; however, if you want to add more advanced features, you will need to add additional apps or custom coding. 

Domains purchased through Shopify start at $11 per year. Whereas, the majority of our Shopify website design projects start from $5,000. 

WooCommerce:- You can use it to build your online store by going through the installation process. However, to make your Ecommerce website attractive, flexible, and functionally operable you need to spend money on other essential things like- hosting, domain registration, themes, extensions, and customization.

However, to run your WooCommerce store, you need hosting, domain name, extensions, and a developer that can charge a monthly/yearly fee. You can build a feature-rich Ecommerce website using this platform for around $3,500. 

Ecommerce Hosting Costs

After you’ve registered a domain name, you’ll need to find a web host. BigCommerce and Shopify, for example, are cloud-based solutions that include web hosting as part of the subscription. That means, unlike Magento, you won’t have to look for third-party hosting or deal with the challenges of managing it.

Hosting Costs for Self-Hosted Ecommerce Website:- A basic website hosting plan can range from $40-$200/year, a domain name can cost $10-$15/year, and an SSL certificate can cost $70-$300/year. All of these expenses add up to a small but significant investment to create a starter Ecommerce store. For example, the Magento domains generally cost you from $10 – $15 per year. 

Hosting Costs for SaaS Ecommerce Platforms:– Shopify offers three membership levels: Basic Shopify ($29.99/mo.), Shopify ($79.99/mo), and Advanced Shopify ($299/mo.).

Note: This cost estimate is intended for small to medium-sized online stores. For high-volume stores, you’ll most likely need to upgrade to Shopify Plus, which costs thousands of dollars per month.

Ecommerce Website Design Costs

Creating a unique user experience with a website design that reflects your brand and keeps customers coming back is an important part of developing your ecommerce store. There are some standard costs associated with the design of your online store.

Store theme and design costs:- Some themes may not cost anything more than what you already pay to use the platform, whereas others may range in price from $60 to $200 per theme.

Add-on, plugin, and extension costs:- No ecommerce solution has everything you need for your online store, no matter how hard you look. This is where add-ons, plugins, and extensions, as well as their associated costs, come into play. For example:

Magento add-ons typically necessitate custom development, which can be costly. Magento’s marketplace has thousands of extensions ranging in price from $0 to $15,000. Whereas, Shopify merchants have access to hundreds of free and premium apps, with prices varying depending on the app.

Cost of Payment Gateway 

When selecting an Ecommerce platform, many beginners fail to consider payment processing fees. This can have a serious impact on your business by significantly increasing your costs and decreasing your profits. You’ll have to pay fees to each payment gateway you want to provide. Here’s an example of how it works:

PayPal charges 2.9 percent plus $0.30 for transactions exceeding $10.

Stripe charges 2.9 percent plus $0.30 per transaction.

They also offer some of the most flexible payment options.

Maintenance

Aside from the costs of technical maintenance, there are also costs for store maintenance. Larger companies may need to train and hire customer-service executives to improve their service. Random bugs and glitches add to the maintenance costs as well.

So, if you own a small to medium-sized business, expect to spend $500 to $1,250 per year on maintenance. 

We hope this article provided you with a good idea of how much an Ecommerce website costs in real dollars. If you want out-of-the-box solutions, you should consider hiring a professional Ecommerce website development agency to create a site for you.