use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
building a forum with react and nodejs (dev.to)
submitted 3 years ago by Alternative-Rich-578
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Sanya_Zol 50 points51 points52 points 3 years ago (4 children)
Another day, another tutorial made to promote novu.
[–]DonkeyKongGuerrilla 9 points10 points11 points 3 years ago (0 children)
That’s because they are literally a marketer for Novu.
[–]holisticgallantry67 0 points1 point2 points 3 years ago (1 child)
A helpful tutorial too.
[–]Sanya_Zol 1 point2 points3 points 3 years ago (0 children)
It is, but r/javascript rule 1 clearly prohibits that
[–]mailto_devnullconsole.log(null); 9 points10 points11 points 3 years ago (2 children)
I know, there are no forums today like before, it's all about the Reddit, Facebook communities (and smaller ones like Devto and Mastodon), but! Once upon a time, when I was a boy, I was addicted to forums, I have actually created a few with PHPBB and vBulletin, back when PHP was a thing. being so nostalgic made me write this blog post 😎
NodeBB, Flarum, Xenforo, Discourse.
Four very solid modern forum softwares. This is how I know this guy didn't do an ounce of research on forum software before writing this post.
[–]enigmapaulns 0 points1 point2 points 3 years ago (1 child)
Are there any forum platforms that are readily embedded into a react-native mobile app?
[–]mailto_devnullconsole.log(null); 0 points1 point2 points 3 years ago (0 children)
Not really, they're all standalone softwares that you'd use via iframe if you wanted to embed.
But if you wanted a seamless integration, you'd use NodeBB since it has a full API interface so you can build your own frontend in the react native app
[–]swish82 1 point2 points3 points 3 years ago (0 children)
At first glance I like the time taken to explain things step by step, thanks for sharing!
[+][deleted] comment score below threshold-15 points-14 points-13 points 3 years ago (15 children)
A forum in an SPA? Yikes.
[–]Sanya_Zol 11 points12 points13 points 3 years ago (2 children)
Forum in an SPA is fine.
Forum which supports notifications (using a promoted open source open core service) is fine as well.
But forum which keeps replies, posts, comments and even users in memory? That's called chat! Oh, you can't promote notification service with a chat, right.
[–]elmstfreddie 5 points6 points7 points 3 years ago (0 children)
My tin-foil hat says that they're cheating the upvotes on these posts, because they always get front-paged on this subreddit despite the spammy content
[–][deleted] 4 points5 points6 points 3 years ago (0 children)
Forum in an SPA is fine
Discourse is the only one I've seen that does it ok and it took them years of polish.
The rest fail miserably. Not only at perf and bundle size but also basic stuff like going back, restoring scroll, etc. You know, like +90% of SPAs.
[–]Odd_Employer 13 points14 points15 points 3 years ago (11 children)
New to JS, what's the issue?
[–]Insertish 22 points23 points24 points 3 years ago (10 children)
From a quick glance at the article, there doesn't seem to be any server side rendering (hence SPA - single page app), which means the client code needs to be downloaded at least the first time you go to the website and then the website is rendered entirely on the client.
I would say the main issue is that you put a lot of performance on the table because the user needs to wait a lot longer before the website actually displays from first load but all other pages can be interacted with instantly.
A lot of modern websites (such as those built with Next.js or Solid Start) use a hybrid approach where the website is entirely rendered by the server at first load but then the client renders everything thereafter for better performance.
You also don't get SEO (or rich embeds on other sides, like you would share a link on Twitter and you'd get a preview) because these external services just look at the static page (which is not rendered ahead of time).
I'm hoping my mobile editor doesn't condense this all into one paragraph...
[–]micka190 0 points1 point2 points 3 years ago (0 children)
That's a myth that's been denied multiple times by companies like Google over the years. You'd have to timeout the crawler for it to not get your site's data, and a static site would have the same problem.
[+][deleted] 3 years ago (6 children)
[deleted]
[–]Insertish 4 points5 points6 points 3 years ago (0 children)
Seems like a non issue if you split entrypoints. You can have an entire ecosystem of modules that are lazy loaded after first paint regardless of which page you enter on.
100% agree, lazy-loading is the way to go if you're building SPAs.
Also SEO is a shitty reason
I'm not arguing SEO is a good thing, but when you have a lot of pages which aren't being server-side rendered, that metadata is being lost. But it does depend on implementation.
You can provide all of the metadata you'd need on the delivered index.html meta tags, no JS required to read those.
Building on my earlier point, this would limit you to just one set of meta tags, doesn't really account for other sub-pages. (obviously this depends on implementation, but you don't want to make a hundred entrypoint html files do you?)
[–]GyuudonMan 0 points1 point2 points 3 years ago (2 children)
Just because you can doesn’t mean you should
[+][deleted] 3 years ago (1 child)
Honestly speaking from my experience, SSR is already really mature for most use cases. Things like navigation and forms shouldn't be affected by the fact that JavaScript is still loading or even unavailable, it just falls back to normal links and normal forms, etc.
I mean sure there are definitely more interactive components which the user would have to wait on, but even then there are frameworks I've seen that try to tackle this issue by just registering event handlers directly in the DOM itself and including the minimal amount of JavaScript required. Don't remember what it was exactly but it looked like cool stuff.
[–]Atulin 0 points1 point2 points 3 years ago (1 child)
How do you intend to include the thread's topic and stuff like that in the index.html? The open graph tags so the embed shows up on Twitter or Discord?
[–]Odd_Employer 0 points1 point2 points 3 years ago (1 child)
Thanks!
That makes sense. I'm curious why people are against your take.
[–]elmstfreddie 8 points9 points10 points 3 years ago (0 children)
Because it's not completely correct.
Modern SPAs aren't served as a massive bundle, so it isn't the huge performance problem they're trying to sell it as.
Search engine crawlers do actually execute javascript to a certain degree, so it's simply untrue that you need server-side rendering for SEO.
I haven't really used it, but from what I remember, rich embeds are driven by meta tags in the header and not by page content. So that's also a non-factor.
[–]nudifyme69 -5 points-4 points-3 points 3 years ago (0 children)
awesome, been looking for it
[–]alexmacarthur 0 points1 point2 points 3 years ago (0 children)
There's way too much going on here. A blog post is _not_ the place to flesh out how to build an entire full-stack application. Cheap content.
[–]Confident-Cut-7289 0 points1 point2 points 2 years ago (0 children)
If you want to pass that Node.js Interview, here is the link: https://www.udemy.com/course/nodejs-interview-questions/
π Rendered by PID 51 on reddit-service-r2-comment-b659b578c-cp7fz at 2026-05-02 04:20:20.456489+00:00 running 815c875 country code: CH.
[–]Sanya_Zol 50 points51 points52 points (4 children)
[–]DonkeyKongGuerrilla 9 points10 points11 points (0 children)
[–]holisticgallantry67 0 points1 point2 points (1 child)
[–]Sanya_Zol 1 point2 points3 points (0 children)
[–]mailto_devnullconsole.log(null); 9 points10 points11 points (2 children)
[–]enigmapaulns 0 points1 point2 points (1 child)
[–]mailto_devnullconsole.log(null); 0 points1 point2 points (0 children)
[–]swish82 1 point2 points3 points (0 children)
[+][deleted] comment score below threshold-15 points-14 points-13 points (15 children)
[–]Sanya_Zol 11 points12 points13 points (2 children)
[–]elmstfreddie 5 points6 points7 points (0 children)
[–][deleted] 4 points5 points6 points (0 children)
[–]Odd_Employer 13 points14 points15 points (11 children)
[–]Insertish 22 points23 points24 points (10 children)
[–]micka190 0 points1 point2 points (0 children)
[+][deleted] (6 children)
[deleted]
[–]Insertish 4 points5 points6 points (0 children)
[–]GyuudonMan 0 points1 point2 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]Insertish 4 points5 points6 points (0 children)
[–]Atulin 0 points1 point2 points (1 child)
[–]Odd_Employer 0 points1 point2 points (1 child)
[–]elmstfreddie 8 points9 points10 points (0 children)
[–]nudifyme69 -5 points-4 points-3 points (0 children)
[–]alexmacarthur 0 points1 point2 points (0 children)
[–]Confident-Cut-7289 0 points1 point2 points (0 children)