Metaculus / Metaculus/metaculus

Repository, Build Speed and DX Optimization Initiative

Open
#3,959 1 comment 0 reactions 1 assignee View on GitHub

@cemreinanc is already working on this.

Since Dec 19, 2025.

Stale Technical
Dominant language
TypeScript
Stars
113
Forks
34
Avg merge
16h 34m
Merged PRs (30d)
30

Description

Overview

We've identified a comprehensive set of optimizations to improve our repository performance, build speeds, and developer experience. This epic tracks all implementation work.

Goals

  • ✅ Reduce local and CI build times by 60-80%
  • ✅ Improve developer experience and editor performance
  • ✅ Standardize and modernize tooling stack
  • ✅ Optimize CI/CD pipeline
  • ✅ Prepare codebase for future framework upgrades

Suggested Improvements

  • #3960
  • #4547
  • #3961 – Already tested and seems to be working well. We can set this up in a new branch for broader team testing. Shaves drastically a lot of build time compared to webpack. Note: requires a small change to our "update available" banner logic. (current build takes around 430 seconds)
  • Drop SCSS compilation – Convert SCSS files to PostCSS or Tailwind directly. Removes a whole compilation step and simplifies our styling pipeline. (didn't test the impact yet, it may be minimal, but still makes sense to standardize to one toolset given that scss is used in only couple of files)
  • #4611 – Much faster installs and runs than npm. Could save us time on CI (current npm install takes around 90 seconds)
  • Replace ESLint/Prettier with Biome or oxlint/oxfmt – Not related to direct build time but can really increase editor performance in local machines and also speed up our continuous integration checks (these are also should count as build time)
  • #4097 – uv can replace both poetry and pyenv and have much better performance in both fronts.
  • #4426 – instead of flake8 / black, ruff combines linting, formatting and import sorting in one tool and much more performant.
  • #4162 – Restructure for better layer caching and parallelization.
  • #4094 – Enable docker layer caching between deployments and enable heroku preboot support for zero-downtime upgrades
  • #4093 – Have ephemeral preview environments for each PR for quick testing and QA
  • Upgrade to Tailwind CSS v4 – A bigger lift we can tackle later. Takes time but sets us up for the newest utilities and improvements.

Target Metrics

  • Build time under 3 minutes
  • Commit to Deploy time under 5 minutes

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.