Skip to content

bug: default create-t3-turbo template is significant slower than create-t3-app #1279

@philippmossier

Description

@philippmossier

Provide environment information

System:
OS: macOS 14.6.1
CPU: (10) arm64 Apple M1 Max
Memory: 10.66 GB / 64.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 22.12.0 - ~/.local/state/fnm_multishells/11710_1735975103374/bin/node
Yarn: 1.22.22 - /opt/homebrew/bin/yarn
npm: 10.9.0 - ~/.local/state/fnm_multishells/11710_1735975103374/bin/npm
pnpm: 9.15.2 - /opt/homebrew/bin/pnpm
bun: 1.1.42 - /opt/homebrew/bin/bun
Watchman: 2024.09.30.00 - /opt/homebrew/bin/watchman

Describe the bug

🐛 Bug: t3-turbo API routes significantly slower than create-t3-app using the same Supabase setup

📝 Description

I've noticed a significant performance difference between the t3-turbo template and the create-t3-app template when interacting with the backend. Specifically, the post.create, post.all and post.getLatest routes take 1 to 1.4 seconds in t3-turbo, whereas similar API routes in create-t3-app take around 300 to 650 ms.


Update 11.Jan.2025 : Requests time are about 150ms for create-t3-app and 1000 -1300 ms for create-t3-turbo when removing the artifical delay (both use the same supabase DB connection)


Both projects were tested under similar conditions:

  • Database: Supabase (Postgres) using transaction pooler connection string.
  • ORM: Drizzle.
  • API Client: tRPC.
  • Network: Fast internet connection (~200 Mbps download, ~50 Mbps upload).
  • Location: Europe (matching the Supabase region).
  • Auth: Default auth setup via discord

Setup Route Time (ms)
t3-turbo post.all ~1000-1400ms
t3-turbo post.create ~1000-1300ms
create-t3-app post.getLatest ~300-650ms
create-t3-app post.create ~300-650ms

🖼️ Screenshots for Comparison

create-t3-app

image

🐢 t3-turbo

image

To reproduce

Steps to Reproduce

  • Create a new project using create-t3-turbo.
  • Set up the Supabase database and connect it using POSTGRES_URL.
  • Use the default Drizzle setup for database queries.
  • Test the post.create and post.all tRPC routes using browser dev tools.
  • Compare the performance against a similar setup using create-t3-app with the same database.
  • Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      No labels
      No labels

      Type

      No type

      Projects

      No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions