Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[doc] add dart tui project proposal #60158

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions docs/gsoc/Dart-GSoC-2025-Project-Ideas.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ For GSoC related discussions please use the [dart-gsoc group](https://groups.goo
* Liam Appelbe ([liamappelbe](https://github.com/liamappelbe)) `[email protected]`
* Huan Lin ([hellohuanlin](https://github.com/hellohuanlin)) `[email protected]`
* Justin McCandless ([justinmc](https://github.com/justinmc)) `[email protected]`
* Mudit Somani ([TheComputerM](https://github.com/TheComputerM)) `[email protected]`
* More to come!

## Project Application Process
Expand Down Expand Up @@ -121,6 +122,28 @@ Project:

**Expected outcome**: A PR merged in Flutter

## **Idea:** TUI framework for dart

- **Possible Mentor(s)**: `[email protected]`
- **Difficulty**: Medium
- **Project size**: Medium (175 hours)
- **Skills**: Dart, CLIs

**Description**: Dart is already used to create GUI applications through Flutter, it would be great if it can also be used to develop good looking TUI applications. Currently the language of choice for TUI development would be either Golang or Python due to their developed package ecosystems (like [charm](https://charm.sh/) or [textual](https://www.textualize.io/)) so a package that makes TUI development easier and faster on dart would increase its adoption in that space.

Project:
* Design composable methods to render components and text on the terminal
* Include popular components like inputs, checkboxes and tables by default
* Intuitive way to create your own custom components for the terminal
* Ensure library works with popular state management libraries in dart

**Good Sample Project**:

* Composable methods to style text on the terminal (kinda like [libgloss](https://github.com/charmbracelet/lipgloss)).
* Component based model to render and interact with terminal based text inputs and checkboxes (kinda like [bubbles](https://github.com/charmbracelet/bubbles)).

**Expected outcome**: A package on pub.dev with terminal primitives like text styling, inputs, checkboxes, tables, layouts, spinners etc.


## TODO: More ideas as they come!

Expand Down