free-for-life: a generated README of vendor-quoted free tiers
A huge list of great stuff you can get for free!
At a glance
- What is it?
- wdhdev/free-for-life is a generated list of free-tier services, 21 categories deep, whose README refuses direct edits and points contributors at a hosted site. Every free-tier number in it is quoted from the vendor, in whatever unit the vendor chose.
- Who is it for?
- This list is useful as a discovery index and misleading as a budget, and the difference matters. The structure is sound: sources live in data/, a script regenerates the README and the site, and the categories are navigable, so an entry can be corrected in one place.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 11 days ago.
- What is it written in?
- Mainly HTML, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 4, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The README opens by forbidding edits to itself
The first line of the file is a data marker, and the second is a comment that reads DO NOT UPDATE THIS FILE DIRECTLY, followed by a pointer to the contributing guidelines. Everything after that is output. Each category is introduced by another HTML comment naming the file it came from, the first being a Markdown file named for the APIs, Data and ML section, and each category then renders as a two-column table of website and description. The repository layout explains where the output goes: a data directory holding the per-category sources, a scripts directory holding the generator, a website directory, a CNAME file for GitHub Pages, and a CONTRIBUTING.md. So the list is a build product with a source of truth, not a wiki page, which is the right call for something with hundreds of rows and one kind of entry.
Twenty-one categories, and one of them fills the visible file
The table of contents names twenty-one categories, running from APIs, Data and ML at the top to SSL at the bottom, with anchors generated from the headings. The list covers BaaS, databases, PaaS, domains, email, DNS, SSL, monitoring, messaging and streaming, payments and billing, code editors, design and UI, forms, courses, a Linux distributions section, a for students section, and separate artificial intelligence and code generation sections. In the README as it stands, one category is present: the first, whose rows run alphabetically from Abstract API to a row that stops partway through a name. That is roughly thirty rows out of a list whose size the table of contents implies is much larger, so the raw file is a sample and the site is the artifact.
Quotas arrive in the vendor's unit, not a comparable one
Read a handful of rows and the units scatter. Apify is five dollars of platform credits a month. Arize AI is free for up to two models. Calendarific is a thousand calls a month, Clarifai five thousand, Cloudmersive eight hundred, CurrencyScoop five thousand. Beeceptor is fifty requests per day. CurlHub is ten thousand requests a month. CraftMyPDF is a hundred PDFs a month and three templates. Cube is one gigabyte of data pass through a month. Deepnote is unlimited personal projects, up to seven hundred and fifty hours of standard hardware, and teams of up to three editors. Data Fetcher is a hundred runs a month, Data Miner five hundred pages, Diggernaut five thousand page requests, Dataimporter twenty thousand records. Calls, requests, pages, runs, records, PDFs, models, users, hours and gigabytes share one table and cannot be ranked against each other.
No row carries a date, and one row is a vendor campaign
Nothing in the table records when a quota was last confirmed. There is no checked-on column, no expiry column, and no note on any row saying the figure came from the vendor's own page on a given day, which means a row that was accurate when written and is now wrong looks identical to one that is still right. One row also does not simply link to the vendor. The entry for a mock API server points at a URL carrying a campaign parameter that names this list as the source, so clicking through attributes the visit to the project. That is a small thing on its own, and it is worth noticing for a different reason: it shows the links are maintained as promotional rows, and promotional rows are exactly the ones that go stale quietly when a vendor changes its plan.
Some quotas are phrased as lasting for life, in vendor language
The descriptions are written in the third person, in the voice a vendor uses on its own pricing page, and several of them promise permanence. The mock API row says fifty free requests per day for life with no credit card needed. The algorithm hosting row says it includes a free monthly allowance for running algorithms. The IP geolocation row offers a thousand requests per IP per day and adds that the lite database is free too, under a CC-BY 4.0 license. A lifetime quota is a vendor commitment with no expiry date attached, and this list has no mechanism to notice when one lapses, nor any way to distinguish it from a row that quotes a plain monthly cap. Treat the word for life as marketing copy, which is what it is.
The categories are alphabetical except where they are not
The table of contents is ordered by category name, with generated anchors, and the rows inside each category are sorted too, case-insensitively, which is why a lower-case domain name sits between two capitalised product names. One pair breaks the order: For Students comes before Forms, and the alphabetical position of the two is the other way round. It is a small thing, and it matters only because the ordering is what makes a generated list scannable, and because a sorted list whose sort has a visible exception is a hint to check the generator rather than the data. The categories themselves also stop at a line the project chose: payments and billing is present, anything requiring a payment instrument to test is not, and the list is organised by what is free to start rather than by what is free to keep.
Editorial conclusion
This list is useful as a discovery index and misleading as a budget, and the difference matters. The structure is sound: sources live in data/, a script regenerates the README and the site, and the categories are navigable, so an entry can be corrected in one place. What it cannot do is tell you whether a tier is still there. The quotas are vendor copy, the units are not comparable to each other, no row carries a date, and rows already contain the kind of detail, a campaign parameter on one link and a per-day quota phrased as lasting for life, that a stale list gets wrong quietly. Check the vendor's own pricing page before committing, and use this only to decide what to go look at.
Frequently asked questions
What is the wdhdev/free-for-life repository?
A generated list of free-tier services across 21 categories, built from per-category files in a data directory by a script into the README and a website deployed through a CNAME file on GitHub Pages. The README opens by telling readers not to edit it directly.
How many categories does the free-for-life list cover?
Twenty-one, from APIs, Data and ML through Artificial Intelligence, BaaS, Calendar, Code Editors, Code Generation, Courses, DNS, Databases, Design and UI, Domains, Email, Font, For Students, Forms, Linux Distributions, Messaging and Streaming, Monitoring, PaaS, Payments and Billing, and SSL.
Do the free-for-life entries record when their quotas were checked?
No. There is no date, no expiry and no verification note on any row. The quota figures are written in the vendor's own voice, and units differ row to row, from calls and requests per month to requests per day, pages, runs, records, PDFs, models, users, hours and gigabytes.
How do you add or remove an item on the free-for-life list?
Not by editing the README, which carries a comment forbidding direct updates. The file points to contributing guidelines hosted on the project site, and the repository holds both those guidelines in CONTRIBUTING.md and the per-category source files that the generator reads.
Where is the free-for-life list published?
On GitHub Pages at the address in the repository's CNAME file, and the README is the same content in repository form. The primary language of the repository is recorded as HTML because of the website directory.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/wdhdev-free-for-life)