{"id":13728007,"url":"https://github.com/fjvallarino/monomer","last_synced_at":"2025-04-08T04:15:13.585Z","repository":{"id":37023140,"uuid":"210380285","full_name":"fjvallarino/monomer","owner":"fjvallarino","description":"An easy to use, cross platform, GUI library for writing Haskell applications.","archived":false,"fork":false,"pushed_at":"2024-05-20T10:03:55.000Z","size":7354,"stargazers_count":612,"open_issues_count":40,"forks_count":45,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-04-01T03:35:33.590Z","etag":null,"topics":["cross-platform","gui","haskell","ui"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fjvallarino.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-23T14:45:48.000Z","updated_at":"2025-03-19T08:04:12.000Z","dependencies_parsed_at":"2023-02-18T20:15:18.299Z","dependency_job_id":"9d723af1-b992-46e5-8bca-324eee0d72e4","html_url":"https://github.com/fjvallarino/monomer","commit_stats":{"total_commits":1327,"total_committers":15,"mean_commits":88.46666666666667,"dds":"0.11002260738507907","last_synced_commit":"05c5d6c9b5d0649ad5da59b67cb0328fe82e7ed6"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjvallarino%2Fmonomer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjvallarino%2Fmonomer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjvallarino%2Fmonomer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjvallarino%2Fmonomer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fjvallarino","download_url":"https://codeload.github.com/fjvallarino/monomer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247773719,"owners_count":20993639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform","gui","haskell","ui"],"created_at":"2024-08-03T02:00:36.093Z","updated_at":"2025-04-08T04:15:13.562Z","avatar_url":"https://github.com/fjvallarino.png","language":"Haskell","funding_links":[],"categories":["👓 Alternatives to the [Electron.js](https://electronjs.org) ⚛"],"sub_categories":["Haskell"],"readme":"\u003ch1 align=\"center\"\u003eMonomer\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eA cross-platform GUI library for Haskell\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/fjvallarino/monomer/main/assets/images/monomer-logo.svg\" height=250 width=250 alt=\"Logo\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/fjvallarino/monomer/actions\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/fjvallarino/monomer/build.yml?branch=main\" alt=\"CI badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://haskell.org\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Made%20in-Haskell-%235e5086?logo=haskell\u0026style=flat-square\" alt=\"made with Haskell\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://haskell.org\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/fjvallarino/monomer?color=111%09193%0965%09\" alt=\"BSD-3-Clause\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\nAn easy to use, cross platform, GUI library for writing native Haskell\napplications.\n\nMonomer provides a framework similar to the Elm Architecture, allowing the creation\nof GUIs using an extensible set of widgets with pure Haskell.\n\n## Objectives\n\n- Be easy to learn and use.\n- Be extensible with custom widgets.\n- Run on Windows, Linux and macOS.\n- Have good documentation.\n- Have good examples.\n\n### These are not objectives for this project\n\n- Have a native look and feel.\n\n### Why would you want to use this library?\n\n- You want to write your application in Haskell.\n- You want to write a native, not web based, application.\n\n## Documentation\n\n### Setup\n\nYou can read how to setup your environment [here](docs/tutorials/00-setup.md).\n\n### Tutorials\n\nIntroductory tutorials are available:\n\n- [01 - Basics](docs/tutorials/01-basics.md)\n- [02 - Styling](docs/tutorials/02-styling.md)\n- [03 - Life cycle](docs/tutorials/03-life-cycle.md)\n- [04 - Tasks](docs/tutorials/04-tasks.md)\n- [05 - Producers](docs/tutorials/05-producers.md)\n- [06 - Composite](docs/tutorials/06-composite.md)\n- [07 - Custom widgets](docs/tutorials/07-custom-widgets.md)\n- [08 - Themes](docs/tutorials/08-themes.md)\n\n### Examples\n\nBeyond the tutorials, a few _real world like_ examples are available:\n\n- [Todo](docs/examples/01-todo.md)\n- [Books](docs/examples/02-books.md)\n- [Ticker](docs/examples/03-ticker.md)\n- [Generative](docs/examples/04-generative.md)\n- [Custom OpenGL](docs/examples/05-opengl.md)\n\n### Haddock\n\nYou can read the source code's documentation [here](https://hackage.haskell.org/package/monomer).\n\n### Design decisions\n\nIn case you wonder why some choices were made, you can read\n[here](docs/design-decisions.md).\n\n## Roadmap\n\n- Stability and performance.\n- Mobile support.\n\n## Project status\n\nAlthough there has not been a lot of activity in the past year, the project is still active.\n\nI may take some time to respond to issues while I work on features I want to add to Monomer.\n\n## Useful extensions\n\n- [Hagrid](https://github.com/Dretch/monomer-hagrid), a flexible datagrid widget.\n- [Monomer Flatpak Example](https://github.com/Dretch/monomer-flatpak-example), an example of how to package Monomer applications on Linux, using Flatpak.\n\n## Contributing\n\nPRs are welcome!\n\nIf possible, keep them small and focused. If you are planning on making a large\nchange, please submit an issue first so we can agree on a solution.\n\n## License\n\nThis library is licensed under the [BSD-3 license](LICENSE).\n\nFonts used in the examples:\n\n- [Roboto](https://fonts.google.com/specimen/Roboto), licensed under the [Apache license](http://www.apache.org/licenses/LICENSE-2.0).\n- [Remix Icon](https://remixicon.com), licensed under the [Apache license](http://www.apache.org/licenses/LICENSE-2.0).\n\n## Acknowledgments\n\n- Thanks to [Ghislaine Guerin](https://github.com/ghislaineguerin) for UX advice.\n- Thanks to [Mikko Mononen](https://github.com/memononen) for the amazing [nanovg](https://github.com/memononen/nanovg) library.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffjvallarino%2Fmonomer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffjvallarino%2Fmonomer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffjvallarino%2Fmonomer/lists"}