{"id":13726402,"url":"https://github.com/rescriptbr/comece-aqui","last_synced_at":"2025-05-10T20:00:16.468Z","repository":{"id":43300879,"uuid":"277706577","full_name":"rescriptbr/comece-aqui","owner":"rescriptbr","description":":rocket: Quer aprender ReScript? Comece aqui ","archived":false,"fork":false,"pushed_at":"2022-07-06T18:16:51.000Z","size":1400,"stargazers_count":244,"open_issues_count":1,"forks_count":7,"subscribers_count":6,"default_branch":"first","last_synced_at":"2025-03-31T21:42:38.805Z","etag":null,"topics":["bucklescript","react","rescript","rescript-bindings","rescript-lang","rescript-react"],"latest_commit_sha":null,"homepage":"https://rescript-lang.org","language":null,"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/rescriptbr.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}},"created_at":"2020-07-07T03:25:50.000Z","updated_at":"2025-01-09T13:04:27.000Z","dependencies_parsed_at":"2022-09-19T00:12:15.882Z","dependency_job_id":null,"html_url":"https://github.com/rescriptbr/comece-aqui","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/rescriptbr%2Fcomece-aqui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rescriptbr%2Fcomece-aqui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rescriptbr%2Fcomece-aqui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rescriptbr%2Fcomece-aqui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rescriptbr","download_url":"https://codeload.github.com/rescriptbr/comece-aqui/tar.gz/refs/heads/first","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253256028,"owners_count":21879257,"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":["bucklescript","react","rescript","rescript-bindings","rescript-lang","rescript-react"],"created_at":"2024-08-03T01:03:03.229Z","updated_at":"2025-05-09T12:41:43.773Z","avatar_url":"https://github.com/rescriptbr.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e Quer aprender ReScript? Comece aqui 🚀\u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n \u003cp align=\"center\"\u003e\n    \u003cimg src=\"V1.svg\" width=\"750\" alt=\"ReScriptBR Logo\" /\u003e\n  \u003c/p\u003e\n\u003cp align=\"center\"\u003e\n \u003ca target=\"_blank\" href=\"https://twitter.com/rescriptbr\"\u003eTwitter\u003c/a\u003e • \n \u003ca target=\"_blank\" href=\"https://discord.com/invite/SSDMNYQ\"\u003eDiscord\u003c/a\u003e \n\u003c/p\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u003c/div\u003e\n\n## 💡 Como utilizar este guia\nEste guia é mantido pela comunidade ReScript Brasil e tem como objetivo reunir cursos, vídeos, artigos, livros e qualquer outro material que possa te ajudar a iniciar sua jornada de aprendizado em ReScript.\n\nO guia é open-source, portanto, todos podem contribuir adicionando novos materiais, basta [criar um fork deste](https://github.com/rescriptbr/comece-aqui/fork) repositório e abrir um pull request adicionando suas sugestões.\n\nAo navegar pelos materiais deste guia, você irá perceber que alguns dos materiais estão utilizando a sintaxe _ReasonML_ (a sintaxe utilizada anteriormente pelo ReScript). \nNo entanto, é possível utilizar esses conteúdos para estudar ReScript, tendo em vista que essa sintaxe ainda é compatível com a linguagem.\n\u003e :bulb: Leia mais sobre a diferença entre ReasonML e ReScript, e o rebranding da linguagem [aqui](https://rescript-lang.org/blog/bucklescript-is-rebranding).\n\nSe você estiver utilizando algum material escrito em ReasonML e deseja converter os snippets de código para a sintaxe do ReScript, você pode fazer a conversão de duas formas:\n- Converter o código utilizando o playground no site [oficial do ReScript](https://rescript-lang.org/try). Se precisar de ajuda, utilize o [video](https://github.com/rescriptbr/comece-aqui/issues/17) que gravamos com o passo a passo.\nFunciona muito bem para testar snippets simples e códigos que você encontra em cursos ou talks.\n\n- Converter os arquivos do projeto que estão na sintaxe antiga (`.re`) em arquivos na sintaxe nova (`.res`). Para isso você pode utilizar a própria cli do ReScript conforme a [documentação oficial](https://rescript-lang.org/docs/manual/latest/migrate-from-bucklescript-reason#upgrade-your-codebase).\n\n## 🔍 Menu\n- [📄 Sites \u0026 Docs Oficiais](#-sites--docs-oficiais)\n- [📝 Cheat Sheets e Cookbooks](#-cheat-sheets-e-cookbooks)\n- [🎥 Videos](#-videos)\n- [📝 Artigos](#-artigos)\n- [📚 Livros](#-livros)\n- [🤓 Pessoas da comunidade](#-pessoas-da-comunidade-para-seguir-no-twitter)\n- [🚀 Cursos](#-cursos)\n- [🚧 Projetos de exemplo](#-projetos-de-exemplo)\n- [💡 Dúvidas frequentes?](#-dúvidas-frequentes)\n \n## 📄 Sites \u0026 Docs Oficiais\n\n- [Documentação ReScript](https://rescript-lang.org/)\n- [Documentação ReScriptReact](https://rescript-lang.org/docs/react/latest/introduction)\n- [Fórum Oficial ReScript](https://forum.rescript-lang.org/)\n- [ReScript Association](https://rescript-association.org/)\n\n## 📝 Cheat Sheets e Cookbooks\n\n- [ReScript Bindings Cookbook](https://github.com/rescriptbr/rescript-bindings-cookbook):  O guia mais completo sobre interoperabilidade e criação de bindings em ReScript.\n\n## 🎥 Videos\n\n- [ReScript e React na prática](https://www.youtube.com/watch?v=pGA1RfNiGho): Talk com live coding sobre utilizar ReScript e React.\n- [ReScript: O EcmaScript 2077](https://www.youtube.com/watch?v=Hoed0aZGbJY): Talk introdutória sobre ReScript.\n- [Um servidor com ES77 (ReScript)](https://www.youtube.com/watch?v=_VfCjh31okk): Talk sobre utilizar ReScript no servidor com NodeJs.\n- [Playlist: Construindo uma aplicação utilizando ReScript e React](https://www.youtube.com/watch?v=hDratuXnfAo\u0026list=PLr4c053wuXU_V-lMfFmDz9yWD5nw_lv_p): Playlist de vídeos construindo uma aplicação real com ReScript e React.\n- [O que é ReasonML(ReScript)?](https://www.youtube.com/watch?v=tNgyRo2fhwU): Talk introdutória sobre a linguagem. Aborda tópicos básicos e faz introdução ao ecossistema ReScript.\n- [ReScript Pomodoro Timer with React Hooks](https://www.youtube.com/watch?v=8ftCqZ2-7cQ): Construção de um pomodoro timer utilizando ReScript e React. Utiliza `useReducer` e pattern matching em vários momentos.\n- [Weather App in ReScript and React](https://www.youtube.com/watch?v=H6X6AJZna98): Construção de um weather app utilizando ReScript. Muito bom para ter um entendi inicial sobre data fetching e fetch API com ReScript.\n- [ReScript, Next.js and Apollo Hooks blog](https://www.youtube.com/watch?v=ag4nUteMwkU\u0026list=PLtDL321SUTJiC2BqrSUzoxozH138y4uhM\u0026index=1): Tutorial bem completo de uma integração de ReScript com Next, Apollo Hooks e AWS Appsync.\n- [How to set up webpack for ReScript and React](https://www.youtube.com/watch?v=0CMmML7Q6Ds): Setup inicial para usar ReScript com ReScriptReact.\n- [ReScript (ReasonML) levado a sério](https://www.youtube.com/watch?v=8Qi_ZoXc2CI): Talk introdutória sobre ReScript.\n\n## 📝 Artigos\n\n- [O que é e por que utilizar ReScript? Parte 1](https://blog.blumenaujs.org/o-que-e-e-por-que-utilizar-reasonml-parte-1): Introdução sobre o que é ReasonML, seu ecossistema e os ambientes\n- [O que é e por que utilizar ReScript? Parte 2](https://blog.blumenaujs.org/o-que-e-e-por-que-utilizar-reasonml-parte-2): Artigo sobre porque você deveria adotar ReasonML ao invés de TypeScript ou Flow. Artigo completo sobre o básico de ReasonML, cobrindo tópicos como Pattern Matching, Variants, Funções e etc\n- [Rescript, Reason, Typescript, OCAML, Javascript, Help Me Choose!](https://dusty.phillips.codes/2021/12/18/rescript-reason-typescript-ocaml-javascript-help-me-choose/)\n- [Let's Talk About Functors In Rescript](https://dusty.phillips.codes/2021/09/18/lets-talk-about-functors-in-rescript/)\n- [Fun With Rescript Polymorphic Variants](https://dusty.phillips.codes/2021/09/06/fun-with-rescript-polymorphic-variants/)\n- [Parsing JSON in Rescript](https://dusty.phillips.codes/2021/08/14/parsing-json-in-rescript/)\n- [Lazy Loading Images With ReScript](https://alexfedoseev.com/blog/post/lazy-loading-images-with-rescript)\n- [Cool Things You Can Do with First-Class Modules in ReScriptReact](https://alexfedoseev.com/blog/post/cool-things-you-can-do-with-first-class-modules-in-rescript-react)\n- [Safe Routing in ReScript](https://alexfedoseev.com/blog/post/safe-routing-in-rescript)\n- [Safe Identifiers in ReScript](https://alexfedoseev.com/blog/post/safe-identifiers-in-rescript)\n- [Eliminating Illegal State in ReScript](https://alexfedoseev.com/blog/post/eliminating-illegal-state-in-rescript)\n- [ReScript Modules](https://alexfedoseev.com/blog/post/rescript-modules)\n\n## 📚 Livros\n\n- [Exploring ReasonML](http://reasonmlhub.com/exploring-reasonml/toc.html)\n\t_Livro muito completo sobre ReasonML, pode ser considerado um guia prático. Apesar de ser escrito utilizando a síntaxe \"antiga\" que é ReasonML, todo o conteúdo do livro é válido e reaproveitável._\n- [Type-Driven Development with ReasonML](https://www.amazon.com/Learn-Type-Driven-Development-applications/dp/1788838017)\n\t_O livro ensina como desenvolver software guiado a tipos com ReasonML. Aborda diversos detalhes interessantes sobre como a linguagem se comporta e como o sistema de tipos te guia a modelar seu software. Apesar de ser escrito utilizando a síntaxe \"antiga\" que é ReasonML, todo o conteúdo do livro é válido._\n\n## 📦 Cursos\n\n- [EcmaScript2077 🇧🇷](https://es77.dev/): _Curso completo de ReScript_\n- [Learn ReasonML](https://learnreasonml.com/): _O curso utiliza a síntaxe ReasonML, mas serve como um guia para os iniciantes_\n- [Get Started with ReasonML](https://egghead.io/courses/get-started-with-reason): _O curso utiliza a síntaxe ReasonML, mas serve como um guia para os iniciantes_\n\n## 🐦 Pessoas da comunidade para seguir no Twitter\n\n- [Hongbo Zhang](https://twitter.com/bobzhang1988): Criador do ReScript compiler.\n- [Patrick Ecker](https://twitter.com/ryyppy): Membro do core team do ReScript. Trabalha ativamente na documentação oficial.\n- [Cristiano Calcagno](https://twitter.com/ccrisccris): Membro do core team do ReScript. Trabalhava ativamente no compilador.\n- [Maxim](https://twitter.com/_binary_search): Membro do core team do ReScript. \n- [zth](https://twitter.com/___zth___): Mantenedor de projetos importantes do ecossistema como [rescript-relay](https://github.com/zth/rescript-relay).\n- [Ricky Vetter](https://twitter.com/rickyvetter): Membro do core team do ReScript.\n- [fakenickels](https://twitter.com/fakenickels): Mago do ReScript 🧙. Criador de várias libs como [ReForm](https://github.com/rescriptbr/reform) e co-criador do curso [EcmaScript2077](https://es77.dev).\n- [Marcos Oliveira](https://twitter.com/vmaarcosp): Organizador da comunidade ReScript Brasil e co-criador do curso [EcmaScript2077](https://es77.dev).\n- [Diogo Mafra](https://twitter.com/diogomafra_): Moderador da comunidade ReScript Brasil.\n- [Jaap Frolich](https://twitter.com/JaapFrolich): Mantenedor do [graphql-ppx](https://github.com/teamwalnut/graphql-ppx)\n- [Ciro](https://twitter.com/cironunesdev)\n- [Weslen](https://twitter.com/theweslenng)\n- [André Lins](https://twitter.com/andrelmlins)\n\n## 🚧 Projetos de exemplo\n\n- [Blog construido com Nextjs e ReScript (ReasonML)](https://github.com/enieber/olha-oque-fiz)\n- [FlashLink](https://github.com/andrelmlins/flashlink)\n- [Get Shit Done](https://github.com/cironunes/gsd)\n- [Pomodoro](https://github.com/tkovs/pomodoro)\n- [Timerlab](https://github.com/vmarcosp/timerlab)\n- [Conduit](https://github.com/rescriptbr/conduit): Apesar de estar incompleto, possui vários exemplos de formulários, bindings, data fetching, react-query, reform, ancestor, storybook, etc\n\n## 💡 Dúvidas frequentes? \n- **Qual a diferença entre ReasonML, BuckleScript e ReScript?**\n \t\u003e _[Leia mais sobre o rebranding entre ReasonML e ReScript](https://rescript-lang.org/blog/bucklescript-is-rebranding)_\n\n- **Alguns conteúdos (artigos, vídeos, livros) utilizam a síntaxe ReasonML ao invés da síntaxe ReScript, devo usar a síntaxe ReasonML ou a síntaxe ReScript?**\n\t\u003e _Anteriormente o compilador do ReScript (BuckleScript) utilizava a sintaxe ReasonML. Com o rebranding, o ReScript passou a ter sua própria sintaxe, no entanto a sintaxe ReasonML ainda é e será suportada por um bom tempo, mas o ideal é que você utilize a sintaxe ReScript em seus novos projetos e/ou migre os seus projetos para a nova sintaxe quando possível._\n\n- **Onde estão os materiais relacionados a ReasonML e OCaml anteriormente listados aqui neste guia?**\n\t\u003e Após o rebranding, esse guia foi atualizado e alterado para agrupar somente materiais relacionados a ReScript. Se você procura pela versão anterior com os conteúdos relacionados a OCaml/ReasonML você pode encontrá-los [aqui](https://gist.github.com/vmarcosp/72c782d8e36044ce8706127c443bd5fe).\n\n## ❓Perguntas? \n\nCaso surja alguma dúvida sobre sintaxe, erros, bindings e etc [basta abrir uma issue](https://github.com/rescriptbr/comece-aqui/issues/new)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frescriptbr%2Fcomece-aqui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frescriptbr%2Fcomece-aqui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frescriptbr%2Fcomece-aqui/lists"}