{"id":18847139,"url":"https://github.com/mhuebert/maria","last_synced_at":"2025-04-04T22:09:17.257Z","repository":{"id":39459825,"uuid":"73474311","full_name":"mhuebert/maria","owner":"mhuebert","description":"A ClojureScript coding environment for beginners.","archived":false,"fork":false,"pushed_at":"2024-02-09T10:51:24.000Z","size":13272,"stargazers_count":478,"open_issues_count":56,"forks_count":34,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-03-28T21:09:15.056Z","etag":null,"topics":["beginner","cljs-live","clojurescript","learning","magic-tree","repl"],"latest_commit_sha":null,"homepage":"https://maria.cloud","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhuebert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-11-11T12:02:03.000Z","updated_at":"2025-03-24T07:56:30.000Z","dependencies_parsed_at":"2024-02-09T12:29:49.718Z","dependency_job_id":null,"html_url":"https://github.com/mhuebert/maria","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuebert%2Fmaria","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuebert%2Fmaria/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuebert%2Fmaria/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuebert%2Fmaria/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhuebert","download_url":"https://codeload.github.com/mhuebert/maria/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256115,"owners_count":20909240,"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":["beginner","cljs-live","clojurescript","learning","magic-tree","repl"],"created_at":"2024-11-08T03:05:26.529Z","updated_at":"2025-04-04T22:09:17.237Z","avatar_url":"https://github.com/mhuebert.png","language":"Clojure","readme":"## Maria\n\nThe ClojureScript coding environment for beginners. \n\n(Part editor, part curriculum. A collaborative work by [@daveliepmann](https://twitter.com/daveliepmann), [@jackrusher](https://twitter.com/jackrusher), and [@mhuebert](https://twitter.com/mhuebert).)\n\n\n## Why?\n\n\u003e*Our work is not to teach, but to help the absorbent mind in its work of development.* –Maria Montessori\n\nA recurring problem newcomers have with Clojure is that one must learn everything at once: the JVM, and stack traces, and a new editor, and functional programming, and and and.... What if we shielded folks new to Clojure from the complexity of tooling, stack traces, and programming language esoterica? What if we got out of their way and let them feel the power of programming for themselves? This project aims to delay or remove as many of these obstacles as possible so that people can explore.\n\nThe Maria editor is a code playground. There is no installation, zero configuration, and explaining how to make it work takes approximately one sentence. Clojure's sharp edges are rounded off, for instance, by wrapping stack traces so errors are presented humanely. A handful of helper functions do the same for types and SVG shapes. We use in-place evaluation because we find it the most effective and humane way to interact with a computer.\n\nThe [curriculum](https://github.com/mhuebert/maria/wiki/curriculum) we use alongside the editor uses progressive disclosure of the language, to prevent overwhelming folks. Instead of explaining all Clojure's many features as a functional, hosted lisp--which is a big topic--we introduce folks to _programming_ and let language features follow. In this spirit, we named the project after pedagogical pioneer [Maria Montessori](https://www.wikiwand.com/en/Maria_Montessori), whose method \"stresses the development of a [learner's] own initiative and natural abilities, especially through practical play\" and \"at their own pace\".\n\n\n## Play\n\nSo...please go to [maria.cloud](https://maria.cloud) and play around with it live! :)\n\n\n## Contributing\n\nWe welcome your effort to make the beginner's path to Clojure smoother. Here's how:\n\n#### Contributing to fixing bugs\nThe most helpful thing you can do is simply play around! 😸 and [report bugs as GitHub issues](http://github.com/mhuebert/maria/issues/new).\n\n#### Contributing to better error messages\nWhile you play around, **please send us any un-wrapped Clojure error you find**. We track these in the [Error Handling wiki](https://github.com/mhuebert/maria/wiki/Error-Handling). This is so helpful for making errors easier for new people!\n\nPlease edit the wiki directly to add your experience. Or, [file a GitHub issue](http://github.com/mhuebert/maria/issues/new) explaining what you were doing and what error came up. Our goal with this is to protect users from jargon-filled error messages, and that requires lots of eyes pointing out all the ways a particular error could cause trouble.\n\n#### Contributing to the curriculum\nLike Clojure itself, the Maria curriculum is open-source, but is not primarily a community effort. We've chosen a particular approach and we write with a particular voice for a particular audience. Therefore other approaches, although valid, may not belong here. With that caveat, those of us who write the curriculum *are* open to contributions, which have been accepted according to these rough guidelines:\n\n - for typos, bugs, and obvious mistakes, we actively welcome your issues and pull requests\n - if you built something cool, please show us! :) it may end up in our [Gallery](http://www.maria.cloud/gallery?eval=true) of examples, if you're OK with that\n - for more substantial contributions, from suggestions for phrasing up to entirely new modules, we ask that you do the following to be on the same page as us:\n   - be familiar with our [Curriculum wiki](https://github.com/mhuebert/maria/wiki/curriculum)\n   - be familiar with [Quick: An Introduction to Racket with Pictures](http://docs.racket-lang.org/quick/)\n   - be familiar with our existing curriculum: [Learn Clojure with Shapes](http://www.maria.cloud/intro), [Welcome to Cells](http://www.maria.cloud/cells), the [Gallery](http://www.maria.cloud/cells), and all the rest\n   - be at least passingly familiar with at least some of the [Secondary Resources](https://github.com/mhuebert/maria/wiki/Curriculum#secondary-resources) listed on our Pedagogy wiki\n\n   With that shared understanding attained, please get in touch with us by email so we can discuss ideas in depth.\n\n\n## Development\n\nFirst, copy to your local machine and navigate to the `editor` directory:\n\n```\ngit clone https://github.com/mhuebert/maria.git;\ncd maria/editor\n```\n\nNow, within the `editor` directory, install javascript dependencies and compile stylesheets:\n\n```\nyarn;\n```\n\n### build in development mode, start a local server, and live-reload changes:\n\n```shell\nyarn watch;\n```\n\nWhen these builds have completed, open your web browser to https://localhost:8701\n(note that dev servers are run via **https**)\n\n### running a REPL\n\nThe default `nrepl` port, configured in `shadow-cljs.edn`, is `7888`.\n\nOnce connected, the following will print out a list of things you can do:\n\n```\n(require '[shadow.cljs.devtools.api :as shadow])\n(shadow/help)\n```\n\nto directly enter the `live` environment (provided you've opened up your browser):\n\n```\n(shadow.cljs.devtools.api/repl :live)\n```\n\n### make a production build:\n\n```shell\nyarn release;\n```\n\n## License\n\nThe curriculum is licensed as [Creative Commons Attribution 4.0  (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/). \n\nThe Shapes and Friendly libraries are distributed under the Eclipse Public License 2.0. \n\nSee LICENSE files in relevant subdirectories.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhuebert%2Fmaria","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhuebert%2Fmaria","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhuebert%2Fmaria/lists"}