{"id":26422335,"url":"https://github.com/jollytoad/home","last_synced_at":"2026-04-12T10:40:55.021Z","repository":{"id":178310341,"uuid":"655652973","full_name":"jollytoad/home","owner":"jollytoad","description":"My Deno powered homepage","archived":false,"fork":false,"pushed_at":"2024-11-22T16:36:57.000Z","size":721,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-22T16:37:57.972Z","etag":null,"topics":["blog","deno","jsx","markdown","router","service-worker","typescript"],"latest_commit_sha":null,"homepage":"https://jollytoad.deno.dev/","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/jollytoad.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":"2023-06-19T10:21:17.000Z","updated_at":"2024-11-22T16:37:02.000Z","dependencies_parsed_at":"2023-11-30T13:27:29.817Z","dependency_job_id":"fb2e709e-c924-4429-b014-6546e48c2171","html_url":"https://github.com/jollytoad/home","commit_stats":null,"previous_names":["jollytoad/home"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jollytoad%2Fhome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jollytoad%2Fhome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jollytoad%2Fhome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jollytoad%2Fhome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jollytoad","download_url":"https://codeload.github.com/jollytoad/home/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244141434,"owners_count":20404836,"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":["blog","deno","jsx","markdown","router","service-worker","typescript"],"created_at":"2025-03-18T02:03:52.306Z","updated_at":"2025-12-30T22:36:30.040Z","avatar_url":"https://github.com/jollytoad.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Homepage of Mark Gibson (jollytoad)\n\nThis is codebase of my personal homepage. It's a place I've created for\ntinkering.\n\nIt was originally designed to run on [Deno](https://deno.com/), and be deployed\nto [Deno Deploy](https://deno.com/deploy).\n\nThere is also experimental support for running on [Bun](https://bun.sh/) and\ndeploying to [Cloudflare Pages](https://developers.cloudflare.com/pages). I hope\nto gradually add more runtime and deployment options as I investigate them.\n\n## Pre-requisites\n\nInstall [Deno](https://deno.com/manual/getting_started/installation).\n\nAlternatively use [pkgx dev](https://docs.pkgx.sh/using-dev/dev) environment, to\nautomatically fetch the required tooling (deno, bun, etc).\n\n## Local https support\n\n(Supports Deno \u0026 Bun)\n\nTo emulate a more realistic production environment locally, you can provide a\nlocalhost key/cert pair, which automatically be picked up and the server will be\nrun over `https`.\n\nThe simplest way is using [mkcert](https://github.com/FiloSottile/mkcert). To\ninstall via Homebrew on a Mac (or checkout the link for alternatives):\n\n```sh\nbrew install mkcert nss\n```\n\nThen create certificate and install a local certificate authority:\n\n```sh\ndeno task mkcert\n```\n\n## Usage locally\n\n### With Deno\n\nUsing Deno as the runtime:\n\n```sh\ndeno task start\n```\n\n### With Bun\n\nTo use Bun as the runtime, you must have\n[installed bun](https://bun.sh/docs/installation).\n\n```sh\ndeno task install:bun\ndeno task start:bun\n```\n\nor just directly execute:\n\n```sh\n./app/main_bun.ts\n```\n\nYou don't need Deno or Node installed to run via Bun.\n\n### With Cloudflare Pages (Wrangler)\n\nTo run as a Cloudflare Pages dev site, you must also have Bun pre-installed.\n\n```sh\ndeno task start:cloudflare\n```\n\nThis performs a build stage using Deno before starting.\n\n## Deployment\n\n### Deno Deploy\n\nSign up to [Deno Deploy](https://deno.com/deploy), create a project, and then\nedit the `deno.json` file and change the target project in the `deploy` task.\n\nGrab your Deploy access token, and set the `DENO_DEPLOY_TOKEN` env var.\n\nTo deploy a staging site:\n\n```sh\ndeno task deploy\n```\n\nOr, to deploy to production:\n\n```sh\ndeno task deploy --prod\n```\n\n### Cloudflare Pages\n\nSign up to [Cloudflare](https://dash.cloudflare.com), go to `Workers \u0026 Pages`\nand hit `Create`, switch to the `Pages` tab and click `Connect to Git`.\n\nYou can connect to this repo or a fork.\n\nYou have to configure the build settings as:\n\n- **Framework preset**: _None_\n- **Build command**:\n  `./scripts/install_deno.sh \u0026\u0026 $HOME/.deno/bin/deno task build:cloudflare`\n- **Build output directory**: `.cloudflare/dist`\n\nYou can now `Save and Deploy`.\n\n## How does it work?\n\nGo ahead, have a browse, take a look at [main.ts](./main.ts) to see how the app\nworks in production, you should be able to follow imports and functions to\nunderstand how it all hangs together.\n\nIf you are feeling more adventurous take a look at [dev.ts](./dev.ts) which also\ncalls various build scripts to dynamically generate the routing and cron job\nmodules.\n\nThe project uses and showcases much of my\n[http functions library](https://jsr.io/@http), which is designed to be easy to\nfollow and understand (hopefully).\n\n## Debugging tools\n\nIf you switch to `\"jsx\": \"react-jsxdev\"` in `deno.json`, then all elements will\ninclude an additional `jsx-dev` attribute with a link to it's place the source.\nA dev time script will also catch Alt/Option clicks on any element and open the\nsource file in VSCode.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjollytoad%2Fhome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjollytoad%2Fhome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjollytoad%2Fhome/lists"}