What news from AWS re:Invent last week will have the most impact on you?
Amazon Q, an AI chatbot for explaining how AWS works.
Super-fast S3 Express storage.
New Graviton 4 processor instances.
Emily Freeman leaving AWS.
I don't use AWS, so none of this will affect me.
Low Code / No Code / Software Development

Less Code Alternatives to Low Code

The goal is to deliver as much value with as little code as possible. Let’s look at the techniques, tools and frameworks for achieving more with less.
Nov 3rd, 2023 7:24am by
Featued image for: Less Code Alternatives to Low Code
Image from New Africa on Shutterstock.

In the first part of our series, we broke down the ideological difference between “low code” and “less code.” We established that while low-code solutions democratize software development, they come with limitations, particularly with respect to the development of sophisticated systems.

Each line of code added to a system contributes to the complexity and maintenance burden of that system. For those reasons, the goal is for teams to deliver as much value with as little code as possible. In this part, we’ll look at the techniques, tools and frameworks that make it possible to achieve more with less.

Shifting Mindset

Embracing a “minimalist coding” philosophy is foundational. It’s anchored in a gravitation toward clarity, prompting you to identify the indispensable elements in your code, and then discard the rest. Is there a more succinct solution? Can a tool achieve this outcome with less code? Am I building something unique and valuable or rehashing solved problems?

Every line of code must be viewed for the potential value it delivers and the future burden it represents. Reduce that burden by avoiding or removing code when you can and leveraging the work of others.

Adapting Processes

This lean toward “less code” doesn’t stop at individual developers but permeates the software development life cycle. Think of code reviews not as critique sessions, but as collaborative efforts to streamline, clarify and simplify. In a similar vein, refactoring should be seen as a routine exercise to use new knowledge to improve old code. A less cluttered, more streamlined codebase is like a well-organized workspace: It makes it easier to get things done. Automated testing works hand-in-glove with this, acting as a safety net. It allows you to trim away at the codebase and replace components while ensuring the new version performs as expected.

Frameworks and Tools to Move from Low Code toward Less Code

Modern frameworks offer a significant enhancement to development productivity, primarily by reducing the amount of code written to perform common tasks. Additionally, the underlying code of the framework is tested and maintained by the community, alleviating peripheral maintenance burdens. The same goes for code generators; they’re not merely about avoiding repetitive keystrokes, but about ensuring that the generated code itself is consistent and efficient. In addition to this, we are starting to see technologies in the AI and automation space offering new support to developers, allowing for more productivity.

As we go through this section, we’ll first look at tools that help with frontend development. After that, we’ll zoom in on tools that I think really show off the benefits of the “less code” approach.

Frontend Tool Alternatives to Low Code

Many options exist for frontend development, and while several are well known, the space moves rapidly and new tools become available often. This constant fluctuation in tools can make the space seem fickle, like teams are just following trends, but the reality is usually different. These newer entrants tend to solve new problems, solve existing problems in a new way or optimize for a specific niche. They’re built with the hindsight of the established tools, often using them as the foundation for enhancement or with interoperability to help adoption.

For example, Next.js builds on React, adding opinion and features that help with the creation of web applications. It assists with common challenges like serving a mix of static and server-side-rendered content, page-based routing, data fetching, middleware and many other tasks.

Next.js leverages the file system to provide automatic routing, eliminating the need for a separate routing configuration. This greatly simplifies the code, making it easier to understand and maintain.

In this structure, the app/page.js and app/about/page.js files automatically become page routes in the application (/ and /about, respectively).

Next.js also facilitates backend development by allowing developers to create custom router handlers for APIs; these files are named [route.js](<>) by convention.

By comparison Astro is more focused on content, with features that ensure high performance page-load times for sites like blogs, portfolios, e-commerce or marketing. Astro’s partial hydration feature is a game-changer when it comes to reducing the amount of code shipped to the browser. Unlike traditional frameworks that hydrate the entire application, Astro only sends the necessary JavaScript to the browser, drastically reducing load times.

While Astro provides its own component framework, it’s also interoperable with a number of others like React, Svelte and Vue.

Other tools focus on build-time improvements, hosting and previews, accessibility, automated testing, type-safety or any number of other tasks peripheral to developing sites and apps.

Exploring and choosing tools that are appropriate for your circumstances, rather than those that are most familiar, can drastically affect your applications with very little investment.

Backend Tool Alternatives to Low Code

At times the pace of change for backend tools has been quite leisurely. Recently, however, this space has been far more energetic, and it’s been easy to miss the full spectrum of new tools. As with frontend development, these new options tend to solve new problems or build on existing options to further enhance productivity and stability.

Failing to explore these options leaves teams working on low value, undifferentiated work or assuming that past challenges remain unsolved.

For example Supabase, which builds on PostgreSQL, along with a number of other open source tools, offers a full suite of backend development tools for building and hosting APIs, data persistence, functions and authentication, all enhancing the PostgreSQL database.

For example, here is how Supabase enables user authentication with minimal code:

Another area of progress is in Infrastructure from Code, also known as self-provisioning runtimes. They’re tools, frameworks or platforms that remove as much of the undifferentiated work of building applications as possible, allowing teams to focus on just the code specific to their product. Some emerging options in this space include Nitric, Encore, Shuttle, Ampt and Wing, each with a variety of approaches to the problem and their applicable niche.

Here is an example of an API built with Nitric that eliminates the need for a deployment project built with traditional IaC tools. Instead, to deploy the necessary infrastructure, the Nitric CLI will automatically create a resource specification, then configure and provision the API gateway and document collection required to run your application code.

Adapting to Change

In an era where agility and efficiency are paramount, “less code” isn’t just about writing fewer lines. It’s about harnessing the best tools, practices and mindset to deliver more value with less effort. As the technology landscape continues to evolve, it’s imperative for developers and teams to stay curious and adapt.

The changing landscape of tools and products isn’t about following trends; it’s about abstraction, efficiency and offering new ways to build better systems.

Group Created with Sketch.
TNS owner Insight Partners is an investor in: Pragma.
THE NEW STACK UPDATE A newsletter digest of the week’s most important stories & analyses.