Moving off of TypeScript, 2.5M lines of code

40 caliChander 8 9/17/2025, 3:42:04 PM engineering.usemotion.com ↗

Comments (8)

pedroigor91 · 1h ago
I still don’t understand why more startups don’t adopt .NET. It’s such a powerful technology. ASP.NET has some of the best performance benchmarks out there, C# is a rich and expressive language, and the ecosystem along with the standard libraries are stable and mature. You rarely run into the kind of headaches you often see with more “trendy” stacks.

In many cases, the bias comes down to perception — .NET is seen as “enterprise” or “legacy,” while in reality it’s open-source, cross-platform, and very well-supported by Microsoft and the community. For a startup that needs stability and performance without reinventing the wheel, .NET can be a huge win.

bigonlogn · 47m ago
Also, you can achieve some pretty fast development velocity with .NET. C# is intuitive and the tools are great. I know everyone complains about Visual Studio, but even it's most vocal complainers will admit it sets the industry standard for debugging.

One sticking point is that the tools, while community and small projects, are all behind a license. But, they are free for small teams making under something like $1M/year in revenue.

dafzal · 3h ago
With code becoming increasingly LLM generated, static typing improves evaluation of code compile time. So A+ for _type safe_ AI generated PRs :).
rvz · 3h ago
TypeScript is generally a horrific language to use on the backend and especially for performance and even as a compiler. Just ask the TypeScript developers rewritting the TS compiler in Golang with all the problems they encountered using it.

C# is a much better choice to use for the backend and also a better designed language in general.

CharlieDigital · 2h ago
They are close enough IMO that most devs can probably competently move between the two.

I think the big gains come from a more mature ecosystem of things that "just work". e.g. EFC vs Prisma or Drizzle with EFC having, for example, automatic change tracking and automatic up/down migrations.

The two NPM supply chain attacks this week also highlight another issue with the ecosystem in general.

We'll see how this change goes and evolves in Motion; C# is still relatively rare for startups, but at series C, it's no longer a seed stage startup and it increasingly feels like "it's just another distributed enterprise backend" (or at least it should be).

fabian-hiller · 3h ago
Great article!
dustingetz · 3h ago
they seem to mean on the backend
CharlieDigital · 2h ago
Motion eng here: yes, this is a pure backend change; FE remains powered by React and TS with no plans to change it any time soon.

Main pain points with TS have become more obvious as the team grew and the codebase resulted in a multitude of different models representing the same thing.

- Prisma model representing the things (plural because Prisma generates a ton of variants for the different read/write scenarios) going in/out of the DB

- Zod models for OpenAPI generation

- Zod models for deserialization where we have `jsonb`

- DTO models at the boundary

- Additional front-end payload models that wrap the DTOs

A developer building a simple API endpoint do to a read will often up writing a handful of models for the same entity to move it back and forth...A lot of this work simply ends up being related to the loss of runtime types requiring a lot more modeling work creating a spaghetti of Zod and types.

Lots of papercuts in day-to-day and increasingly difficult to get otherwise competent engineers onboarded.

At least I'm not under the impression that this is a Silver Bullet. Will C# make it better? We'll see!