quickwit-oss / quickwit-oss/quickwit

Make dev XP nicer with the UI

Open
#1,620 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
11.7k
Forks
597
Avg merge
2d 22h
Merged PRs (30d)
37

Description

Working on the UI or something related to it requires building the UI with the latest JS/TS code.

Problem 1

With the current setup, the following annoying scenario can happen:

  • you build the UI with yarn
  • you work on the codebase
  • you execute cargo r run
  • you can go to localhost:7280/ui and check it works

The problem is that the assets served by the server are not updated, so you may think it works (or not).

Problem 2

To publish quickwit with cargo, we need to commit the UI-built assets. This is not currently done.

Proposed solutions

Solution 1 (lame)

A simple way to avoid this issue is to... force the developer to use yarn start to start the UI. This means that the quickwit server in dev mode will not serve UI assets in dev mode by default. We could display a message to the user on a GET request to HTTP://localhost:7280/ui.

We also need to commit the assets for the releases. We can do it in a specific directory only used when building the binary.

Solution 2

Do something smarter (I will complete this in 1 day).

Bonus

Additionally, it would be very nice to put the git info in the built react app and show it in the nav bar or somewhere at the bottom.

Contributor guide

Open the contributing guide

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.

Research direction

Start by tracing the UI build launched with yarn and the server path reached by cargo r run at /ui, then inspect how release binaries obtain UI assets. Define the intended development and release asset flows before changing them. Done means development serves current UI assets reliably and published binaries include the required assets; the optional git-info display needs separate scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react, rust, typescript
Domain
build-system, developer-experience, frontend, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.