Proposal: Compressing DevDocs with a Low-Level C Core
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 18/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- c, docker, javascript, ruby, wasm
- Domain
- backend, build-system, documentation, search
Research direction
The proposal covers the search engine, HTML pipeline, and local server, including Ruby/JS, Nokogiri, Sinatra, C, WebAssembly, and Docker. Start by mapping the existing implementations and their tests before evaluating whether the three replacements can be separated. Done would require an agreed migration scope, compatibility requirements, and validation for search, docset processing, and local hosting.
Written by the indexing model from the issue text.
Description
I’ve been using DevDocs for years—it’s a lifesaver when AI fails on niche cases. I have a lot of respect for the work done so far, but the current Ruby/JS stack feels like it’s holding the project back from being as fast and straight-forward as it could be
What i am asking is if I can rewrite the core server and processing logic in C? Specifically:
-
The Search Engine: Moving the indexing and fuzzy matching from JS to a C codebase that is compiled to a wasm module to kill the memory lag
-
The HTML Pipeline: Replacing the Ruby/Nokogiri filters with a fast C-based parser for cleaning docsets
-
The Local Server: Swapping the Ruby/Sinatra backend for a lightweight C static server to remove the heavy runtime requirements for local hosting
Due to such changes around 30% of the project may be reduced including the definite removal of something as useless as docker, which will be replaced with simple statically-compiled servers for each OS that people can just download (or build themselves since C is available on all platforms) and launch the server without any unnecessary dependencies
I'm happy to handle the heavy lifting and resolve any issues that pop up with this new setup. Are you guys open to adding this C-based paradigm to the official repo? I truly believe this would make the project much leaner and easier to maintain long-term
I truly hope that you will accept this crazy request to rebuild the core of the project in a language that most of your contributors probably dont use and I hope I get the chance to work with you on this
- Dominant language
- Ruby
- Stars
- 39.5k
- Forks
- 2.6k
- Avg merge
- 4d 32m
- Merged PRs (30d)
- 13
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from freeCodeCamp/devdocs
-
docs/improvement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
freeCodeCamp/devdocs#1989 · 4 comments · 4 reactions ·
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
freeCodeCamp/devdocs#2731 ·
-
feature
Difficulty 5/5 Over a week Newbie friendliness 25/100
freeCodeCamp/devdocs#2712 ·
-
feature
Difficulty 5/5 Over a week Newbie friendliness 30/100
freeCodeCamp/devdocs#2683 · 1 comment ·
-
feature
Difficulty 4/5 3-5 days Newbie friendliness 45/100
freeCodeCamp/devdocs#2673 ·
All issues in freeCodeCamp/devdocs
Similar issues
-
user-reported
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Kong/developer.konghq.com#7316 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
TheOdinProject/curriculum#31408 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
notch8/utk_knapsack#148 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Homebrew/homebrew-cask#288729 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100