{"id":27933422,"url":"https://github.com/kyrella/gambit-scheme-webapp","last_synced_at":"2025-05-07T04:58:37.967Z","repository":{"id":287605584,"uuid":"965239799","full_name":"kyrella/gambit-scheme-webapp","owner":"kyrella","description":"An experimental webapp built with Gambit Scheme","archived":false,"fork":false,"pushed_at":"2025-04-12T18:41:06.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T04:58:34.821Z","etag":null,"topics":["gambit-scheme","poc","scheme","webapps"],"latest_commit_sha":null,"homepage":"","language":"Scheme","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kyrella.png","metadata":{"files":{"readme":"README.org","changelog":null,"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,"zenodo":null}},"created_at":"2025-04-12T18:07:38.000Z","updated_at":"2025-04-12T18:47:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"48b0851a-6ece-402c-89f4-ca19e0df7ea3","html_url":"https://github.com/kyrella/gambit-scheme-webapp","commit_stats":null,"previous_names":["kyrella/gambit-scheme-webapp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyrella%2Fgambit-scheme-webapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyrella%2Fgambit-scheme-webapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyrella%2Fgambit-scheme-webapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyrella%2Fgambit-scheme-webapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kyrella","download_url":"https://codeload.github.com/kyrella/gambit-scheme-webapp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252816948,"owners_count":21808704,"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":["gambit-scheme","poc","scheme","webapps"],"created_at":"2025-05-07T04:58:37.379Z","updated_at":"2025-05-07T04:58:37.951Z","avatar_url":"https://github.com/kyrella.png","language":"Scheme","funding_links":[],"categories":[],"sub_categories":[],"readme":"* Test Web App on Gambit Scheme\n\nEvery year I feel compelled to try building a web application with something exotic, such as Scheme!\nUsually, this doesn't lead anywhere, but this time I actually made some progress. Ultimately, however, I ran out of time that I could spend on something so seemingly pointless. 🔥\n\nThat said, I think there is still hope, so I decided to put this in a repository for... well, for future me, I guess.\n\nSo, here is the current progress:\n+ It actually works! 🙌\n+ It avoids the typical Lisp/Scheme webapp rite of passage involving yet another custom SXML-\u003eDOM diffing implementation, instead using the [[https://github.com/AFASSoftware/maquette][Maquette]] runtime (a JS library).\n+ And that's about it - it renders a couple of elements just to demonstrate that the Gambit JS target/FFI works and can handle two-way communication (i.e., event handlers function correctly).\n+ There are no libs for anything webapp related because Gambit supports R7RS libs only and even so, it seems can't work with [[https://akkuscm.org/][Akku]].\n+ Oh, almost forgot: it's a mere 8MB in size! 🎀 There is a gist mentioned in the Sources section below showing how a minimal runtime library can be created, but that approach didn't work for me, and I don't have any more time for this at the moment.\n+ Gambit's documentation is a nightmare. I hope [[https://github.com/mighty-gerbils/gerbil][Gerbil Scheme]] adds a JS target one day.\n\n* Sources\n + [[https://gist.github.com/bentxt/ff4a4ef8e3ee13223613091a052aa641][The magic gist for a minimal runtime library.]]\n + [[https://github.com/udem-dlteam/webapp-tutorial/blob/master/webapp-tutorial.scm][Webapp code, apparently for a presentation]]\n + [[https://gist.github.com/roman01la/1d2f84357a2aef8ef053dd6ba4f0aad1][Someone's attempt at Gambit JS FFI]]\n + [[https://www.iro.umontreal.ca/~feeley/papers/BelangerFeeleyELS21.pdf][JS FFI description from the Gambit authors themselves]] (BTW, TODO: Still need to read this 😁)\n + [[https://github.com/jlongster/farmageddon/tree/master][A game written in Gambit Scheme]]\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyrella%2Fgambit-scheme-webapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkyrella%2Fgambit-scheme-webapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyrella%2Fgambit-scheme-webapp/lists"}