{"id":21467946,"url":"https://github.com/danr/viable","last_synced_at":"2025-07-27T21:41:35.718Z","repository":{"id":66322175,"uuid":"346127835","full_name":"danr/viable","owner":"danr","description":"A viable alternative to frontend programming.","archived":false,"fork":false,"pushed_at":"2022-12-08T20:36:52.000Z","size":93,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-23T15:39:48.912Z","etag":null,"topics":["hot-module-reloading","python-frontend"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danr.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2021-03-09T19:56:44.000Z","updated_at":"2022-03-23T14:49:09.000Z","dependencies_parsed_at":"2024-04-21T14:50:23.604Z","dependency_job_id":null,"html_url":"https://github.com/danr/viable","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/danr%2Fviable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danr%2Fviable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danr%2Fviable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danr%2Fviable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danr","download_url":"https://codeload.github.com/danr/viable/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243982297,"owners_count":20378606,"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":["hot-module-reloading","python-frontend"],"created_at":"2024-11-23T08:20:47.216Z","updated_at":"2025-03-17T06:14:00.767Z","avatar_url":"https://github.com/danr.png","language":"Python","readme":"# viable\n\nA viable alternative to frontend programming.\n\nViable updates outdated elements in the DOM using a DOM differ. It also\nupdates the values of input fields, with the exception of the currently\nfocused input field in the client. This allows for the sending of updates\nto the backend on keystrokes to an input field.\n\nIn terms of session and variable values, the software uses session storage\nto store state in the frontend. This is necessary because cookies are shared\nbetween tabs, and session storage allows for duplication of tabs. If a new\ntab is created, the session storage is empty and variables are initialized\nwith default values.\n\nFor persistent storage across windows and tabs in the browser, the software\nalso uses local storage. If a new tab or window is created and the value\nof a variable is retrieved, the session storage is empty and the value from\nthe local storage is used instead. (Currently not implemented)\n\nCookies cannot be used for this because they have a maximum size of 4\nkilobytes, whereas session and local storage have a minimum size in the order\nof megabytes.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanr%2Fviable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanr%2Fviable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanr%2Fviable/lists"}