{"id":49293671,"url":"https://github.com/kevingorski/denodevs.com","last_synced_at":"2026-04-26T02:03:09.420Z","repository":{"id":189005271,"uuid":"676288608","full_name":"kevingorski/denodevs.com","owner":"kevingorski","description":"Deno developer reverse job board","archived":false,"fork":false,"pushed_at":"2025-08-11T18:20:29.000Z","size":1727,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-18T14:34:57.954Z","etag":null,"topics":["deno","employment","jobseeker"],"latest_commit_sha":null,"homepage":"https://denodevs.com","language":"TypeScript","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/kevingorski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"kevingorski","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-08-08T21:37:58.000Z","updated_at":"2025-04-02T04:57:56.000Z","dependencies_parsed_at":"2023-10-11T23:20:56.248Z","dependency_job_id":"85ca47c8-f746-44da-bd9e-2e41cac59f62","html_url":"https://github.com/kevingorski/denodevs.com","commit_stats":null,"previous_names":["kevingorski/denodevs.io"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kevingorski/denodevs.com","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevingorski%2Fdenodevs.com","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevingorski%2Fdenodevs.com/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevingorski%2Fdenodevs.com/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevingorski%2Fdenodevs.com/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevingorski","download_url":"https://codeload.github.com/kevingorski/denodevs.com/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevingorski%2Fdenodevs.com/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32283294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"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":["deno","employment","jobseeker"],"created_at":"2026-04-26T02:03:08.728Z","updated_at":"2026-04-26T02:03:09.413Z","avatar_url":"https://github.com/kevingorski.png","language":"TypeScript","funding_links":["https://github.com/sponsors/kevingorski"],"categories":[],"sub_categories":[],"readme":"# Deno Devs Reverse Job Board\n\n[Deno Devs](https://denodevs.com) is a reverse job board for developers looking\nto work with Deno.\n\n## Getting Started Locally\n\n### Dependencies\n\nYou may install these manually or with\n[pkgx developer environment setup](https://docs.pkgx.sh/using-dev/dev) if\ndesired.\n\n- [Deno](https://deno.com/manual/getting_started/installation)\n- [Git](https://github.com/git-guides/install-git)\n\nThese require manual setup (but are optional):\n\n- [A free Stripe account](https://stripe.com)\n- [Stripe CLI](https://stripe.com/docs/stripe-cli#install)\n\n### Setup the repo\n\n1. Clone the repo:\n\n   ```bash\n   git clone https://github.com/kevingorski/denodevs.com.git\n   cd denodevs\n   ```\n\n2. Create a `.env` file to store environmental variables:\n\n   ```\n   cp .example.env .env\n   ```\n\n### Auth (OAuth)\n\n#### GitHub\n\n1. [Register a new GitHub OAuth application](https://github.com/settings/applications/new)\n   with the following values:\n\n   - `Application name` = a name of your own choosing\n   - `Homepage URL` = `http://localhost:8000`\n   - `Authorization callback URL` = `http://localhost:8000/callback`\n\n2. Once registered, copy the `Client ID` value to the `GITHUB_CLIENT_ID` value\n   in your `.env` file.\n3. Click `Generate a new client secret` and copy the resulting client secret to\n   the `GITHUB_CLIENT_SECRET` environment variable in your `.env` file.\n\n#### Google\n\n1. [Create a Google account](https://accounts.google.com) if you don't already\n   have one.\n2. Accept the T\u0026C for your account on\n   [Google Cloud Console](https://console.cloud.google.com/).\n3. Go to \"APIs \u0026 Services\"\n4. Create a project for Deno Devs development\n5. With that project selected, create an OAuth consent screen with the following\n   settings:\n   1. `External` (not `Internal`)\n   2. App name `Deno Devs`\n   3. User support email: select any email associated with your account\n   4. Authorized domains: `localhost` by default for dev\n   5. Developer contact information: any email address you'd like\n   6. OAuth scopes:\n      1. `openid`\n      2. `./auth/userinfo.email`\n      3. `./auth/userinfo.profile`\n   7. Test users\n      1. Add any email addresses you'd like to use for testing (up to 100)\n6. Under \"Credentials,\" \"+ Create Credentials,\" \"OAuth Cliend ID\"\n   1. Application type `Web application`\n   2. Name `Deno Devs`\n   3. Authorized JavaScript origins `http://localhost` (or however you're\n      hostiing dev)\n   4. Authorized redirect URIs\n      1. `http://localhost/googleCallback`\n      2. `https://developers.google.com/oauthplayground` if you'd like to use\n         the\n         [OAuth 2.0 Playground](https://developers.google.com/oauthplayground/)\n         to test that everything is working (optional)\n   5. Set the `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` in your `.env` file\n7. Go to \"Enabled APIs \u0026 Services,\" click \"+ Enable Apis and Services\"\n   1. Search for \"people\" to find the \"Google People API\", click on it\n   2. Click \"Enable\"\n\n### Email\n\nBy default emails will be sent to the console rather than sent via\n[Resend](https://resend.com/). If you have a Resend API key, that can be set at\n`RESEND_API_KEY`, but you'll still need to turn off `SEND_EMAIL_TO_CONSOLE`\n(`=false`).\n\nYou can also test changes to emails via the Admin area (explained in the next\nsection).\n\n### Admin Access\n\nIn order to access the Admin area, you'll need to either use the default\npasswords or update them.\n\n**Caution**: By default local development traffic is not secured and these\nvalues are sent via basic auth, so do not use anything you wouldn't want public\n(because it essentially is).\n\n```env\nADMIN_PASSWORD=xxx\nADMIN_USERNAME=xxx\n```\n\n### Securing Local Traffic (optional)\n\nIf you do set up a local SSL certficate, the following environment values will\nneed to be updated:\n\n```env\nSITE_BASE_URL=https://localhost:8000\nUSE_SECURE_COOKIES=true\n```\n\n### Payments and Subscriptions using Stripe (optional)\n\n\u003e Note: Stripe is only enabled if the `STRIPE_SECRET_KEY` environment variable\n\u003e is set.\n\n1. Copy your Stripe secret key as `STRIPE_SECRET_KEY` into your `.env` file. We\n   recommend using the test key for your development environment.\n2. Run `deno task init:stripe` and follow the instructions. This automatically\n   creates your \"Premium tier\" product and configures the Stripe customer\n   portal.\n   \u003e Note: go to [tools/init_stripe.ts](tools/init_stripe.ts) if you'd like to\n   \u003e learn more about how the `init:stripe` task works.\n3. Listen locally to Stripe events:\n   ```\n   stripe listen --forward-to localhost:8000/api/stripe-webhooks --events=customer.subscription.created,customer.subscription.deleted\n   ```\n4. Copy the webhook signing secret to [.env](.env) as `STRIPE_WEBHOOK_SECRET`.\n\n\u003e Note: You can use\n\u003e [Stripe's test credit cards](https://stripe.com/docs/testing) to make test\n\u003e payments while in Stripe's test mode.\n\n### Running the Server\n\nFinally, start the server by running:\n\n```\ndeno task start\n```\n\nGo to [http://localhost:8000](http://localhost:8000) to begin playing with your\nnew SaaS app.\n\n### Bootstrapping your local Database (Optional)\n\nTODO: This currently doesn't work\n\n```\ndeno task db:seed\n```\n\nTo see all the values in your local Deno KV database, run\n\n```\ndeno task db:dump\n```\n\nAnd all kv pairs will be logged to stdout\n\nTo reset your Deno KV database, run\n\n```\ndeno task db:reset\n```\n\nSince this operation is not recoverable, you will be prompted to confirm\ndeletion before proceeding.\n\n## Contributing\n\nTo come...\n\nBefore submitting, run the following to check the formatting, linting, and types\nand run tests in one hit:\n\n```\ndeno task ok\n```\n\n## Goals and Philosophy\n\nTo come...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevingorski%2Fdenodevs.com","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevingorski%2Fdenodevs.com","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevingorski%2Fdenodevs.com/lists"}