TypeScript, React and Node: what we build with it and why
TypeScript is our default for everything you see in a browser: websites, client panels, stores and web apps, with Node and Next.js for their back ends.
TypeScript, React and Node in real screenshots
The projects on this page on the screens from the portfolio and the case studies, each with a short description and the way to the full one.
WaveHost: site and panel
A site with an admin panel and a client panel with a Next.js API.
When TypeScript, React and Node, and when something else
A technology has to fit the place the code will run and the team that will take it over. The final choice is made in the quote, together with you.
We pick TypeScript, React and Node
Company sites with prerendering
This site generates ready HTML for every page at build time. A search engine gets the content without running scripts, and once loaded a fast React interface takes over.
An installable client panel
The VulCode client panel installs on a phone as a web app, with a manifest and a service worker. The same code and the same API serve the computer and the phone, with no separate mobile app.
Internal systems with permissions
The staff panel serves two brands' clients from one place, and an employee sees only their own brand. The boundary is checked in the API, and every sensitive change goes into an audit log.
A panel on a core in another language
The Flaem panel in React serves client, reseller and operator screens on top of a Rust API. The interface moves fast, while the money logic stays in the core.
Back ends with job queues
In WaveHost an order goes from the Next.js API into a BullMQ queue, and a separate process creates the machine in Proxmox or the game server in Pterodactyl. The panel answers at once, and long work blocks no one.
A messenger in the browser
Plazer's web app has its interface in TypeScript and calls encryption from a Rust core compiled to WebAssembly. The interface changes freely, and the cryptography is the same code as in the native apps.
We pick something else
An agent on a client's machine
The Flaem VPS agent is in Go: one binary that needs no Node installed and no Node version kept right on someone else's server.
A billing core for years
TypeScript types vanish after compilation, so data from the network needs separate validation. The Flaem core with billing and KSeF is in Rust, where reading the data checks its shape straight away.
Computation on every core
Node runs JavaScript in one event loop, so heavy computation holds up responses for everyone. We move such work out to a service in Rust or Go.
Widgets and background work on a phone
Home-screen widgets and full system notifications come only with a native app. Flaem and Plazer have phone clients in Kotlin and Swift.
A desktop program without a browser
The Flaem desktop app is in C# with Avalonia, which draws its own controls with no browser engine. A program open all day starts fast and leaves memory to other apps.
A service that recovers by itself
In Node an unhandled exception ends the whole process along with every connection. The router on Flaem nodes is in Elixir, because an OTP supervisor restarts only the part that failed.
TypeScript, React and Node compared, point by point
Each need on a row of its own, with what each of the two columns gives you on it side by side.
Company website
Client panel
Phone and web app
A panel on a platform core
Orders and background jobs
A messenger in the browser
Sign-in and accounts
TypeScript in all our code
How many lines we have written in TypeScript and JavaScript, and what part of everything we have written that is. We count the lines added in the commits of our repositories, language by language.
The libraries these projects stand on
From the dependency files of our repositories. With each, one sentence on what we use it for.
React 19 and Vite
Site and panel interfaces.
Next.js 15
The WaveHost panel API without a UI layer.
Prisma
The database in client panels.
better-auth
Sign-in with 2FA and passkeys.
BullMQ
Background job queues.
Tailwind CSS and motion
Styles and interface motion.
Our changes to other people's TypeScript projects
27 merged changes in 5 repositories. The maintainers of these projects reviewed our code and merged it into theirs.
Week by week
- TypeScript
- JavaScript
The languages of our changes
- JavaScript25 20%
- TypeScript2 1.6%
- Go33 26%
- PHP32 26%
- C#11 8.8%
- Rust10 8.0%
- Perl i JavaScript6 4.8%
- Python6 4.8%
- compromiseA natural language processing library in JavaScript: it splits text into sentences and words, tags parts of speech and conjugates verbs.21 merged changes12,161 stars on GitHub
- AutoprefixerA PostCSS plugin that adds browser prefixes to CSS based on Can I Use data.3 merged changes22,209 stars on GitHub
- vscode-neovimVim mode for VS Code where the editing is done by a real Neovim.1 merged change7,753 stars on GitHub
- MailDevAn SMTP server with a web interface for testing email during development.1 merged change6,135 stars on GitHub
- spacetimeA lightweight JavaScript date library with time zones.1 merged change4,107 stars on GitHub
Other technologies, and where their code runs
Each has its own page with projects on real screens and a comparison with the alternatives.
Questions about TypeScript, React and Node
Answers about TypeScript, React and Node, our projects and the numbers on this page.
Read next
Write-ups of the projects on this page and an overview of every technology.
A project in TypeScript, React and Node?
Describe what you want to build. We reply within an hour and tell you plainly whether this technology is a good choice.







