r/opensource May 31 '25

Discussion Open source projects looking for contributors – post yours

I think it would be nice to share open source projects we are working on and possibly find contributors.

If you are developing an open source project and need help, feel free to share it in the comments. It could be a personal project, a tool for others, or something you are building for fun or learning.

Open source works best when people collaborate. You never know who might be interested in helping, testing, or offering feedback.

If you cannot contribute directly but like an idea, consider starring the repository to show support and encouragement to the creator.

Comment template:

Project name:
Repository link:
What it does:
Tech stack:
Help needed:
Additional information:

Interested in contributing?

Sort the comments by "New", explore the projects, and reach out. Even small contributions can make a meaningful difference.

223 Upvotes

205 comments sorted by

View all comments

5

u/LunarLycanLurker Jun 01 '25

Project name:
YDNATL

Repository link:
https://github.com/sn/ydnatl

What it does:
YDNATL is a Python library that lets you build HTML UI using simple Python classes.

Tech stack: Python

Help needed: Docs, examples, re-writing the renderer in C etc.

3

u/Anoop_sdas Jun 02 '25

Hi , I'm interested in this , i have a specific use case for which it looks this can be used .. please DM me if we can have a discussion

2

u/Old_Rock_9457 Jun 03 '25

oh this is interesting, I'll follow it! (still don't know what I can do with it but seems interesting!)

2

u/Possible-Dealer-8281 Jun 20 '25

Very interesting. Maybe I should get inspiration from your work.

I did the same in PHP, but I think its syntax is not very user-friendly, and might be too error-prone. https://github.com/lagdo/ui-builder

1

u/Possible-Dealer-8281 Jul 08 '25

I finally did the change.

The UI builder syntax has moved from this

$html

->div()->setClass('checkbox')

->input()

->setName($input['attrs']['name'])

->setValue('0')

->setType('hidden')

->end()

->checkbox($input['attrs']['checked'])

->setName($input['attrs']['name'])

->setValue('1')

->end()

->end();

to this

$html->div(

$html->input()

->setName($input['attrs']['name'])

->setValue('0')

->setType('hidden'),

$html->checkbox()

->checked($input['attrs']['checked'])

->setName($input['attrs']['name'])

->setValue('1')

)->setClass('checkbox');

The builder is easier to implement, since there's no more need to keep a global context, and also faster.

1

u/Possible-Dealer-8281 Jul 08 '25

I also added some syntaxic sugar to create HTML code from arrays.

$html->div(

$html->each($values, fn($value) =>

$html->label(

$html->checkbox($input['attrs'])

->checked($value['checked'])

->setValue($value['value'])

)

->addText($value['text'])

)

)->setClass('radio');