# adapter pattern

Published articles for adapter pattern.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How Lovable Migrated lovable.dev from Next.js to TanStack Start

DevFeed: [How Lovable Migrated lovable.dev from Next.js to TanStack Start](<https://devfeed.tech/articles/how-lovable-cut-ttfb-49-after-leaving-next-js-18126.md>)

Original publisher: [Read original article](<https://hungrymindsdev.substack.com/p/how-lovable-cut-ttfb-49-after-leaving>)

Author: Alexandre Zajac

Published: 2026-08-24T15:30:50Z

Content type: article

Language: en

Sources: [Hungry Minds](<https://devfeed.tech/sources/hungry-minds.md>)

Topics: [Next.js](<https://devfeed.tech/topics/next-js.md>), [Development](<https://devfeed.tech/topics/development.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [dogfooding](<https://devfeed.tech/topics/dogfooding.md>), [Vercel](<https://devfeed.tech/topics/vercel.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>)

Tags: [adapter-pattern](<https://devfeed.tech/tags/adapter-pattern.md>), [development](<https://devfeed.tech/tags/development.md>), [dogfooding](<https://devfeed.tech/tags/dogfooding.md>), [framework](<https://devfeed.tech/tags/framework.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [trends](<https://devfeed.tech/tags/trends.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [vercel](<https://devfeed.tech/tags/vercel.md>)

### AI overview

The article describes Lovable's migration of lovable.dev from Next.js on Vercel to TanStack Start. It outlines a gradual rollout using parallel routing and feature flags, route grouping, shared framework-agnostic code, adapters, and AI-assisted migration.

### Source excerpt

PLUS: Semantic layer at PostHog 🏗, AliExpress fingerprinting 🔎 , Git serving rebuilt at Datadog 📈

## Generics vs. Interfaces

DevFeed: [Generics vs. Interfaces](<https://devfeed.tech/articles/generics-vs-interfaces-22185.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/12/generic-vs-interfaces.html>)

Published: 2022-12-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Binance](<https://devfeed.tech/topics/binance.md>), [backends](<https://devfeed.tech/topics/backends.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [adapter-pattern](<https://devfeed.tech/tags/adapter-pattern.md>), [api](<https://devfeed.tech/tags/api.md>), [api-server](<https://devfeed.tech/tags/api-server.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [decoupling](<https://devfeed.tech/tags/decoupling.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [function](<https://devfeed.tech/tags/function.md>), [generics](<https://devfeed.tech/tags/generics.md>), [go](<https://devfeed.tech/tags/go.md>), [go-api-server](<https://devfeed.tech/tags/go-api-server.md>), [gorm](<https://devfeed.tech/tags/gorm.md>), [http](<https://devfeed.tech/tags/http.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [reusable-code](<https://devfeed.tech/tags/reusable-code.md>), [solid](<https://devfeed.tech/tags/solid.md>), [solid-principles](<https://devfeed.tech/tags/solid-principles.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A video explains how generic functions and adapter functions can reduce code duplication and decouple business logic from API server handlers in Go. It demonstrates HTTP handlers, GORM database transactions, performance evaluation with PPROF, and generic data encoding and decoding.

### Source excerpt

Introduction In this video, Paulo shows the benefit of leveraging generic functions to write less code that does more. He starts by walking you through an API server he initially wrote that makes use of Go's default HTTP handlers with a sprinkle of GORM to manage database transactions. He then refactors that code by introducing the concept of adapter functions. Paulo's approach consists of decoupling his business logic with his API code. To achieve this, he defines an adapter function that will establish a bridge between his business logic and API server handlers. This proves to be an effective way to abstract request processing and handling. This approach also promotes code reusability because the business logic is loosely coupled with the API service invoking it.

## The Difference Between An Adapter And A Wrapper

DevFeed: [The Difference Between An Adapter And A Wrapper](<https://devfeed.tech/articles/the-difference-between-an-adapter-and-a-wrapper-22308.md>)

Original publisher: [Read original article](<https://www.thecodedself.com/The-Difference-Between-an-Adapter-and-a-Wrapper/>)

Author: Keegan Rush

Published: 2017-01-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coded Self](<https://devfeed.tech/sources/the-coded-self.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [adapter-pattern](<https://devfeed.tech/tags/adapter-pattern.md>), [bridge](<https://devfeed.tech/tags/bridge.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [interface](<https://devfeed.tech/tags/interface.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [library](<https://devfeed.tech/tags/library.md>), [object](<https://devfeed.tech/tags/object.md>), [programming](<https://devfeed.tech/tags/programming.md>), [third-party](<https://devfeed.tech/tags/third-party.md>), [toolbox](<https://devfeed.tech/tags/toolbox.md>)

### AI overview

This article explains the difference between the adapter pattern and wrappers. Adapters bridge incompatible interfaces by transforming input, while wrappers encapsulate code to simplify and constrain its interface, often around external libraries.

### Source excerpt

The adapter pattern and wrappers each solve common but distinct problems. Their common usage and similarities in implementation, however, can lead to confusion. Both terms seem to be used interchangeably when in fact there are a few key differences. The adapter pattern and wrappers are two very useful tools and you can benefit from having them properly labeled in your toolbox. Definition Adapter: An adapter allows code that has been designed for compatibility with one interface to be compatible with another. An adapter accomplishes this by transforming the input meant for Interface A into compatible input for Interface B. It is a bridge between two existing interfaces. Wrapper: A wrapper encapsulates and hides the complexity of other code. The most common use of a wrapper is in the Facade pattern. Third-party code can be hard to use due to the fact that the exposed interface is made to accommodate many use cases. When you are only concerned about a subset of the features or the exposed interface, or you find that using the library is hard or tedious, then what you need is to wrap it in a simpler, more constrained interface. Differences Intention: The end product may look similar but the intention is different. A wrapper as used in the Facade pattern is intended to simplify an interface to an external library. An adapter is intended to bridge the disconnect between one interface and another. You may look at a new library that you wish to use and write a wrapper to simplify and streamline its use. You may look at an interface, internal or external, that your existing code needs to conform to, and write an adapter to do that. Composition: A wrapper contains another object and wraps around it. It has the the sole responsibility of moving data to and from the wrapped object. An adapter doesn't necessarily contain or simplify an object, although this can be a secondary benefit of using adapters. An adapter transforms input to make it match the input required by another in