Select Interactive
Tech Stack & Tools6 min read

Optimizing Our Developer and User Experience

A look into why the tools a development team chooses, TanStack, shadcn/ui, and TypeScript, have a direct impact on the quality, speed, and longevity of the products we build for clients.

Select Interactive

Engineering Team

Most clients never think about the tools their development team is using, and that makes sense. You hired us to build something great, not to explain our toolbox. But the truth is, the tools a team chooses have a very real effect on what you get as a client: how long it takes to build, how reliable it is, how well it performs for your users, and how easy it will be to grow or change down the road.

At Select Interactive, we've deliberately built our entire development approach around three things: the TanStack ecosystem of libraries, shadcn/ui for our component system, and TypeScript as the language we write everything in. This article is for the non-technical reader who wants to understand why those decisions matter, and specifically, how they benefit you and your project.

Technical Decisions Aren't Just Technical, They Affect You

Here's the clearest way to explain it: when a development team reaches for a popular tool because it's familiar rather than the right fit, or builds something on a framework that wasn't designed for the problem at hand, you eventually feel the consequences. Projects take longer. Bugs are harder to trace. Adding a new feature requires reworking something that was already built. Costs go up.

The inverse is also true. When a team builds on tools that are well-designed for the task, tools that catch mistakes early, handle complex problems cleanly, and produce code that's easy to maintain, projects move faster, break less often, and cost less to extend over time.

That's the goal behind every tool we've selected. We're not chasing what's new for the sake of it. We're working with tools that genuinely make the end product better for you, and for the people who will use it.

TypeScript, Think of It as Spell-Check for Code

Most web development is done in JavaScript, a flexible, powerful language that has one notable weakness: it will let you make certain kinds of mistakes and only tell you about them once the code is actually running. That means a bug might only surface when a user encounters a specific sequence of actions, on a particular screen, under conditions you never tested.

TypeScript is a layer on top of JavaScript that catches those mistakes before the code ever runs, right in the editor, as it's being written. A simple analogy: Microsoft Word underlines a misspelling before you send the document. TypeScript underlines a code mistake before it reaches your users.

What this means for your project

  • Fewer bugs that reach real users. An entire class of common web errors, passing the wrong kind of data between parts of the application, calling a function with the wrong inputs, expecting a value that doesn't exist yet, are caught at development time, not in production.
  • Faster, safer changes. When we need to add a feature or modify something that already exists, TypeScript tells us everywhere that change needs to be reflected. Refactoring confidently is much harder without it, and riskier.
  • Easier for future developers to understand. If your project ever needs to be maintained or extended by a different team, TypeScript-annotated code is dramatically easier to read and understand than plain JavaScript. The types serve as built-in documentation.

TypeScript doesn't slow us down, it catches the mistakes that would have slowed us down later, when they're much more expensive to fix.

TanStack, Purpose-Built Tools for the Problems We Actually Solve

The TanStack ecosystem is a collection of specialized libraries, each one focused on a specific challenge in modern web development. Think of it less like a single big framework and more like a set of precision instruments, each designed to do one thing exceptionally well.

Getting data to your users at the right moment

Web applications constantly communicate with servers, fetching your account information, loading product data, submitting a form. Managing that communication well is surprisingly complex. Data can go stale. The same data might be needed in five different places on the page. A slow network response shouldn't freeze the entire screen.

TanStack Query handles all of this automatically. It caches data intelligently so your application doesn't make the same network request five times when once would do. It refreshes data in the background so what you're looking at stays current. It handles loading and error states consistently across the whole application. The result: your users see accurate, up-to-date information faster, with fewer loading spinners and fewer error screens.

Navigation that works, and that search engines understand

How a user moves between pages in your application has a big impact on both the experience and the performance. TanStack Router handles page-to-page navigation in a way that's both smooth for the user and technically correct. Every URL, every parameter, every filter, all fully type-checked, which means navigation bugs are caught before they ship.

For public-facing websites, we pair Router with TanStack Start, which adds server-side rendering. In plain terms: the server prepares the full page content before sending it to the browser, rather than making the browser assemble everything from scratch. This matters for two concrete reasons: pages load faster for users on slower connections, and search engines like Google can read and index your content reliably, which directly affects how discoverable your site is.

Forms that behave the way users expect

Forms are deceptively difficult to build well. Validation that runs at the right moment, error messages that appear in the right place, fields that respond correctly as users type, getting all of that right requires a lot of careful state management. TanStack Form handles the hard parts under the hood, so we spend our time on the user experience rather than reinventing form logic from scratch. The result is forms that feel polished, validate correctly, and don't lose user input when something goes wrong.

shadcn/ui, A Component System That Works for Your Brand, Not Against It

Every visual element on a website or web application, buttons, forms, dropdown menus, dialog boxes, navigation, is built from components. Most development teams either build these from scratch (slow and error-prone) or rely on a pre-built component library (fast to start, difficult to customize).

shadcn/ui takes a different approach. Instead of being a library you depend on, one that updates on its own schedule and can break your project, it gives you component code that lives directly inside your project. We own it. We can read it, modify it, and adapt it to your design without fighting against a third-party library's assumptions.

What this means in practice

When a designer specifies that the primary button should be a particular shade of your brand color, with a specific border radius, in a custom font, that's a one-line change. When the dropdown menu needs to behave differently than the default, we edit it. There's no workaround, no hacky override, no fighting the component to get it to look the way it should. Your design wins.

This also means that if shadcn/ui releases an update, we adopt what's useful on our own timeline. Our project isn't dependent on an external library's release schedule. That independence is valuable when you're building something that needs to be maintained over months or years.

Consistency across every screen

Because all of our UI components come from the same system, and share the same design tokens for color, spacing, and typography, everything on the screen looks and behaves consistently. A button looks the same whether it appears on the homepage or buried three levels deep in an application flow. That consistency is a significant part of what makes a product feel professional and trustworthy.

Accessibility, Baked In, Not Bolted On

Accessibility means making sure your web product works for every user, including people who navigate by keyboard instead of mouse, people who use screen readers due to visual impairments, and people on low-powered devices or slow connections. It's both a legal consideration and simply the right thing to do.

A challenge with accessibility is that it often gets treated as an afterthought, something you layer on at the end of a project. That approach is expensive and incomplete. shadcn/ui is built on a primitives library called Radix UI that handles a wide range of accessibility behavior at the component level, automatically.

  • Keyboard navigation. Menus, dialogs, tabs, and dropdowns all respond to keyboard controls the way assistive technology users expect, without any extra effort on our end.
  • Screen reader support. The components communicate correctly with screen readers, announcing state changes, labeling interactive elements, and conveying context, out of the box.
  • Focus management. When a dialog opens, focus moves to it automatically. When it closes, focus returns to where the user was. This is the correct behavior and it's easy to get wrong when building from scratch.

The benefit to you: accessibility compliance is a meaningful part of the foundation, not an expensive last-minute addition. You're building on components that already behave correctly, which means your product reaches a wider audience and carries lower legal risk from the start.

Built for the Long Haul, Performance, Longevity, and No Lock-In

One of the most common hidden costs in web development is the cost of being locked into a platform or technology that no longer serves you. Templates you can't customize without paying for upgrades. Plugins that break when the underlying platform updates. A codebase that only the original vendor can work on.

Our stack, TanStack, shadcn/ui, TypeScript, is entirely open-source and free of vendor lock-in. The code lives in your project. It doesn't require a paid subscription to function. Any competent development team can read and extend it. If you ever need to bring in additional developers or transition maintenance to another team, the codebase is understandable and standards-based.

Performance your users will notice

Speed isn't just a nice-to-have, it affects whether users stay on your site and whether they convert. Studies consistently show that even a one-second improvement in page load time can meaningfully increase engagement and reduce bounce rates. For e-commerce and lead-generation sites, the impact is directly measurable in revenue.

The tools we use are designed with performance as a core principle. TanStack Start's server-side rendering means users see content on the first load, rather than waiting for JavaScript to download and run. TanStack Query's intelligent caching means subsequent interactions feel nearly instant. shadcn/ui's Tailwind-based styling produces lean CSS with no unused rules. These aren't theoretical gains, they're the kind of performance improvements that show up in Google's Core Web Vitals, which are a direct ranking signal for search results.

Ready to grow with your product

The projects we build aren't throwaway prototypes. They're meant to serve your business for years. The tools we've chosen reflect that. TypeScript makes it safe to add features without breaking what already works. The TanStack ecosystem scales from a marketing website to a complex data platform without requiring a rewrite. shadcn/ui components adapt to new design directions without fighting you. We build with the end in mind, because a product that can grow and evolve is worth significantly more than one that has to be replaced.

The Bottom Line for Clients

The tools Select Interactive uses aren't chosen to impress other developers, they're chosen because they result in better outcomes for the people and organizations we build for. Fewer bugs means less time and money spent fixing things after launch. Accessible components mean a wider audience from day one. Performance built into the foundation means better search rankings and happier users. No lock-in means you own what you pay for.

TypeScript, TanStack, and shadcn/ui together represent a genuinely modern and thoughtfully assembled approach to web development in 2026, one built for real-world complexity, not just ideal conditions. We're proud of the stack we've assembled, and we're even more proud of what it lets us build for our clients.

If you're exploring a new web project, whether it's a marketing site, a customer portal, or a full-scale web application, we'd be glad to talk through what this approach looks like for your specific goals.

Work With Us

Have a project in mind?

We build the web’s most demanding applications. Let’s talk about yours.

Get in Touch