# New Open Source project: Join and learn

**URL:** <https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648>\
**Category:** Announcements\
**Created:** [June 7, 2022, 5:01pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648 "2022-06-07T17:01:01Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![klequis](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/klequis/32/1917_2.png) [@klequis](https://discourse.haskell.org/u/klequis)\
**Post date:** [June 7, 2022, 5:01pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/1 "2022-06-07T17:01:01Z")

</div>

We have a group of 5 Haskllers, (some quite experienced, some not so much) joining together to work on a new open source project. The overall goal is to create something that is a useful/valuable addition to the ecosystem while improving our Haskell skills.

We have just begun and are deciding what the project will be (some ideas below) and are looking for additional collaborators. All levels of contribution are welcome including suggestions on what the project should be.

Here are our initial thoughts so far:

- A parallel library to go’s [bubbletea](https://github.com/charmbracelet/bubbletea) but written in Haskell. Maybe even a naive rewrite?
- A database library. Unfortunately database libraries are very common in Haskell
- Some kind of contribution to/iteration on [dear-imgui](https://github.com/haskell-game/dear-imgui.hs)
- A reference project of sorts in full-stack Haskell. Website/game etc.
- A declarative language for REST apis that generates encoding/decoding code in various programming languages. See [servant-elm](https://hackage.haskell.org/package/servant-elm) for example.
- A generic package manager. A lot of people in Haskell write their own programming languages. Maybe we could provide an easy way to set up a package manager/documentation for some arbitrary programming language.

Please post here if you would like to join or if you just want to contribute a project idea. We will be having a video call in the coming weeks to discuss.

Current discussion members  
@andreabedini @santiweight @odcameron @niko @klequis

---

<div class="post-metadata">

**Author:** ![reuben](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/reuben/32/4733_2.png) [@reuben](https://discourse.haskell.org/u/reuben)\
**Post date:** [June 7, 2022, 8:08pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/2 "2022-06-07T20:08:18Z")

</div>

Re. bubbletea, you might want to check out Haskell’s `brick` package, which I really like.

I like the idea of a reference project in full-stack Haskell, that showcases a bunch of the nicest Haskell packages like lens, diagrams, foldl, megaparsec, streamly, servant, etc etc packaged up in a web game or similar, but focuses on being beautifully documented and transparent.

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [June 7, 2022, 9:20pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/3 "2022-06-07T21:20:04Z")

</div>

> [@reuben](#):
>
> Re. bubbletea, you might want to check out Haskell’s `brick` package, which I really like.

brick doesn’t support windows, btw. That’s also a problem for ghcup.

---

<div class="post-metadata">

**Author:** ![jaror](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jaror/32/3271_2.png) [@jaror](https://discourse.haskell.org/u/jaror)\
**Post date:** [June 7, 2022, 9:26pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/4 "2022-06-07T21:26:45Z")

</div>

I’ve looked at [Windows support for vty](https://github.com/jtdaugherty/vty/issues/219#issuecomment-1139945890) and by extension brick. I don’t think it is particularly difficult. Although I don’t have that much time to work on it.

---

<div class="post-metadata">

**Author:** ![andreabedini](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/andreabedini/32/2201_2.png) [@andreabedini](https://discourse.haskell.org/u/andreabedini)\
**Post date:** [June 8, 2022, 2:24am UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/5 "2022-06-08T02:24:27Z")

</div>

I think brick can still be used a starting point. bubbletea seems to follow the same MVU pattern as brick.

---

<div class="post-metadata">

**Author:** ![Ericson2314](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ericson2314/32/1026_2.png) [@Ericson2314](https://discourse.haskell.org/u/Ericson2314)\
**Post date:** [June 8, 2022, 4:22am UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/6 "2022-06-08T04:22:19Z")

</div>

If I may plug my coworkers’ work: [reflex-vty](https://hackage.haskell.org/package/reflex-vty). Same underlying stuff as [reflex-dom](https://hackage.haskell.org/package/reflex-dom). Not sure what other pair of libraries allow one to do same handling of interactivity for web and terminal alike :).

---

<div class="post-metadata">

**Author:** ![Jappie](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jappie/32/5394_2.png) [@Jappie](https://discourse.haskell.org/u/Jappie)\
**Post date:** [June 8, 2022, 7:38am UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/7 "2022-06-08T07:38:25Z")

</div>

I’d suggest trying to contribute to existing libraries instead. Pretty much everything is understaffed. For example amazonka has several issues open blocking an v2 release, persistent doesn’t support UUID’s out of the box or data-pool doesn’t even have tests!

This isn’t as exciting as creating your own library, but it would likely have a bigger impact.  
Furthermore, maintainers are often knowledgeable domain experts who happily share their wisdom.

---

<div class="post-metadata">

**Author:** ![simonmic](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/simonmic/32/1796_2.png) [@simonmic](https://discourse.haskell.org/u/simonmic)\
**Post date:** [June 8, 2022, 8:01am UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/8 "2022-06-08T08:01:00Z")

</div>

> I don’t think it is particularly difficult. Although I don’t have that much time to work on it.

No-one does, alas. It would be a great contribution to the Haskell ecosystem.

---

<div class="post-metadata">

**Author:** ![kanishka](https://avatars.discourse-cdn.com/v4/letter/k/3e96dc/32.png) [@kanishka](https://discourse.haskell.org/u/kanishka)\
**Post date:** [June 8, 2022, 7:26pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/9 "2022-06-08T19:26:55Z")

</div>

[https://kowainik.github.io/](https://kowainik.github.io/) - connect with these folks

---

<div class="post-metadata">

**Author:** ![reuben](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/reuben/32/4733_2.png) [@reuben](https://discourse.haskell.org/u/reuben)\
**Post date:** [June 8, 2022, 8:23pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/10 "2022-06-08T20:23:44Z")

</div>

I’d love to try this out, but are there any code examples anywhere as a how-to for a very simple reflex-vty application? Looking at the [hackage](https://hackage.haskell.org/package/reflex-vty) page, I had some trouble working out how to use the library.

---

<div class="post-metadata">

**Author:** ![udaycruise2903](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/udaycruise2903/32/2473_2.png) [@udaycruise2903](https://discourse.haskell.org/u/udaycruise2903)\
**Post date:** [June 9, 2022, 1:38am UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/11 "2022-06-09T01:38:15Z")

</div>

@klequis I have been looking for open-source projects at initial progress for few months now. I would be happy, if you can add me as your team member.

---

<div class="post-metadata">

**Author:** ![Ericson2314](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ericson2314/32/1026_2.png) [@Ericson2314](https://discourse.haskell.org/u/Ericson2314)\
**Post date:** [June 9, 2022, 2:11am UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/12 "2022-06-09T02:11:32Z")

</div>

Check out the example app: [reflex-vty/src-bin at develop · reflex-frp/reflex-vty · GitHub](https://github.com/reflex-frp/reflex-vty/tree/develop/src-bin)

---

<div class="post-metadata">

**Author:** ![reuben](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/reuben/32/4733_2.png) [@reuben](https://discourse.haskell.org/u/reuben)\
**Post date:** [June 9, 2022, 2:29pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/13 "2022-06-09T14:29:33Z")

</div>

Ah, somehow I missed that. Thanks!

---

<div class="post-metadata">

**Author:** ![klequis](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/klequis/32/1917_2.png) [@klequis](https://discourse.haskell.org/u/klequis)\
**Post date:** [June 9, 2022, 5:19pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/14 "2022-06-09T17:19:10Z")

</div>

Happy to have you! We haven’t set our next meeting yet, maybe next week. I’ll keep you up to date.

---

<div class="post-metadata">

**Author:** ![reuben](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/reuben/32/4733_2.png) [@reuben](https://discourse.haskell.org/u/reuben)\
**Post date:** [June 9, 2022, 5:19pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/15 "2022-06-09T17:19:54Z")

</div>

I can report back and add that reflex-vty is extremely cool and the example was pretty clear. Building a simple version of something like Python’s `panel` library, using reflex, where you do interactive/live plotting, would be a super cool project IMO.

---

<div class="post-metadata">

**Author:** ![Bodigrim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bodigrim/32/1457_2.png) [@Bodigrim](https://discourse.haskell.org/u/Bodigrim)\
**Post date:** [June 9, 2022, 5:41pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/16 "2022-06-09T17:41:46Z")

</div>

If you want to make an impact, working on core libraries is the safest way. For example, here is a list of newcomers-friendly `bytestring` issues: [Issues · haskell/bytestring · GitHub](https://github.com/haskell/bytestring/issues?q=is%3Aissue+is%3Aopen+label%3Apr-welcome)

---

<div class="post-metadata">

**Author:** ![udaycruise2903](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/udaycruise2903/32/2473_2.png) [@udaycruise2903](https://discourse.haskell.org/u/udaycruise2903)\
**Post date:** [June 10, 2022, 3:58pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/17 "2022-06-10T15:58:20Z")

</div>

Please add me to you mailing list, I can follow up any updates easily

---

<div class="post-metadata">

**Author:** ![klequis](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/klequis/32/1917_2.png) [@klequis](https://discourse.haskell.org/u/klequis)\
**Post date:** [June 10, 2022, 7:57pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/18 "2022-06-10T19:57:10Z")

</div>

Will do!  
(and some extra chars to get up to req min of 20 🙂 )

---

<div class="post-metadata">

**Author:** ![kerron](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/kerron/32/2347_2.png) [@kerron](https://discourse.haskell.org/u/kerron)\
**Post date:** [June 11, 2022, 7:58am UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/19 "2022-06-11T07:58:08Z")

</div>

@klequis when you say “All levels of contribution are welcome”, does this include those really new to haskell (as I am)?

---

<div class="post-metadata">

**Author:** ![klequis](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/klequis/32/1917_2.png) [@klequis](https://discourse.haskell.org/u/klequis)\
**Post date:** [June 11, 2022, 3:23pm UTC](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648/20 "2022-06-11T15:23:30Z")

</div>

I’m still a beginner so yes. We have only met once so far and have no final plan yet so don’t know how things will go. I’ll add you to the group and we will see together how things work out.

What is you approach to learning … books, courses, etc?

Cheers,  
Carl

[Next page](https://discourse.haskell.org/t/new-open-source-project-join-and-learn/4648.md?page=2)
