Development
Websites, interactive tools and data
In this page, I outline the technology stack that I use and how I can help you bring your ideas to life by working with your own developers, or engaging me to build it for you.
As a sole trader, I rely heavily on reliable and efficient technical stack. For me that centres around:
- Elixir, Phoenix, LiveView - for web applications
- Tailwind CSS - for front end development
- Postgres - a database that is more than a database!
Below I outline the qualities of this stack and the types of developments I work on.
The combination of Elixir, Phoenix LiveView and Tailwind enables me to rapidly iterate on ideas and see them come to life.
Elixir
Elixir is a dynamic, functional programming language designed for building scalable and maintainable applications. It runs on the Erlang Virtual Machine (BEAM), which is known for its high concurrency, fault tolerance, and real-time capabilities.
Benefits of Elixir include:
- Concurrency: Elixir is designed from the ground up for concurrency, making it easy to write applications that can handle a large number of simultaneous requests.
- Fault tolerance: Elixir's fault tolerance features, such as supervision trees, make it easier to build applications that are resilient to failures.
- Scalability: Elixir applications can be easily scaled horizontally by adding more nodes to a cluster, handling increased load and traffic.
- Productivity: Elixir's powerful language features, such as pattern matching and macros, make it possible to write code that is both concise and expressive. The Elixir language and APIs are very stable, meaning that once you know them, they’re unlikely to keep changing.
- Community: Elixir has a vibrant and supportive community, with a wealth of resources and libraries available online.
These capabilities and Elixir tooling have allowed developers to be productive in many areas, such as web development, embedded software, machine learning, data pipelines, and multimedia processing and many more. You can learn more about who has adopted Elixir and why at the official Elixir cases page.
Phoenix and Phoenix LiveView
Phoenix is a modern web framework known for speed, scalability and ease of use. As it is written in Elixir and runs on top of the Erlang Virtual Machine (BEAM), it inherits their advantages, including:
- Concurrency: Phoenix applications can handle a large number of simultaneous requests.
- Fault tolerance: Phoenix applications are able to recover quickly from failures.
- Scalability: Phoenix applications can be easily scaled horizontally by adding more nodes to a cluster.
Phoenix LiveView
Phoenix LiveView is a real-time framework that allows you to build interactive web applications without having to write any (or very minimal!) JavaScript. It simplifies what is required to create a front-end by using server-side rendering to keep the browser in sync with the server. This results in a much faster and more responsive user experience.
There are a number of benefits to using Phoenix LiveView, including:
- Real-time updates: LiveView allows you to build web applications that update in real time, without the need for page refreshes.
- Reduced complexity: LiveView eliminates the need for complex JavaScript code, which can make your codebase easier to maintain.
- Improved performance: LiveView applications are often faster than traditional web applications, as they do not have to send as much data over the network.
If you are looking for a framework that can help you build fast, scalable and interactive web applications, then Phoenix LiveView is a great option. LiveView is particularly well-suited for applications that require real-time updates, such as chat applications, dashboards, and multiplayer games.
Learn more about Phoenix and LiveView at the offical Phoenix Framework website.
Learn more about Phoenix and LiveView at the offical Phoenix Framework website.
Tailwind CSS
Tailwind CSS is a utility-first CSS framework that provides the front-end building blocks to build modern websites and applications. It's built on top of modern CSS features like flexbox, grid, and transforms, and it's designed to be easy to use and customize.
There are many benefits to using Tailwind CSS, including:
- Rapid development: Tailwind CSS's utility classes make it easy to quickly and easily style your website or application.
- Customisation: Tailwind CSS is highly customizable, so that you can easily create your own custom themes and components.
- Responsiveness: Tailwind CSS includes built-in support for responsive design, so your website or application will look great on all devices.
- Community: Tailwind CSS has a large and active community, so there's always someone there to help you if you need it.
Tailwind CSS is a great choice for anyone who wants to build modern websites and applications quickly and easily. It's easy to learn and use, and it's highly customizable, so that you can create your own unique designs. It works exceptionally well with Elixir’s Phoenix web framework.
You can learn more at the official Tailwind website.
Postgres
Postgres, also known as PostgreSQL, is a free and open-source relational database management system (RDBMS) known for its reliability, stability, and extensibility. It is one of the most popular databases in the world and is used by many large organisations, including Reddit, Spotify, and Instagram.
It’s benefits include:
- Reliability: Postgres is known for its reliability and stability. It has a long history of being used in production environments and has a reputation for being able to handle large amounts of data and traffic without crashing or losing data.
- Scalability: Postgres is highly scalable and can be used to store and manage large amounts of data. It can also be easily scaled up or down to meet changing needs.
- Extensibility: Postgres is highly extensible and can be customized to meet the needs of specific applications. It has a wide range of features and extensions that can be used to add functionality to the database.
- Open source: Postgres is open-source software, which means that it is free to use and modify. This makes it a popular choice for organizations that want to avoid the costs of commercial database licenses.
In addition to its core features as a relational database, Postgres also offers a number of advanced features that make it more than just a database. These features include:
- Full-text search: Postgres supports full-text search, which allows you to search for words and phrases within text columns, and depending your scale, potentially avoiding the need for search engines such as ElasticSearch.
- Geospatial support: Postgres supports geospatial data types and functions, which allow you to store and query data that represents geographic locations.
- JSON support: Postgres supports the JSON data type, which allows you to store and query JSON data.
- Replication: Postgres supports replication, which allows you to create copies of your database on other servers. This can be used for disaster recovery, load balancing, or to improve performance.
Postgres is a powerful and versatile database that is suitable for a wide range of applications. Learn more at the official Postgres website.
Types of development
Using the above stack, I work on the following types of projects:
- Website development
- Functional prototypes
- Data visualisations
- Interactive tools
- Data processing
- Creative coding.
Because of the productivity gains and desirable attributes of Elixir, Phoenix, LiveView, Tailwind and Postgres, I’ve built a simple and easy to use Website Content Management System (CMS) with this stack. It powers this website, and it could power yours too!