{"id":21153580,"url":"https://github.com/digitaloptimizationgroup/adn-example","last_synced_at":"2025-03-14T15:13:05.894Z","repository":{"id":39526887,"uuid":"189202597","full_name":"DigitalOptimizationGroup/adn-example","owner":"DigitalOptimizationGroup","description":"Example app using React Create App \u0026 Digital Optimization Group's ADN \u0026 CMS","archived":false,"fork":false,"pushed_at":"2023-01-03T22:56:14.000Z","size":8490,"stargazers_count":1,"open_issues_count":25,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T08:31:53.126Z","etag":null,"topics":["ab-testing","blue-green-deployment","canary-release","create-react-app","edge-deployment","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/DigitalOptimizationGroup.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":"2019-05-29T10:20:26.000Z","updated_at":"2023-09-18T14:47:00.000Z","dependencies_parsed_at":"2023-02-01T12:31:57.213Z","dependency_job_id":null,"html_url":"https://github.com/DigitalOptimizationGroup/adn-example","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/DigitalOptimizationGroup%2Fadn-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalOptimizationGroup%2Fadn-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalOptimizationGroup%2Fadn-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalOptimizationGroup%2Fadn-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DigitalOptimizationGroup","download_url":"https://codeload.github.com/DigitalOptimizationGroup/adn-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243597841,"owners_count":20316844,"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":["ab-testing","blue-green-deployment","canary-release","create-react-app","edge-deployment","react"],"created_at":"2024-11-20T10:57:45.917Z","updated_at":"2025-03-14T15:13:05.871Z","avatar_url":"https://github.com/DigitalOptimizationGroup.png","language":"JavaScript","readme":"# Developer Preview\n\nThe Digital Optimization Group's platform is currently available through a developer preview. If you would like to join the waiting list for access please email us at preview@digitaloptgroup.com. If you already have access, welcome to Digital Optimization Group. This guide will allow you to explore your new app's features and become familiar with the platform.\n\n## Documentation\n\nhttps://docs.digitaloptgroup.com/\n\n## \u003ca name=\"creating-an-account\" class=\"anchor\"\u003e\u003c/a\u003eCreating an account\n\nIf you have received an invitation link you can simply follow that URL and you will be redirected to Github to authenticate. The application only requires your public information and email address, it will not access any of your repositories. Once your account has been created you will have a full running application in the platform. You can immediately view the URLs associated with your app.\n\n## \u003ca name=\"urls\" class=\"anchor\"\u003e\u003c/a\u003eApplication URLs\n\nYou will need to replace `APP_ID` with your application id / project id to access the following URLs:\n\n\u003cb\u003eProxy\u003c/b\u003e\u003cbr/\u003e\n\n- https://APP_ID.edgebayes.com\n\n\u003cb\u003eBackend colors\u003c/b\u003e\u003cbr/\u003e\n\n- https://blue-APP_ID.edgefisher.com\n- https://green-APP_ID.edgefisher.com\n\n\u003cb\u003eAPI for the headless CMS\u003c/b\u003e\u003cbr/\u003e\n\n- https://api-APP_ID.edgeyates.com/resolve-features/helloWorld\n\n## \u003ca name=\"install-cli\" class=\"anchor\"\u003e\u003c/a\u003eInstall the CLI\n\nGet started by installing the Digital Optimization Group CLI.\n\n```sh\nnpm install -g @digitaloptgroup/cli\n```\n\nOnce installed you can see the help menu by running\n\n```\ndog\n```\n\nMost functionality is available under subcommands in the format `dog apps:build`. To see the full list of subcommands for a command run:\n\n```\ndog apps --help\n```\n\nAnd to see the options available for a specific command you can run that command with the `--help` flag.\n\n```\ndog apps:build --help\n```\n\n## \u003ca name=\"exploring\" class=\"anchor\"\u003e\u003c/a\u003eExploring your app\n\nWhen we created your app we configured the proxy to a/b test between your `blue` and `green` backends. If you visit your apps main URL, delete cookies, and refresh you should see the color changing: https://appId.edgebayes.com\n\nIn addition we have configured you CMS to work with our example application found at: https://github.com/DigitalOptimizationGroup/adn-example\n\nYou can fork and clone that repo and begin hacking.\n\nOnce you have the repo locally run `yarn` or `npm install`.\n\nEdit `index.js` to update line 11\n\n```js\nconst projectId = \"YOUR_NEW_PROJECT_ID\";\n```\n\n#### Login the CLI\n\n```sh\ndog login\n```\n\n#### Initialize the application\n\nIn the root directory of the example application run:\n\n```sh\n# when prompted choose your app id and create react app\ndog apps:init\n```\n\n#### Update proxy to single backend\n\n```sh\ndog proxy:prod blue\ndog proxy:apply\n```\n\n#### Build the application\n\nTo build the app run:\n\n```sh\ndog apps:build\n```\n\n#### Deploy to green backend\n\n```\ndog apps:apply green\n```\n\n#### Visit the backend with gatekeeping\n\n```\ndog proxy:gatekeep green\n```\n\n#### Canary release the new deployment\n\n```\ndog proxy:canary --production blue --canary green --weight 30\n```\n\nVisit your main URL and clear cookies several times. You should notice blue showing up more frequently than the new green backend.\n\n#### Promote the new deployment to production\n\n```\ndog proxy:prod green\ndog proxy:apply\n```\n\n## \u003ca name=\"tail-logs\" class=\"anchor\"\u003e\u003c/a\u003eTail your logs in realtime\n\nYou can tail any of the logs available from your application in realtime.\n\n#### Proxy Logs\n\nRun the following command and then refresh your website. You should see a realtime stream of proxy logs output into your console.\n\n```\ndog logs:proxyLogs --prettyjson\n```\n\n#### Real User Monitoring\n\nRun the following command and then refresh your website.\n\n```\ndog logs:performanceTiming --prettyjson\n```\n\n#### A/B test outcome\n\nRun the following command and then open some tabs in the list of Star Wars characters.\n\n```\ndog logs:outcome --prettyjson\n```\n\nSee a full list of available logs under the analytics section.\n\n## \u003ca name=\"preview-mode\" class=\"anchor\"\u003e\u003c/a\u003eOpen your website in realtime preview mode\n\nBy opening your website in realtime preview mode you will get as-you-type previews on your target website.\n\n```\ndog cms:preview\n```\n\n#### Open the CMS and edit some content\n\n```\ndog cms:login\n```\n\nExplore the documentation section \"Headless CMS\" to learn more about editing, previewing, and deploying content.\n\n## \u003ca name=\"custom-domain\" class=\"anchor\"\u003e\u003c/a\u003eAdd a custom domain name\n\nYou can point a custom subdomain at your application. Run the following command and point a CNAME from your subdomain to `custom-domain.edgebayes.com`. Domain validation happens inline\\* with no additional steps required.\n\n```\ndog domains:add DOMAIN_NAME\n```\n\n\\*See `dog domains:add --help` for additional validation options.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitaloptimizationgroup%2Fadn-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitaloptimizationgroup%2Fadn-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitaloptimizationgroup%2Fadn-example/lists"}