{"id":22954412,"url":"https://github.com/stephansama/stephansama","last_synced_at":"2026-03-11T02:21:37.293Z","repository":{"id":172117957,"uuid":"449035335","full_name":"stephansama/stephansama","owner":"stephansama","description":"GitHub README and dotfile configurations for @stephansama","archived":false,"fork":false,"pushed_at":"2026-03-04T07:16:10.000Z","size":59091,"stargazers_count":12,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-04T13:35:38.716Z","etag":null,"topics":["dotfiles","dotfiles-linux","dotfiles-macos"],"latest_commit_sha":null,"homepage":"https://files.stephansama.info/","language":"Makefile","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/stephansama.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"stephansama","buy_me_a_coffee":"stephanrandle","thanks_dev":"u/gh/stephansama"}},"created_at":"2022-01-17T20:13:08.000Z","updated_at":"2026-03-04T07:16:14.000Z","dependencies_parsed_at":"2026-01-17T03:01:52.481Z","dependency_job_id":null,"html_url":"https://github.com/stephansama/stephansama","commit_stats":null,"previous_names":["stephansama/stephansama"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/stephansama/stephansama","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephansama%2Fstephansama","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephansama%2Fstephansama/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephansama%2Fstephansama/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephansama%2Fstephansama/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stephansama","download_url":"https://codeload.github.com/stephansama/stephansama/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephansama%2Fstephansama/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30367811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"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":["dotfiles","dotfiles-linux","dotfiles-macos"],"created_at":"2024-12-14T16:17:06.426Z","updated_at":"2026-03-11T02:21:37.281Z","avatar_url":"https://github.com/stephansama.png","language":"Makefile","funding_links":["https://github.com/sponsors/stephansama","https://buymeacoffee.com/stephanrandle","https://thanks.dev/u/gh/stephansama"],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD013 MD033 MD041 --\u003e\n\u003cpicture\u003e\n \u003csource srcset=\"https://raw.githubusercontent.com/stephansama/static/refs/heads/main/gh-banner-light.png\" media=\"(prefers-color-scheme: light)\"/\u003e\n \u003csource srcset=\"https://raw.githubusercontent.com/stephansama/static/refs/heads/main/gh-banner-dark.png\" media=\"(prefers-color-scheme: dark)\"/\u003e\n \u003cimg src=\"https://raw.githubusercontent.com/stephansama/static/refs/heads/main/gh-banner-dark.png\" alt=\"stephansama's banner\" /\u003e\n\u003c/picture\u003e\n\n\u003cp align=\"center\"\u003e\nMy name is \u003cb\u003eStephan Randle\u003c/b\u003e, a Fullstack Web Developer specializing in frontend technologies. With nearly three years of experience as a Frontend Engineer at \u003ca href=\"https://www.uwm.com\" target=\"_blank\"\u003eUnited Wholesale Mortgage\u003c/a\u003e, I have a strong foundation in building and optimizing web applications. My technical expertise is complemented by my completion of the Software Engineering Immersive Course at General Assembly in March 2022.\n\u003cbr /\u003eBeyond my professional work, I own and maintain my own \u003ca href=\"https://blog.stephansama.info\" target=\"_blank\"\u003eblog\u003c/a\u003e, where I share insights on web development, programming best practices, and emerging technologies.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cpicture\u003e\n\u003csource srcset=\"https://raw.githubusercontent.com/stephansama/static/refs/heads/main/gh-skill-icons-light.svg\" media=\"(prefers-color-scheme: light)\" /\u003e\n\u003csource srcset=\"https://raw.githubusercontent.com/stephansama/static/refs/heads/main/gh-skill-icons-dark.svg\" media=\"(prefers-color-scheme: dark)\" /\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/stephansama/static/refs/heads/main/gh-skill-icons-light.svg\" alt=\"skill banner\" /\u003e\n\u003c/picture\u003e\n\u003c/div\u003e\n\n\u003c!-- STATS --\u003e\n\n\u003cp align=\"center\"\u003e\n \u003cpicture\u003e\n  \u003csource srcset=\"https://readme-stats.stephansama.info/api?username=stephansama\u0026theme=catppuccin_mocha\u0026show_icons=true\u0026hide_border=true\" media=\"(prefers-color-scheme: dark)\"/\u003e\n  \u003csource srcset=\"https://readme-stats.stephansama.info/api?username=stephansama\u0026theme=catppuccin_latte\u0026show_icons=true\u0026hide_border=true\" media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"/\u003e\n  \u003cimg width=\"54%\" src=\"https://readme-stats.stephansama.info/api?username=stephansama\u0026theme=catppuccin_mocha\u0026show_icons=true\u0026hide_border=true\" alt=\"Github Stats\"/\u003e\n \u003c/picture\u003e\n \u003cpicture\u003e\n  \u003csource srcset=\"https://readme-stats.stephansama.info/api/top-langs/?username=stephansama\u0026theme=catppuccin_mocha\u0026layout=compact\u0026hide_border=true\" media=\"(prefers-color-scheme: dark)\"/\u003e\n  \u003csource srcset=\"https://readme-stats.stephansama.info/api/top-langs/?username=stephansama\u0026theme=catppuccin_latte\u0026layout=compact\u0026hide_border=true\" media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"/\u003e\n  \u003cimg width=\"41%\" src=\"https://readme-stats.stephansama.info/api/top-langs/?username=stephansama\u0026theme=catppuccin_mocha\u0026layout=compact\u0026hide_border=true\" alt=\"Github Most Used Languages\"/\u003e\n \u003c/picture\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n \u003cpicture\u003e\n  \u003csource srcset=\"https://github-readme-streak-stats-9m8ugfa77-denvercoder1.vercel.app/?user=stephansama\u0026theme=catppuccin-mocha\u0026hide_border=true\" media=\"(prefers-color-scheme: dark)\"/\u003e\n  \u003csource srcset=\"https://github-readme-streak-stats-9m8ugfa77-denvercoder1.vercel.app/?user=stephansama\u0026theme=catppuccin-latte\u0026hide_border=true\" media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"/\u003e\n  \u003cimg width=\"95%\" src=\"https://github-readme-streak-stats-9m8ugfa77-denvercoder1.vercel.app/?user=stephansama\u0026theme=catppuccin-mocha\u0026hide_border=true\" alt=\"Github Streak\"/\u003e\n \u003c/picture\u003e\n\u003c/p\u003e\n\n## :newspaper: Latest articles\n\u003c!-- BLOG-POST-LIST:START --\u003e\n- [Determining the Age of a Git Repository](https://blog.stephansama.info/articles/determining-the-age-of-a-git-repository)\n- [How Cloudflare Rebuilt Next.js with Vite Using AI Vibe Coding](https://blog.stephansama.info/articles/how-cloudflare-rebuilt-next-in-vite-using-vibe-coding)\n- [How npmx is Transforming the Node.js Package Ecosystem](https://blog.stephansama.info/articles/how-npmx-revolutionized-the-npm-community)\n- [How to pipe data into a node script](https://blog.stephansama.info/articles/how-to-pipe-data-into-a-node-script)\n- [How to Connect Cloudflare Tunnel to Synology NAS](https://blog.stephansama.info/articles/how-to-connect-cloudflare-tunnel-to-synology-nas)\n\u003c!-- BLOG-POST-LIST:END --\u003e\n\n## :video_camera: Latest YouTube videos\n\n\u003c!-- BEGIN YOUTUBE-CARDS --\u003e\n[![Switching to tanstack ai for ai-commit-msg cli (part 3)](https://ytcards.demolab.com/?id=6itvjvt0gtk\u0026title=Switching+to+tanstack+ai+for+ai-commit-msg+cli+%28part+3%29\u0026lang=en\u0026timestamp=1767240450\u0026background_color=%231e1e2e\u0026title_color=%23cdd6f4\u0026stats_color=%23a6adc8\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"Switching to tanstack ai for ai-commit-msg cli (part 3)\")](https://www.youtube.com/watch?v=6itvjvt0gtk#gh-dark-mode-only)[![Switching to tanstack ai for ai-commit-msg cli (part 3)](https://ytcards.demolab.com/?id=6itvjvt0gtk\u0026title=Switching+to+tanstack+ai+for+ai-commit-msg+cli+%28part+3%29\u0026lang=en\u0026timestamp=1767240450\u0026background_color=%23eff1f5\u0026title_color=%234c4f69\u0026stats_color=%236c6f85\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"Switching to tanstack ai for ai-commit-msg cli (part 3)\")](https://www.youtube.com/watch?v=6itvjvt0gtk#gh-light-mode-only)\n[![codewars attempt](https://ytcards.demolab.com/?id=UtXoV4Jo0qQ\u0026title=codewars+attempt\u0026lang=en\u0026timestamp=1767238961\u0026background_color=%231e1e2e\u0026title_color=%23cdd6f4\u0026stats_color=%23a6adc8\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"codewars attempt\")](https://www.youtube.com/watch?v=UtXoV4Jo0qQ#gh-dark-mode-only)[![codewars attempt](https://ytcards.demolab.com/?id=UtXoV4Jo0qQ\u0026title=codewars+attempt\u0026lang=en\u0026timestamp=1767238961\u0026background_color=%23eff1f5\u0026title_color=%234c4f69\u0026stats_color=%236c6f85\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"codewars attempt\")](https://www.youtube.com/watch?v=UtXoV4Jo0qQ#gh-light-mode-only)\n[![Switching from vercel ai sdk to tanstack sdk - ai-commit-msg cli (part 2)](https://ytcards.demolab.com/?id=PKOK6Kaz_l0\u0026title=Switching+from+vercel+ai+sdk+to+tanstack+sdk+-+ai-commit-msg+cli+%28part+2%29\u0026lang=en\u0026timestamp=1767149181\u0026background_color=%231e1e2e\u0026title_color=%23cdd6f4\u0026stats_color=%23a6adc8\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"Switching from vercel ai sdk to tanstack sdk - ai-commit-msg cli (part 2)\")](https://www.youtube.com/watch?v=PKOK6Kaz_l0#gh-dark-mode-only)[![Switching from vercel ai sdk to tanstack sdk - ai-commit-msg cli (part 2)](https://ytcards.demolab.com/?id=PKOK6Kaz_l0\u0026title=Switching+from+vercel+ai+sdk+to+tanstack+sdk+-+ai-commit-msg+cli+%28part+2%29\u0026lang=en\u0026timestamp=1767149181\u0026background_color=%23eff1f5\u0026title_color=%234c4f69\u0026stats_color=%236c6f85\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"Switching from vercel ai sdk to tanstack sdk - ai-commit-msg cli (part 2)\")](https://www.youtube.com/watch?v=PKOK6Kaz_l0#gh-light-mode-only)\n[![Creating a new package - ai commit msg cli (part 1)](https://ytcards.demolab.com/?id=D-E2upMnPtw\u0026title=Creating+a+new+package+-+ai+commit+msg+cli+%28part+1%29\u0026lang=en\u0026timestamp=1766977096\u0026background_color=%231e1e2e\u0026title_color=%23cdd6f4\u0026stats_color=%23a6adc8\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"Creating a new package - ai commit msg cli (part 1)\")](https://www.youtube.com/watch?v=D-E2upMnPtw#gh-dark-mode-only)[![Creating a new package - ai commit msg cli (part 1)](https://ytcards.demolab.com/?id=D-E2upMnPtw\u0026title=Creating+a+new+package+-+ai+commit+msg+cli+%28part+1%29\u0026lang=en\u0026timestamp=1766977096\u0026background_color=%23eff1f5\u0026title_color=%234c4f69\u0026stats_color=%236c6f85\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"Creating a new package - ai commit msg cli (part 1)\")](https://www.youtube.com/watch?v=D-E2upMnPtw#gh-light-mode-only)\n[![Advent of Code 2025 Day 1 Part 1](https://ytcards.demolab.com/?id=z5wuzXSRakI\u0026title=Advent+of+Code+2025+Day+1+Part+1\u0026lang=en\u0026timestamp=1766349838\u0026background_color=%231e1e2e\u0026title_color=%23cdd6f4\u0026stats_color=%23a6adc8\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"Advent of Code 2025 Day 1 Part 1\")](https://www.youtube.com/watch?v=z5wuzXSRakI#gh-dark-mode-only)[![Advent of Code 2025 Day 1 Part 1](https://ytcards.demolab.com/?id=z5wuzXSRakI\u0026title=Advent+of+Code+2025+Day+1+Part+1\u0026lang=en\u0026timestamp=1766349838\u0026background_color=%23eff1f5\u0026title_color=%234c4f69\u0026stats_color=%236c6f85\u0026max_title_lines=1\u0026width=250\u0026border_radius=5 \"Advent of Code 2025 Day 1 Part 1\")](https://www.youtube.com/watch?v=z5wuzXSRakI#gh-light-mode-only)\n\u003c!-- END YOUTUBE-CARDS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephansama%2Fstephansama","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstephansama%2Fstephansama","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephansama%2Fstephansama/lists"}