{"id":20657428,"url":"https://github.com/chrislaskey/ghost","last_synced_at":"2026-05-04T20:32:38.715Z","repository":{"id":145664583,"uuid":"157577269","full_name":"chrislaskey/ghost","owner":"chrislaskey","description":"Timely Reminders","archived":false,"fork":false,"pushed_at":"2018-11-20T17:53:00.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T23:45:02.052Z","etag":null,"topics":["electron","react"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/chrislaskey.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":"2018-11-14T16:24:11.000Z","updated_at":"2018-11-20T17:53:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"7f747ec5-9527-4f19-8fdf-88f536f14479","html_url":"https://github.com/chrislaskey/ghost","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chrislaskey/ghost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislaskey%2Fghost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislaskey%2Fghost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislaskey%2Fghost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislaskey%2Fghost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrislaskey","download_url":"https://codeload.github.com/chrislaskey/ghost/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislaskey%2Fghost/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267324980,"owners_count":24069401,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["electron","react"],"created_at":"2024-11-16T18:20:40.979Z","updated_at":"2026-05-04T20:32:33.662Z","avatar_url":"https://github.com/chrislaskey.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Setup\n\n### Electron\n\nNote: Setup directions based on the [Medium post from Kitze](https://medium.com/@kitze/%EF%B8%8F-from-react-to-an-electron-app-ready-for-production-a0468ecb1da3)\n\nCreate react application:\n\n```\nnpx create-react-app ghost\n```\n\nAdd electron:\n\n```\nyarn add --dev concurrently electron electron-builder wait-on\nyarn add electron-is-dev\n```\n\nCopy [`electron.js`](https://gist.github.com/kitze/42bfc85e8f41ebe777609c250b183eec#file-electron-js) to `public/electron.js`.\n\nUpdate entry point in `package.json`:\n\n```\n\"main\": \"public/electron.js\"\n```\n\nAdd script to `package.json`:\n\n```\n\"electron-dev\": \"concurrently \\\"BROWSER=none yarn start\\\" \\\"wait-on http://localhost:3000 \u0026\u0026 electron .\\\"\"\n```\n\nVerify development version runs:\n\n```\n$ yarn electron-dev\n```\n\n#### Production Build\n\nUpdate `package.json`:\n\n```\n\"build\": {\n  \"appId\": \"com.ghost.electron\",\n  \"files\": [\n    \"build/**/*\",\n    \"node_modules/**/*\"\n  ],\n  \"directories\":{\n    \"buildResources\": \"assets\"\n  }\n}\n```\n\nAdd scripts to `package.json`:\n\n```\n\"electron-pack\": \"build -c.extraMetadata.main=build/electron.js\",\n\"preelectron-pack\": \"yarn build\"\n```\n\nAdd homepage to `package.json`:\n\n```\n\"homepage\": \"./\"\n```\n\nBuild the production version:\n\n```\n$ yarn electron-pack\n```\n\nOnce complete, the prebuilt application files are located in `dist` directory.\n\n### Developer Environment\n\nAdd StandardJS linting rules:\n\n```\nyarn add standard\n```\n\nUpdate `package.json` with new section:\n\n```\n  \"standard\": {\n    \"parser\": \"babel-eslint\",\n    \"ignore\": [\n      \"config\",\n      \"scripts\",\n      \"src/app/registerServiceWorker.js\",\n      \"src/**/*.test.js\"\n    ]\n  }\n```\n\nAdd scripts to `package.json`:\n\n```\n\"fix\": \". ./.env \u0026\u0026 yarn standard --fix\",\n\"lint\": \". ./.env \u0026\u0026 yarn standard\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrislaskey%2Fghost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrislaskey%2Fghost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrislaskey%2Fghost/lists"}