* Update * Add stats and health endpoints * Add pre-render * fix: redirect to the error page * Fix generate-renderer issue * Rename * Fix best practice topics not loading * Handle SSR for static pages * Refactor faqs * Refactor best practices * Fix absolute import * Fix stats * Add custom roadmap page * Minor UI change * feat: custom roadmap slug routes (#4987) * feat: replace roadmap slug * fix: remove roadmap slug * feat: username route * fix: user public page * feat: show roadmap progress * feat: update public profile * fix: replace with toast * feat: user public profile page * feat: implement profile form * feat: implement user profile roadmap page * refactor: remove logs * fix: increase progress gap * fix: remove title margin * fix: breakpoint for roadmaps * Update dependencies * Upgrade dependencies * fix: improper avatars * fix: heatmap focus * wip: remove `getStaticPaths` * fix: add disable props * wip * feat: add email icon * fix: update pnpm lock * fix: implement author page * Fix beginner roadmaps not working * Changes to form * Refactor profile and form * Refactor public profile form * Rearrange sidebar items * Update UI for public form * Minor text update * Refactor public profile form * Error page for user * Revamp UI for profile page * Add public profile page * Fix vite warnings * Add private profile banner * feat: on blur check username * Update fetch depth * Add error detail * Use hybrid mode of rendering * Do not pre-render stats pages * Update deployment workflow * Update deployment workflow --------- Co-authored-by: Arik Chakma <arikchangma@gmail.com>
CLI Tools
A bunch of CLI scripts to make the development easier
roadmap-links.cjs
Generates a list of all the resources links in any roadmap file.
compress-jsons.cjs
Compresses all the JSON files in the public/jsons
folder
update-sponsors.cjs
Updates the sponsor ads on each roadmap page with the latest sponsor information in the Excel sheet.
roadmap-content.cjs
Currently, for any new roadmaps that we add, we do create the interactive roadmap but we end up leaving the content empty in the roadmap till we get time to fill it up manually.
This script populates all the content files with some minimal content from OpenAI so that the users visiting the website have something to read in the interactive roadmap till we get time to fill it up manually.
roadmap-dirs.cjs
This command is used to create the content folders and files for the interactivity of the roadmap. You can use the below command to generate the roadmap skeletons inside a roadmap directory:
npm run roadmap-dirs [frontend|backend|devops|...]
For the content skeleton to be generated, we should have proper grouping, and the group names in the project files. You can follow the steps listed below in order to add the meta information to the roadmap.
- Remove all the groups from the roadmaps through the project editor. Select all and press
cmd+shift+g
- Identify the boxes that should be clickable and group them together with
cmd+shift+g
- Assign the name to the groups.
- Group names have the format of
[sort]-[slug]
e.g.100-internet
. Each group name should start with a number starting from 100 which helps with sorting of the directories and the files. Groups at the same level have the sequential sorting information. - Each groups children have a separate group and have the name similar to
[sort]-[parent-slug]:[child-slug]
where sort refers to the sorting of thechild-slug
and not the parent. Also parent-slug does not need to have the sorting information as a part of slug e.g. if parent was100-internet
the children would be100-internet:how-does-the-internet-work
,101-internet:what-is-http
,102-internet:browsers
.
- Group names have the format of