{"id":1064,"date":"2019-08-01T11:47:52","date_gmt":"2019-08-01T08:47:52","guid":{"rendered":"https:\/\/flatlogic.com\/blog\/?p=1064"},"modified":"2024-03-13T20:13:52","modified_gmt":"2024-03-13T17:13:52","slug":"writing-documentation-for-your-javascript-project","status":"publish","type":"post","link":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/","title":{"rendered":"Writing Documentation for Your JavaScript Project"},"content":{"rendered":"<p>Nowadays, as a <a href=\"https:\/\/flatlogic.com\/services\/javascript-development\">Javascript Web Developer<\/a>, you rarely build anything from scratch: your daily job mostly consists of integrating various <a  data-ilj-link-preview=\"true\"  data-featured-image=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/09\/top-articles-copy-600x450.png\"  data-excerpt=\"Here is our list of JS articles of 2019. We collected 17 posts with tricks and tips in JavaScript and its frameworks.\" href=\"https:\/\/flatlogic.com\/blog\/17-articles-of-september-2019-to-learn-javascript\/\">Javascript<\/a> libraries. Building a web app typically involves a stack of technologies: React, Vue, or Angular for the front-end, Redux or GraphQL for data management, and Express and potentially Loopback for the backend, with Jest, Mocha, or Jasmine for testing. Additionally, UI frameworks like Bootstrap and charting tools are used, collectively forming the foundation of efficient and scalable <a href=\"https:\/\/flatlogic.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">business software development<\/a>.<\/p><p>I have already counted at least 7 core libraries and all of these are in a single project! And what about underlying technologies like Javascript itself, Node.js, and, probably, Typescript? Well, that&#8217;s a lot!<\/p><p>So how do you learn all of these tools? Of course, there is a such thing as documentation. <\/p><h2 class=\"wp-block-heading\" id=\"h2_1\">Why documentation is important?<\/h2><p>There are two ways you can relate to documentation: you can either write or read one. Sometimes you are on both sides, but in most cases, you are consuming the creation of other developers. You would not use any of the mentioned libraries unless they were well-documented, would you? Which brings us to the first point:<\/p><h3 class=\"wp-block-heading\">People will not even consider your project unless it is well-documented<\/h3><p>This may seem obvious but, if your code is not documented, then the only way to learn what it does is to reverse-engineer it. Would you do that yourself? Let&#8217;s consider the extreme opposite and imagine if <a  data-ilj-link-preview=\"true\"  data-featured-image=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2020\/02\/Frame-9-600x450.png\"  data-excerpt=\"The battle between React and Angular has lasted for 7 years. It got its second wind in 2016 when Angular 2 was released. Today we have already worked with Angular 8, but the first significant shift occurred exactly in 2016 (six years after the release of the first Angular). React&nbsp;is an open-sourced JavaScript&nbsp;library&nbsp;for building a&hellip;\" href=\"https:\/\/flatlogic.com\/blog\/angular-vs-react-which-one-to-choose-for-your-web-app\/\">React<\/a>, for example, had no documentation. Then there would be only few geeks to try this new tool from Facebook, since it would require browsing over the source code to understand what it does and how to use it. Of course there will be no businesses or enterprises using a non-documented library. What kind of CEO or CTO would want to risk their company&#8217;s resources on a technology that has unpredictable onboarding time? Moreover, it would be hard for Facebook&#8217;s engineers themselves to support and maintain the codebase, which makes a second point:<\/p><h3 class=\"wp-block-heading\">You will not be able to understand your code in 6 months<\/h3><p>I bet you know the feeling when you look at the code that you have written a few months or years ago and can not understand a single line. It is even hard to admit the code was your creation. Sounds familiar? The code may even look like it was written by someone much less experienced and may seem silly, but still you are unable to explain what is going on there. Why did you write this? <a href=\"https:\/\/flatlogic.com\/generator\"><img decoding=\"async\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding.png\" alt=\"Professional Vibe Coding\" class=\"banner-img lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/640;\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding.png 2560w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-600x150.png 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-1024x256.png 1024w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-768x192.png 768w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-1536x384.png 1536w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/Introducing-professional-vibe-coding-2048x512.png 2048w\" data-sizes=\"auto\" data-original-sizes=\"(max-width: 2560px) 100vw, 2560px\"> <\/a><\/p><p>At that moment an intense feeling of regret will creep in and you will start to realize the best moment to write a documentation was when you wrote the code, i.e. 6 months ago. Now, instead of reading the docs, you will have to read the code, and the code does not answer the question &#8220;why&#8221; it was written and does not explain itself. So the main purpose of documentation is to explain why you wrote this piece of software, including for yourself in the future.&nbsp;<\/p><blockquote class=\"wp-block-quote has-text-align-right is-layout-flow wp-block-quote-is-layout-flow\"><p><em>Documentation is a love letter that you write to your future self.<\/em><\/p><cite><em>&#8211; Damian Conway<\/em><\/cite><\/blockquote><h3 class=\"wp-block-heading\">Documentation makes the code better<\/h3><p>You will have to think a lot about the design of your code when documenting it. Since you have to expose the whole structure of the code to the public, you will think twice about the way you built your project. Are there any parts to be refactored? Is there a way to implement some functionalities better or completely reorganize the code? So documentation process itself makes the code better.<\/p><h2 class=\"wp-block-heading\" id=\"h2_2\"> What to write? <\/h2><p>After it became clear how important documentation is, it seems that we can start creating one. However, before proceeding, I would recommend to stop for a while and do a step zero by clearly defining your target audience and understanding the value your project generates.<\/p><h3 class=\"wp-block-heading\">Define your audience<\/h3><p>This one seems obvious but is often forgotten. It is better to clearly formalize who you are writing for. Who are your users? Are they mostly developers or designers? Experienced or fresh? Do they use your project in a large or small team? Etc, etc. Answering these questions will help you define an imaginary persona, which represents most of your users. Keeping this imaginary persona in mind will help you a lot, so the process of writing docs will look more like a dialog between you two.<\/p><h3 class=\"wp-block-heading\">What problem your project solves<\/h3><p>The first thing to add to your document is a clear definition of what is the name of the project and what problem it solves. It is better to have one or two sentences. People are going to be visiting your page from many sources and, hence, have different perspectives. That&#8217;s why you have to be very precise and avoid vague descriptions. Simply state what your Javascript project is about, who it is for, and what problem it solves. As an example of proper title and description, you can check out <a href=\"https:\/\/flatlogic.com\/templates\/sing-app-react\">Sing App React Admin Template<\/a> (one of our <a href=\"https:\/\/flatlogic.com\/templates\/admin-dashboards\">popular admin templates<\/a>) with its <a href=\"https:\/\/demo.flatlogic.com\/sing-app-react\/#\/documentation\">documentation<\/a>. <\/p><figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1024\" height=\"372\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.53.16-AM-1024x372.png\" alt=\"javascript projects\" class=\"wp-image-1067 lazyload\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.53.16-AM-1024x372.png 1024w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.53.16-AM-600x218.png 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.53.16-AM-768x279.png 768w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.53.16-AM.png 1578w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/372;\" data-original-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Sing App React Admin Template documentation<\/em><\/figcaption><\/figure><h3 class=\"wp-block-heading\">Quick start and installation steps<\/h3><p>Most people do not like to wait. So do your users. Let them launch and try your project as fast as you can. Prepare a simple short list of steps needed to setup the project and put it on top of documentation front page. Usually it may be a list of commands required to setup an environment and start the application. If it&#8217;s possible, it will be great to simply copy-paste these commands and have the entire application or library launched. Take a look at<a href=\"https:\/\/github.com\/sferik\/rails_admin\"> Rails Admin documentation<\/a> as an example:<\/p><figure class=\"wp-block-image\"><img decoding=\"async\" width=\"940\" height=\"268\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.54.25-AM.png\" alt=\"javascript projects\" class=\"wp-image-1068 lazyload\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.54.25-AM.png 940w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.54.25-AM-600x171.png 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.54.25-AM-768x219.png 768w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 940px; --smush-placeholder-aspect-ratio: 940\/268;\" data-original-sizes=\"(max-width: 940px) 100vw, 940px\" \/><figcaption><em>An example of quick setup steps<\/em><\/figcaption><\/figure><p>A list of steps needed to setup the library is clear and easy to execute, which makes the whole project more attractive to use.<\/p><p>Hopefully your users will be able to setup and launch everything, so now it is time to go a little bit deeper.<\/p><h3 class=\"wp-block-heading\">Components and features documentation<\/h3><p>It is most likely that quick starting the project will not be the only option available to interact with it. There will be other parts, modules, components, features, classes, etc. You name it. E.g. pieces of your software that require separate documentation and provide an API to interact with it in some way.<\/p><p>The first thing to do is to list all of these components and make a table of contents based on it with links following to the relevant pages.&nbsp;<\/p><p>For every single piece of your documentation it is better to apply the same principle you apply to writing project description: name the component, describe what it is used for, what is the installation process, if there is one. What are the API methods and parameters, if so? Try to put yourself in a place of this imaginary persona you described earlier and imagine what would be the questions and difficulties integrating this particular component. Help them use it and leave no feature undocumented!<\/p><p>A list of steps needed to setup the library is clear and easy to execute, which makes the whole project more attractive to use.<\/p><p>Hopefully your users will be able to setup and launch everything, so now it is time to go a little bit deeper.<\/p><figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1024\" height=\"575\" data-src=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.58.45-AM-1024x575.png\" alt=\"javascript projects\" class=\"wp-image-1069 lazyload\" data-srcset=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.58.45-AM-1024x575.png 1024w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.58.45-AM-600x337.png 600w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.58.45-AM-768x431.png 768w, https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-01-at-11.58.45-AM.png 1204w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/575;\" data-original-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Firebase documentation. Table of contents and single component parts are clearly visible<\/em>.<\/figcaption><\/figure><p><a href=\"https:\/\/firebase.google.com\/docs\/database\/web\/read-and-write\">Firebase documentation<\/a> is a great example of structuring docs. You can see the menu of all available documentation parts on the left side and interact with particular component in the middle of the page.<\/p><h3 class=\"wp-block-heading\">License and contribution instructions<\/h3><p>There must be something that guides relations between your project and its users. You have to decide under what conditions your software is distributed and can be used. There are lots of standard licenses available around the web, so it is up to you to pick the right one for your project. The most popular ones are: BSD, MIT, Apache GNU licenses. They are open source, so keep that in mind. Proprietary licenses vary a lot from project to project, so this can be a separate topic.<\/p><p>If your project is open source then you are expecting people to contribute. Hence it will be very helpful for them to have some sort of guidance from you. Let them know where they can report issues, ask questions, what are the restrictions or prior assumption before contributing, where they can find issues, etc. Otherwise you are about to lose a great amount of thankful supporters and maintainers.<\/p><h3 class=\"wp-block-heading\">Tips on writing documentation<\/h3><p>We will not be able to predict all the use cases and the way users will use your documentation. In general it is a great principle to keep imagining yourself as your user and organize everything based on this point of view. However, here is a short list of general tips every project documentation must follow:<\/p><ul class=\"wp-block-list\"><li>People will simply copy and paste your code. Keep this in mind and make sure to double check this yourself by executing it. Avoid placing some invisible characters to code examples. It is even better to use <strong>code<\/strong> and <strong>blockquote<\/strong> tags to embed code blocks.<\/li><li>Keep your documentation updated. Every change in code must be followed by a relevant change in documentation. Otherwise documentation soon becomes outdated, which is equal to the absence of documentation.<\/li><li>Code comments are a part of documentation. This is the last and very important one. If your project is open source, users are going to be reading through your code, hence inline comments will help them a lot. Furthermore, there are tools like <a href=\"https:\/\/devdocs.io\/jsdoc\/\">JSDoc<\/a> that generate documentation based on code comments! So you do not have to write anything in a separate file. Simply feed this tool with your codebase and, voila, you have the documentation.<\/li><\/ul><h2 class=\"wp-block-heading\" id=\"h2_3\">Tools to speed up the process<\/h2><p>Why would you want to write and create everything from scratch and by yourself if there are so many documentation tools available? Nowadays generating documentation, especially if you produce high-quality code with inline comments, is a matter of running a single command.<\/p><p>So let&#8217;s overview documentation tools available in 2019.<\/p><h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/jsdoc\/jsdoc\">JSDoc<\/a><\/h3><p>JSDoc is the most popular Javascript documentation generator. All you need to do is to simply run jsdoc command with a filename as an argument. That is it. It will generate HTML file with documentation that is ready to use. The website is <a href=\"https:\/\/github.com\/jsdoc\/jsdoc\">https:\/\/github.com\/jsdoc\/jsdoc<\/a>.&nbsp;<\/p><h3 class=\"wp-block-heading\"><a href=\"https:\/\/docusaurus.io\/\">Docusaurus<\/a><\/h3><p>Docusaurus is a more complex tool that allows you to generate entire documentation website based on markdown files with documentation contents. It is based on React and supports versioning, so you can easily maintain different versions of the documentation generated in the past. Other great benefits are embedded search and multi language support, which is crucial for popular repositories. The website is <a href=\"https:\/\/docusaurus.io\/\">https:\/\/docusaurus.io\/<\/a>.<\/p><h3 class=\"wp-block-heading\"><a href=\"http:\/\/apidocjs.com\/\">apiDoc<\/a><\/h3><p>apiDoc creates a documentation from API annotations in your source code. It is a great tool to generate a documentation for a project that has and exposes lots of API methods. It allows to customize everything a lot, e.g. specify parameters, error codes, response samples, etc. The website is <a href=\"http:\/\/apidocjs.com\/\">http:\/\/apidocjs.com\/<\/a><\/p><h2 class=\"wp-block-heading\" id=\"h2_4\">Great examples of JavaScript project documentation<\/h2><p>When creating something new it is good to have some sort of example, something you can refer to. So here is the list of various projects you may get your inspiration from. All of them are great, so pick one you like the most.<\/p><ul class=\"wp-block-list\"><li><a href=\"https:\/\/firebase.google.com\/docs\/auth\/android\/firebaseui\">Firebase<\/a><\/li><li><a href=\"https:\/\/demo.flatlogic.com\/sing-app-react\/#\/documentation\/getting-started\/overview\">React Admin Template<\/a> (a documentation to one of our own projects. We invested around 250 hours composing these docs);<\/li><li><a href=\"https:\/\/docs.bugsnag.com\/\">Bugsnag<\/a><\/li><li><a href=\"https:\/\/guides.rubyonrails.org\/\">Ruby on Rails guides<\/a><\/li><li><a href=\"https:\/\/catboost.ai\/docs\/\">CatBoost<\/a><\/li><\/ul><h2 class=\"wp-block-heading\" id=\"h2_5\">Summary<\/h2><p>I hope that you found this article useful and it will help you a lot when creating documentation for your javascript project. Googling the Internet tells that documentation is a key to success in any Javascript project, and I strongly agree with this rule. Documentation is sort of a facade that people face and resort to when using your project. So always keep it updated and put yourself in place of your users!<\/p><h4 class=\"wp-block-heading\"><strong>If you like our articles, this might be interesting too:<\/strong><\/h4><div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\"><div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><p class=\"has-text-align-center\"><a href=\"https:\/\/flatlogic.com\/blog\/best-javascript-date-picker-libraries\/\">Top Date Picker JavaScript Plugins and Libraries<\/a><\/p><\/div><div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><p class=\"has-text-align-center\"><a href=\"https:\/\/flatlogic.com\/blog\/how-to-build-an-iot-dashboard\/\">How to Build An IoT Dashboard<\/a><\/p><\/div><\/div><div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\"><div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><p class=\"has-text-align-center\"><a href=\"https:\/\/flatlogic.com\/blog\/building-analytics-react-dashboard-with-cube-js\/\">Building Analytics React Dashboard With Cube.js<\/a><\/p><\/div><div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><p class=\"has-text-align-center\"><a href=\"https:\/\/flatlogic.com\/blog\/top-javascript-calendar-plugins\/\">Top JavaScript Calendar Plugins<\/a><\/p><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>This may seem obvious but, if your code is not documented, then the only way to learn what it does is to reverse engineer it. Would you do that yourself? Let&#8217;s consider the extreme opposite and imagine if React, for example, had no documentation. <\/p>\n","protected":false},"author":2,"featured_media":1070,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"flatlogic_tldr":"","flatlogic_facts":[],"footnotes":""},"categories":[1],"tags":[52,54,415,522],"class_list":["post-1064","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-guides","tag-javascript","tag-javascript-best-practices","tag-vuetify-templates"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Writing Documentation for Your JavaScript Project - Flatlogic Blog<\/title>\n<meta name=\"description\" content=\"If your JavaScript code is not documented, then you will have to reverse engineer it one day. Imagine if React had no detailed documentation, it would be a disaster.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Writing Documentation for Your JavaScript Project\" \/>\n<meta property=\"og:description\" content=\"If your JavaScript code is not documented, then you will have to reverse engineer it one day. Imagine if React had no detailed documentation, it would be a disaster.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/\" \/>\n<meta property=\"og:site_name\" content=\"Flatlogic Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/flatlogic\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-01T08:47:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-13T17:13:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/documentation-JS.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Philip Daineka\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@flatlogic\" \/>\n<meta name=\"twitter:site\" content=\"@flatlogic\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Philip Daineka\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Writing Documentation for Your JavaScript Project - Flatlogic Blog","description":"If your JavaScript code is not documented, then you will have to reverse engineer it one day. Imagine if React had no detailed documentation, it would be a disaster.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/","og_locale":"en_US","og_type":"article","og_title":"Writing Documentation for Your JavaScript Project","og_description":"If your JavaScript code is not documented, then you will have to reverse engineer it one day. Imagine if React had no detailed documentation, it would be a disaster.","og_url":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/","og_site_name":"Flatlogic Blog","article_publisher":"https:\/\/www.facebook.com\/flatlogic","article_published_time":"2019-08-01T08:47:52+00:00","article_modified_time":"2024-03-13T17:13:52+00:00","og_image":[{"width":800,"height":600,"url":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/documentation-JS.png","type":"image\/png"}],"author":"Philip Daineka","twitter_card":"summary_large_image","twitter_creator":"@flatlogic","twitter_site":"@flatlogic","twitter_misc":{"Written by":"Philip Daineka","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/#article","isPartOf":{"@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/"},"author":{"name":"Philip Daineka","@id":"https:\/\/flatlogic.com\/blog\/#\/schema\/person\/2a358db460fb453be69232ff0826bb34"},"headline":"Writing Documentation for Your JavaScript Project","datePublished":"2019-08-01T08:47:52+00:00","dateModified":"2024-03-13T17:13:52+00:00","mainEntityOfPage":{"@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/"},"wordCount":2055,"publisher":{"@id":"https:\/\/flatlogic.com\/blog\/#organization"},"image":{"@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/#primaryimage"},"thumbnailUrl":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/documentation-JS.png","keywords":["Guides","Javascript","JavaScript Best Practices","Vuetify Templates"],"articleSection":["News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/","url":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/","name":"Writing Documentation for Your JavaScript Project - Flatlogic Blog","isPartOf":{"@id":"https:\/\/flatlogic.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/#primaryimage"},"image":{"@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/#primaryimage"},"thumbnailUrl":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/documentation-JS.png","datePublished":"2019-08-01T08:47:52+00:00","dateModified":"2024-03-13T17:13:52+00:00","description":"If your JavaScript code is not documented, then you will have to reverse engineer it one day. Imagine if React had no detailed documentation, it would be a disaster.","breadcrumb":{"@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/#primaryimage","url":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/documentation-JS.png","contentUrl":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2019\/08\/documentation-JS.png","width":800,"height":600,"caption":"documentation JavaScript"},{"@type":"BreadcrumbList","@id":"https:\/\/flatlogic.com\/blog\/writing-documentation-for-your-javascript-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/flatlogic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Writing Documentation for Your JavaScript Project"}]},{"@type":"WebSite","@id":"https:\/\/flatlogic.com\/blog\/#website","url":"https:\/\/flatlogic.com\/blog\/","name":"Flatlogic Blog","description":"Vibe-coding, AI Agents, Professional Software Development Services, Case Studies and More","publisher":{"@id":"https:\/\/flatlogic.com\/blog\/#organization"},"alternateName":"Flatlogic Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/flatlogic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/flatlogic.com\/blog\/#organization","name":"Flatlogic","url":"https:\/\/flatlogic.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/flatlogic.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/62ea6de0b3469aa3d6ebb528-1.png","contentUrl":"https:\/\/flatlogic.com\/blog\/wp-content\/uploads\/2025\/10\/62ea6de0b3469aa3d6ebb528-1.png","width":970,"height":257,"caption":"Flatlogic"},"image":{"@id":"https:\/\/flatlogic.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/flatlogic","https:\/\/x.com\/flatlogic","https:\/\/www.instagram.com\/flatlogiccom\/","https:\/\/www.linkedin.com\/company\/flatlogic\/"]},{"@type":"Person","@id":"https:\/\/flatlogic.com\/blog\/#\/schema\/person\/2a358db460fb453be69232ff0826bb34","name":"Philip Daineka","description":"Founder @ Flatlogic &amp; AppWizzy","sameAs":["https:\/\/flatlogic.com","Building scalable apps @appwizzyai, a professional vibe\u2011coding platform. Software development services @flatlogic. MSc in CS\/Finance"],"url":"https:\/\/flatlogic.com\/blog\/author\/philip\/"}]}},"_links":{"self":[{"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/posts\/1064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/comments?post=1064"}],"version-history":[{"count":7,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/posts\/1064\/revisions"}],"predecessor-version":[{"id":15359,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/posts\/1064\/revisions\/15359"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/media\/1070"}],"wp:attachment":[{"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/media?parent=1064"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/categories?post=1064"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flatlogic.com\/blog\/wp-json\/wp\/v2\/tags?post=1064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}