{"id":15099473,"url":"https://github.com/cloudspeech/houdini-talk","last_synced_at":"2026-02-16T13:32:58.584Z","repository":{"id":242832274,"uuid":"805908667","full_name":"cloudspeech/houdini-talk","owner":"cloudspeech","description":"Conference talk \"Houdini's Magic Trick for the Enterprise\" about the eminent problem-solving utility of little web components that do one thing, but do it well","archived":false,"fork":false,"pushed_at":"2024-06-05T09:30:49.000Z","size":1363,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-09T20:06:08.785Z","etag":null,"topics":["enterprise","frontend","javascript","talk","web","webcomponents"],"latest_commit_sha":null,"homepage":"https://cloudspeech.github.io/houdini-talk/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudspeech.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-25T20:15:26.000Z","updated_at":"2024-06-05T09:30:53.000Z","dependencies_parsed_at":"2024-12-06T12:33:59.341Z","dependency_job_id":null,"html_url":"https://github.com/cloudspeech/houdini-talk","commit_stats":{"total_commits":72,"total_committers":1,"mean_commits":72.0,"dds":0.0,"last_synced_commit":"c09307c82a649b978847499405ea66c5f782ab8e"},"previous_names":["cloudspeech/houdini-talk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cloudspeech/houdini-talk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudspeech%2Fhoudini-talk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudspeech%2Fhoudini-talk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudspeech%2Fhoudini-talk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudspeech%2Fhoudini-talk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudspeech","download_url":"https://codeload.github.com/cloudspeech/houdini-talk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudspeech%2Fhoudini-talk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29509131,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["enterprise","frontend","javascript","talk","web","webcomponents"],"created_at":"2024-09-25T17:21:27.692Z","updated_at":"2026-02-16T13:32:58.570Z","avatar_url":"https://github.com/cloudspeech.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# houdini-talk\n\nConference talk \"Houdini's Magic Trick for the Enterprise\" about the eminent problem-solving utility of little [**web components**](https://www.webcomponents.org/) that do one thing, but do it well.\n\n## Preparation\n\nI tried to loosely follow\nhttps://nathanbrixius.wordpress.com/2020/01/29/how-i-create-presentation-content/.\n\nHowever, preparing the short essay mutated into full-blown\nword-by-word speaker notes eventually.\n\nAnd I decided to make the slides as conventional, individual HTML web\npages. This turned out to be a good decision, because it allowed me to\nembed live demos right inside presentation slides \u0026mdash; avoiding all\nthe usual hassle with switching tabs or even applications for demoing\nstuff.\n\nI did not have time to share styling between slides, which is one\nthing I would improve. I would also standardize a skeleton of slides,\nuse a static site generator to share fragments across pages, and use\nthe newfangled view transitions for page-to-page animation.\n\n## Giving the talk\n\nI presented this talk at AXA DevCon 2024, an internal developer\nconference of AXA Switzerland held on June 4, 2024, in Winterthur.\n\n## How to run the presentation\n\n1. Install [bun](https://bun.sh/).\n2. `bun install`\n3. `bun start`\n4. Point your browser at http://localhost:8080\n5. Press SPACE to advance to next slide.\n6. Slides 20 and 33 benefit from switching languages by way of the\nlanguage selector in the top right corner.\n\n## Reactions during the Question Period\n\nI got an interesting question that expressed curiousity or even doubt\nabout slide 33. The audience member asked to see the page source.\n\nUsing `View Page Source` on that very slide I could demonstrate that,\nindeed, there was no hidden magic or precompilation involved, just\ncomposition of few custom elements and normal HTML tags.\n\nI also showed that in the Elements tab of Chrome Developer Tools one\ncan see that both the \u0026lt;sig-nal\u0026gt; and \u0026lt;trans-late\u0026gt; web\ncomponents are of the self-vanishing type, as explained in the speaker\nnotes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudspeech%2Fhoudini-talk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudspeech%2Fhoudini-talk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudspeech%2Fhoudini-talk/lists"}