{"id":2517,"url":"https://github.com/spekulatius/web-stuff","name":"web-stuff","description":"Web stuff I've discovered and liked. My public notes.","projects_count":30,"last_synced_at":"2026-08-11T12:00:22.165Z","repository":{"id":97022208,"uuid":"258572231","full_name":"spekulatius/web-stuff","owner":"spekulatius","description":"Web stuff I've discovered and liked. My public notes.","archived":false,"fork":false,"pushed_at":"2023-06-02T17:46:16.000Z","size":36,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-07-23T03:03:50.851Z","etag":null,"topics":["awesome","list","personal","php","vue","vuepress","web-development","web-development-tools"],"latest_commit_sha":null,"homepage":"https://releasecandidate.dev","language":null,"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/spekulatius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"spekulatius","custom":"https://www.buymeacoffee.com/spekulatius"}},"created_at":"2020-04-24T16:59:25.000Z","updated_at":"2026-01-13T11:15:30.000Z","dependencies_parsed_at":"2024-01-04T20:13:14.355Z","dependency_job_id":"f96e3448-c608-4186-bc33-967ab50f5a14","html_url":"https://github.com/spekulatius/web-stuff","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/spekulatius/web-stuff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spekulatius%2Fweb-stuff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spekulatius%2Fweb-stuff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spekulatius%2Fweb-stuff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spekulatius%2Fweb-stuff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spekulatius","download_url":"https://codeload.github.com/spekulatius/web-stuff/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spekulatius%2Fweb-stuff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36519615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-11T02:00:06.871Z","response_time":99,"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"}},"created_at":"2024-01-04T20:13:11.084Z","updated_at":"2026-08-11T12:00:22.165Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Articles","JS/ES6","Legal","PHP","Vue","Bash","Hardware","Serverless"],"sub_categories":[],"readme":"# My web stuff\n\nAn opinionated list of libraries, ideas, code and articles I stumbled upon. Non-regular updated. I also maintain a little repo about [quickly put together hacks](https://github.com/spekulatius/hacks) without any plans to maintain these long.\n\n\n## PHP\n\n- [PHP-Spider](https://github.com/mvdbos/php-spider) - well-done library to spider the web.\n- [PHP Scraper](https://github.com/spekulatius/PHPScraper) - PHP scraping library I've built\n- [RakePlus](https://github.com/Donatello-za/rake-php-plus) - automatic keyword extracting of a given string.\n- [PHP NLP Tools](https://github.com/angeloskath/php-nlp-tools) - Natural Language Processing Tools in PHP\n- [Tor Detector](https://github.com/onlinesid/tor-detector) - Detect if user comes via Tor\n- [Crawler Detect](https://github.com/JayBizzle/Crawler-Detect) - Detect if the requestor is a crawler (based on user-agents)\n- [bref](https://github.com/brefphp/bref) - Serverless PHP using AWS Lambda\n- [sendportal](https://github.com/mettle/sendportal) - Send your own newsletters from this Laravel application\n- [domain-parser](https://github.com/jeremykendall/php-domain-parser) - with endless new domain parsing these gets harder and harder, this library helps you getting the job done.\n- [PHP VCR](https://github.com/php-vcr/php-vcr) - record your HTTP requests and reply them as tests.\n\n\n## JS/ES6\n\n- [webpage-webmentions](https://github.com/voxpelli/webpage-webmentions) - drop in implementation of webmentions. See [webmention.io](https://webmention.io/) and this [great post](https://mxb.dev/blog/using-webmentions-on-static-sites/) by @maxboeck.\n- [mailcheck](https://github.com/mailcheck/mailcheck) - reduce misspelled email addresses.\n- [gifify](https://github.com/vvo/gifify) - video to gif conversions.\n- [serp-parser](https://github.com/zlurad/serp-parser) - parse SERPs using this library, easy and simple.\n- [puppeteer-webperf](https://github.com/addyosmani/puppeteer-webperf) - automate performance testing using Puppeteer\n- [redaxios](https://github.com/developit/redaxios) - 800 byte wrapper around `fetch` to replace axios library\n- [puppeteer-recorder](https://github.com/checkly/puppeteer-recorder) - a browser extension to record actions and output a Puppeteer script\n- [puppeteer-crawler](https://github.com/yujiosaka/headless-chrome-crawler) - a distributed headless crawler.\n\n\n## Vue\n\n- [vue-web-extension](https://github.com/Kocal/vue-web-extension) - Boilerplate to start a browser extension using Vue. [Documentation](https://vue-web-extension.netlify.app/)\n- [vue-numerals](https://github.com/Kocal/vue-numerals) - Vue-wrapper around [Numeral.js](http://numeraljs.com/), a lib to parse and format numbers.\n\n\n## Bash\n\n - [HostCtl](https://github.com/guumaster/hostctl) - library to manage /etc/hosts (see [How I force myself to work](https://peterthaleikis.com/posts/how-i-force-myself-to-work/))\n - [rclone](https://rclone.org) ([GitHub](https://github.com/rclone/rclone)) - `rsync`-style backups to numerous cloud services\n \n \n## Serverless\n\n - [faasd](https://github.com/openfaas/faasd/) - hosting serverless functions yourself without all the pain.\n\n\n## Hardware\n\n - [WinDIY](https://github.com/Nerdiyde/WinDIY) - 3D-printed open-source DIY wind-turbine\n\n\n## Legal\n \n - [BEIPA](https://github.com/github/balanced-employee-ip-agreement) - GitHub's Balanced Employee IP Agreement (BEIPA).\n\n\n## Articles\n\n - [Dear Fuck Up: How Do I Figure Out What I Want in Life When Every Day Feels the Same?](https://jezebel.com/dear-fuck-up-how-do-i-figure-out-what-i-want-in-life-w-1843295430)\n - [Why People Become Internet Trolls](https://dradambell.com/why-people-become-internet-trolls/)\n - [Indieweb pt1: Syndicating Content to Twitter](https://mxb.dev/blog/syndicating-content-to-twitter-with-netlify-functions/)\n - [Indieweb pt2: Using Webmentions in Eleventy](https://mxb.dev/blog/using-webmentions-on-static-sites/)\n - [Cross-promoting articles to Telegram](https://gummibeer.dev/blog/2020/telegram-newsletter-command/)\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/spekulatius%2Fweb-stuff/projects"}