{"id":23249105,"url":"https://github.com/shaeberling/retrostore","last_synced_at":"2025-06-30T09:37:47.181Z","repository":{"id":59666364,"uuid":"71521240","full_name":"shaeberling/retrostore","owner":"shaeberling","description":"RetroStore aims to be an app store that is home to often long forgotten games and apps on platforms from our past.","archived":false,"fork":false,"pushed_at":"2023-09-23T06:12:06.000Z","size":5907,"stargazers_count":13,"open_issues_count":3,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-07T11:21:30.888Z","etag":null,"topics":["amiga","c64","emulator","retro","retro-computing","tandy","trs-80"],"latest_commit_sha":null,"homepage":"https://retrostore.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shaeberling.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}},"created_at":"2016-10-21T02:13:13.000Z","updated_at":"2024-07-19T01:35:30.000Z","dependencies_parsed_at":"2023-01-19T00:15:16.172Z","dependency_job_id":null,"html_url":"https://github.com/shaeberling/retrostore","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shaeberling/retrostore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaeberling%2Fretrostore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaeberling%2Fretrostore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaeberling%2Fretrostore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaeberling%2Fretrostore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shaeberling","download_url":"https://codeload.github.com/shaeberling/retrostore/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaeberling%2Fretrostore/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262748991,"owners_count":23358314,"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":["amiga","c64","emulator","retro","retro-computing","tandy","trs-80"],"created_at":"2024-12-19T08:17:09.797Z","updated_at":"2025-06-30T09:37:47.144Z","avatar_url":"https://github.com/shaeberling.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/shaeberling/retrostore/raw/master/docs/retrostore_logo.png\" width=\"300\"\u003e\n\n![workflow status](https://github.com/shaeberling/retrostore/actions/workflows/gradle.yml/badge.svg)\n\n**RetroStore** aims to be an app store that is home to often long forgotten games and apps on platforms from our past.\n\nTake e.g. a system like the [TRS-80](https://en.wikipedia.org/wiki/TRS-80). There are many games and apps that have been\ndeveloped for it but are hard to come by nowadays. Often there is no commercial interest anymore from the original\nauthors. \n\nHowever, there are often vibrant communities about these old platforms and emulators that try to keep the history alive.\nWhile these emulators ([like this one for Android](https://github.com/apuder/TRS-80)) are doing a fantastic job, they\nsuffer from the absence of easy to obtain and install app images.\n\nThis is where **RetroStore** comes in. It aims to provide an open platform to store and distribute these old gems. It\ndoes so by offering forms to upload old application images, and and API for accessing them. The APIs can be used by\nemulators to easily add these titles to their applications.\n\nFor now we aim to only support application without commercial interest. Should there be desire to at some point have\nauthors sell games and apps for these old platforms, we would rethink this model and add an incentive model.\n\nInitial platform will be the TRS-80. If you are an emulator developer for this or another platform, feel free to reach\nout so we can expand support.\n\nContact: info@retrostore.org\n\n# RetroStore SDK\n\nIf you are looking to integrate RetroStore into your client (be it a software emulator or a hardware project), then you should head over to the [RetroStore SDK repository](https://github.com/shaeberling/retrostore-sdk).\n\n\n# Contributor Notes\n\nThe following instructions are for developers that want to contribute to the RetroStore codebase.\n\n## Install tools\n\nIn order to work on and make changes to the user interface, polymer-cli, npm and bower are\nrequired. THe developer portal is using Polymer 2.0, so follow the instructions to install\nthese tools on the (Polymer website)[https://polymer-library.polymer-project.org/2.0/docs/install-2-0].\n\n## Start a local server\n\nA local server will not have all the features of a full AppEngine environment, but you can\ntest most things like this without the need to deploy it, which is nice.\n\nA convenience script is available that will compile the Polymer frontend code and then start\nup an AppEngine development server. It's in the root of the reposiory:\n\n```\n./updateAndRun.sh\n```\n\nIf you do not work on the GUI part and you do not want to install Polymer and Bower, you can\nsimply run the AppEngine development server without rebuilding the GUI parts. Since a\ncurrent build is in the repository, you can simply run this:\n\n```\n./gradlew appengineRun\n``` \n\nIn both cases, the server is available at `http://localhost:8888`. To access the developer\nportal, browse to `http://localhost:8888/app-management-view`.\n\n## Frontend work\n\nThe frontend consists of two parts: The main homepage that users see when they browse\nto retrostore.org for one, and then the developer backend application that is used to\nupload new applications, edit existing ones, manage disk images, store listing and screenshots.\n\n### Changing the homepage\nThe main website is easy to change. Simply edit the code under `appengine\\src\\main\\webapp\\WEB-INF\\public`.\nIt is not necessary to build this part in any way, it gets served directly to the users.\n\n### Changing developer portal\nThe developer portal is a web application that is built with Polymer. Head over to the\n(Polymer website)[https://www.polymer-project.org/] to see how it works and run through tutorials\nif you need to.\n\nIf you have both polymer-cli and bower installed (see above) then you are ready to go. You can\nwork on the code in two ways: Build it every time or run a special developer mode we built for\nthe RetroStore backend.\n\nTo rebuild and run a local server, simply run:\n\n```\n./updateAndRun.sh\n```\n\nThis will rebuilt the Polymer app and then launch a local developer server. You should run this\nbefore deploying a new version, since it is exactly what you would deploy to the servers.\n\nHowever, if you make a lot of changes, it can be tedious to rebuild and restart all the time.\nFor this use case a special developer mode is supported. All you have to do is start up a local\npolymer development server by going to the source directory:\n\n```\ncd polymer-source\npolymer server\n```\n\nThis will launch a local server which reacts to code changes right away. Once it is running,\na local RetroStore development server will automatically connect to the polymer developer server\nby making requests to it to serve the developer portal. So just run `./updateAndRun.sh` in \na seperate terminal while the polymer server is running, and you are good to go. All changes\nyou make to the Polymer application will be shown when you refresh the page.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaeberling%2Fretrostore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaeberling%2Fretrostore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaeberling%2Fretrostore/lists"}