3 ms·
I wonder what forum stack they use... Asking as someone who works with forum software on a daily basis.
by julianlam 5y ago
I wonder what forum stack they use...
Asking as someone who works with forum software on a daily basis.
- switzer 5y agoBuiltWith says that the CMS used at forums.lenovo.com is from Lithium Technologies, and it was first detected in July, 2012. I'm not sure if this is the forum software, or something else.
- tyingq 5y agoLithium is now Khoros (https://khoros.com/ https://khoros.com/), which is in pretty broad use.
- daxaxelrod 5y agoJudging by the network tab, it looks like they wrote their own. All the api requests fall under the same domain. https://forums.lenovo.com/api/v1/user/getCountryByIp https://forums.lenovo.com/api/v1/user/getCountryByIp https://forums.lenovo.com/api/v1/forums/getForumAccess https://forums.lenovo.com/api/v1/forums/getForumAccess https://forums.lenovo.com/api/v1/forums/getCurrentForumTrees https://forums.lenovo.com/api/v1/forums/getCurrentForumTrees https://forums.lenovo.com/api/v1/topic/getTopic?fid=6&tid=5124794&page=1 https://forums.lenovo.com/api/v1/topic/getTopic?fid=6&tid=51... Also interesting that they have no auth requirement on the getCountryByIp route
- tyingq 5y agoThey seem to consistently mis-spell "community" in the code, which is kind of interesting: var __currentForum = window.CommuntiyForums&&CommuntiyForums.findCommuntiyHomepageByUrlPath()||''; if(__currentForum&&__currentForum.hit){ lmdBrandVal = "Forum Details:"+ __currentForum.forum.board; }else{ var __websiteInfo = sessionStorage&&sessionStorage.websiteInfo ? sessionStorage.websiteInfo : sessionStorage.currentCommuntiySite; if(__websiteInfo&&JSON.parse(__websiteInfo).board) { lmdBrandVal = "Forum Details:" + JSON.parse(__websiteInfo).board; } }
- zbuf 5y agoI inherited a codebase like this, from a developer coding in their native language. Function names or variables started with a typo, and they just carried on with tab/auto completion from then on. By the time I arrived the damage was wide and it was easier to leave it consistently wrong than try and fix across several codebases.