Open-source project
doocs/technical-books avatar
doocs/technical-books

doocs/technical-books: a curated reading list for engineers, built as a VitePress site

Books written by well-known internet tech experts at home and abroad, covering computer fundamentals, networking, frontend, backend, databases, architecture, big data and deep learning.

7,026 stars1,082 forksTypeScriptCC-BY-SA-4.0

At a glance

What is it?
The repository is a Chinese-language book list covering computer systems, networks, frontend, backend, databases, architecture and machine learning, rendered with VitePress and deployed to Cloudflare Workers. It is a recommendation index, not a library, and its value depends on how much you trust the editors.
Who is it for?
Adopt it as a reading shortlist if you read Chinese and want a starting point across computer systems, networks, backend and databases, and check the Discussions thread at github.com/doocs/technical-books/discussions/30 before trusting any single entry. The list is primarily in Chinese and does not itself host the books.
Can I use it commercially?
Yes, with credit. CC-BY-SA-4.0 allows commercial use as long as you credit the authors and indicate what you changed. It is written for creative content, so check how it applies to any code.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • doocs/technical-books7,026 ★ · +24
Star history
Repository2026-09-282026-11-14
doocs/technical-books7k7k

24 Stars in the last 47 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What doocs/technical-books actually is

This is a reading list, not a library and not a book. The README opens by saying that books are a main way people acquire knowledge and that many developers no longer take the time to read them, then states the project's position plainly: Doocs encourages readers to buy legitimate copies to support the original authors, and clicking a book title jumps to a purchase page. That single sentence defines the whole product. Every entry in the tables is a title, one or more authors and translators, and a short abstract, with the title linked to a store such as jd.com or dangdang.com.

The scope is broad by design. The README sections visible in the repository cover computer systems and algorithms, computer networks, and the repository description adds frontend, backend, databases, architecture, big data and deep learning. The homepage is https://book.doocs.org. The primary language of the repository is TypeScript, which is a hint about what the code actually does: it is the site, not the data. The reading list lives in markdown under docs/, and TypeScript is present because VitePress, Vue and the Cloudflare worker are TypeScript projects.

Who it is for: a developer who reads Chinese and wants a shortlist rather than a search result page. The abstracts are written to justify the pick, not to summarise the book's table of contents. The entry for 编码:隐匿在计算机软硬件背后的语言 says it explains how computers work without being obscure, and addresses both experts and beginners. The entry for 算法(第 4 版) calls it more practical and readable than typical algorithm teaching material and recommends it for beginners. That editorial voice is the product.

How the list is structured and how the site is built

The data model is a markdown table per topic. Each row has a number, a linked title with a year in brackets where the editors know it, the author and translator credits, and an abstract. There is no schema, no front matter per book, and no database. Adding a book means editing a table in the docs directory and opening a pull request.

The site layer is VitePress. The package.json scripts are docs:dev, docs:build and docs:preview, all of which call vitepress against the docs directory. Comments are handled by vitepress-plugin-comment-with-giscus, which is the only runtime dependency listed; giscus stores discussion threads in GitHub Discussions, which fits a project whose contribution path is already pull requests and Discussions.

Deployment is the interesting part. The deploy:cf script runs the VitePress build and then wrangler deploy, and the repository carries worker.ts and wrangler.toml at the top level. So the built static site is served through a Cloudflare Worker rather than a plain static host. That choice buys routing and edge behaviour at the cost of a build step that depends on wrangler and on the workerd binary, which appears in the onlyBuiltDependencies list alongside esbuild. A contributor who only wants to fix a typo in a book abstract still installs the full toolchain.

The toolchain is pinned hard. The package manager is pnpm 10.34.7, Node must be 22.12.0 or later, and the pnpm overrides block pins esbuild to 0.28.2, vite to 8.3.4, postcss to 8.5.30, nanoid to 3.3.19 and several others. VitePress itself is 2.0.0-alpha.20. That is an alpha of the documentation framework holding up a site whose content is the point.

Installing doocs/technical-books and building the site locally

The commands below come from the scripts and engines fields in package.json. You need Node 22.12.0 or later and pnpm 10.34.7, since the packageManager field pins that exact version.

Install dependencies from the repository root:

bash
pnpm install

Start the local documentation server. VitePress prints a local URL, typically on port 5173, and reloads the page when you edit a markdown file under docs/:

bash
pnpm run docs:dev

That is the whole loop for a content change. Edit a table row in docs/, save, and the browser reflects it. To check the production output before proposing a change:

bash
pnpm run docs:build
pnpm run docs:preview

The build writes the static site and preview serves it locally. If you intend to deploy, the repository provides one script that chains the build and the Cloudflare upload:

bash
pnpm run deploy:cf

There is also a typecheck script, tsc --noEmit, which is worth running if you touch worker.ts. Note that the build is the part most likely to fail on a fresh machine: workerd and esbuild are the only dependencies allowed to run install scripts, and the overrides pin versions that may not match what a stale lockfile expects.

The recommendation list is the weak point, not the code

The README invites suggestions in the Discussions area and accepts pull requests, which means the list is open to anyone who can argue for an entry, and the only visible filter is reviewer attention. For a list whose stated purpose is to counter shallow reading habits, a stated selection rule would matter. You cannot tell from the repository whether an abstract reflects someone who read the book or someone who read its back cover.

Currency is the second issue. Several entries carry years in the title, such as 编码[2012], 码农翻身[2018] and 领域驱动设计(修订版)[2016]. Those are classics and the years are honest, but the list mixes them with newer material without saying what a reader should pick first or what has been superseded. A reader looking for a current book on, say, deep learning gets a topic heading, not guidance on which of the entries is still the right starting point.

Language is the third boundary. The site, the abstracts and the purchase links are Chinese, and the links point at Chinese retailers. An English-only reader can extract the titles but loses the abstracts, which are the actual editorial content. If you want a machine-readable dataset, this is not one: there is no JSON export, no API and no per-book metadata beyond what the table columns hold.

How it compares with a general book index

The obvious alternative is a general book catalogue or a community reading list on a platform like Goodreads or Douban, where the same titles carry many reviews and ratings. The difference in approach is centralised editorial voice versus distributed opinion. A catalogue gives you hundreds of takes and no decision; doocs/technical-books gives you one short paragraph per book and a clear stance that you should buy it. If your problem is choosing between five books on the same subject, a catalogue's review volume helps. If your problem is that you do not know which five books exist for a subject, the curated table is faster.

If you want per-book discussion, ratings or reading-order guidance, none of that exists here, and the Discussions thread is the only place where an argument about a pick can happen.

Licence and the cost of keeping it current

The repository is licensed CC-BY-SA-4.0, a Creative Commons licence intended for content rather than code. The practical consequence is that the list text can be reused and adapted, including commercially, as long as attribution is given and derivative works carry the same licence. That matters if you want to mirror the tables into an internal wiki or translate them: the share-alike condition travels with your version. It does not grant any rights to the books themselves, and the README's instruction to buy legitimate copies is the project's own position on that. This is a description of the licence, not legal advice; if you plan to republish the tables inside a product, read the licence text in the LICENSE file.

Upgrade cost is mostly toolchain cost. VitePress is pinned at 2.0.0-alpha.20, and the overrides pin vite, esbuild, postcss and rollup versions explicitly. That protects the build from surprise breakage but also means a VitePress upgrade is not a one-line change: you move the framework, then revisit the override list, then rebuild and redeploy through wrangler. For a content project, that is a lot of machinery to keep in step. The last push to the repository was on 2026-10-17, and the repository is not archived; it has no published releases.

Should you use it, and what to check first

Use it if you read Chinese and want a starting shortlist across the fundamentals: computer systems, algorithms, networks, and the backend and database topics listed in the repository metadata. The abstracts are short enough to scan and opinionated enough to be useful, and the site is at https://book.doocs.org. The contribution path is clear if you disagree with a pick: open a pull request, or raise it in the Discussions thread the README links to.

The list is primarily in Chinese and is not a structured dataset or a source for downloading the listed books. If you need an English-language list or an explicit selection policy, check whether the available material meets your needs. Anyone treating it as an authority on current best books is reading more into it than the repository supports.

What to verify first: run pnpm install and pnpm run docs:build against Node 22.12.0 and pnpm 10.34.7 before you plan any content work, because the pinned VitePress alpha and the override block are the parts most likely to fail elsewhere. Then open the Discussions thread at github.com/doocs/technical-books/discussions/30 and read the recent suggestions; that is the only place where the list's direction is argued in public, and it tells you more about the project's editorial health than the tables do.

Editorial conclusion

Adopt it as a reading shortlist if you read Chinese and want a starting point across computer systems, networks, backend and databases, and check the Discussions thread at github.com/doocs/technical-books/discussions/30 before trusting any single entry. The list is primarily in Chinese and does not itself host the books. If you need a continuously updated recommendation feed, inspect recent content commits and discussions: the absence of GitHub releases alone does not show whether the list is maintained. Verify first that the VitePress build runs under Node 22.12.0 or later with pnpm 10.34.7, since the pinned toolchain is the part most likely to break on an older machine.

Frequently asked questions

Is doocs/technical-books a place to download free technical books?

No. It is a list of recommended titles with links to purchase pages, and the README explicitly encourages buying legitimate copies to support the original authors. There is no text of any book in the repository.

What topics does doocs/technical-books cover?

The README sections visible in the repository include computer systems and algorithms and computer networks, and the repository description adds frontend, backend, databases, architecture, big data and deep learning.

How do I run the doocs/technical-books site locally?

Install with pnpm install, then run the docs:dev script, which calls vitepress dev against the docs directory. The package.json requires Node 22.12.0 or later and pnpm 10.34.7.

How do I suggest a book for doocs/technical-books?

The README points readers to the Discussions area at github.com/doocs/technical-books/discussions/30 for recommendations, and also accepts pull requests against the repository.

Under what licence is doocs/technical-books published?

The repository uses CC-BY-SA-4.0, listed in the LICENSE file at the repository root. That covers the list content, not the books it recommends.

Official sources

  1. doocs/technical-books on GitHub
  2. Issues
  3. License: CC-BY-SA-4.0
  4. Project website
  5. README
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/doocs-technical-books.svg)](https://hysenlabs.com/projects/doocs-technical-books)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/doocs-technical-books.svg)](https://hysenlabs.com/projects/doocs-technical-books)

Was this useful?