Generated on April 05 2026 07:30 AM
Old data? UPDATE !
The score is 55/100
Title
Khalil Stemmler | Become a confident crafter. Learn to write testable, scalable TypeScript.
Length : 91
Ideally, your title should contain between 10 and 70 characters (spaces included). Use this free tool to calculate text length.
Description
Advanced TypeScript & Node.js guides for large-scale applications. Learn to write flexible, maintainable TypeScript.
Length : 116
Great, your meta description contains between 70 and 160 characters.
Keywords
advanced, typescript, nodejs, best practices, javascript
Good, your page contains meta keywords.
Og Meta Properties
Good, your page take advantage of Og Properties.
| Property | Content |
|---|---|
| title | Khalil Stemmler | Become a confident crafter. Learn to write testable, scalable TypeScript. | Khalil Stemmler |
| image | https://khalilstemmler.com/img/banner/khalil-stemmler-website-banner.png |
| description | Advanced TypeScript & Node.js guides for large-scale applications. Learn to write flexible, maintainable TypeScript. |
| type | website |
| url | https://khalilstemmler.com |
Headings
| H1 | H2 | H3 | H4 | H5 | H6 |
| 1 | 2 | 5 | 0 | 0 | 0 |
Images
We found 19 images on this web page.
19 alt attributes are empty or missing. Add alternative text so that search engines can better understand the content of your images.
Text/HTML Ratio
Ratio : 5%
This page's ratio of text to HTML code is below 15 percent, this means that your website probably needs more text content.
Flash
Perfect, no Flash content has been detected on this page.
Iframe
Too Bad, you have Iframes on the web pages, this mean that content in an Iframe cannot be indexed.
URL Rewrite
Good. Your links looks friendly!
Underscores in the URLs
Perfect! No underscores detected in your URLs.
In-page links
We found a total of 78 links including 0 link(s) to files
| Anchor | Type | Juice |
|---|---|---|
| ~ | Internal | Passing Juice |
| /articles | Internal | Passing Juice |
| /community | External | Passing Juice |
| /resources | Internal | Passing Juice |
| External | Passing Juice | |
| Resources | Internal | Passing Juice |
| Community | External | Passing Juice |
| Get the wiki/book | External | Passing Juice |
| Enroll in TM | External | Passing Juice |
| Enroll in TSE | External | Passing Juice |
| The Power of Composition | Internal | Passing Juice |
| Enterprise Node + TypeScript | Internal | Passing Juice |
| testing | Internal | Passing Juice |
| architecture | Internal | Passing Juice |
| 12 essentials | Internal | Passing Juice |
| composition | Internal | Passing Juice |
| Temporal Decoupling: Why We Use Events & Messages | Internal | Passing Juice |
| The 12 Essentials | Internal | Passing Juice |
| temporal decoupling | Internal | Passing Juice |
| messaging | Internal | Passing Juice |
| systems thinking | Internal | Passing Juice |
| events | Internal | Passing Juice |
| Tension Seeking Resolution (The Law of Polarity) | Internal | Passing Juice |
| The Metaphysics | Internal | Passing Juice |
| metaphysics | Internal | Passing Juice |
| spirituality | Internal | Passing Juice |
| business | Internal | Passing Juice |
| Two Categories of Tests: High Value vs. Typical Tests | Internal | Passing Juice |
| Testing | Internal | Passing Juice |
| high value tests | Internal | Passing Juice |
| acceptance testing | Internal | Passing Juice |
| typical tests | Internal | Passing Juice |
| unit tests | Internal | Passing Juice |
| e2e tests | Internal | Passing Juice |
| integration tests | Internal | Passing Juice |
| Using Builders to Model Complex Test States | Internal | Passing Juice |
| e2e testing | Internal | Passing Juice |
| design patterns | Internal | Passing Juice |
| the builder pattern | Internal | Passing Juice |
| data model tree | Internal | Passing Juice |
| How to Improve Legacy Code w/ Characterization Tests | Internal | Passing Juice |
| characterization testing | Internal | Passing Juice |
| test rig | Internal | Passing Juice |
| 98% of Developers Use React as a Framework, Not a Library | Internal | Passing Juice |
| Frontend | Internal | Passing Juice |
| react | Internal | Passing Juice |
| object design | Internal | Passing Juice |
| frameworks | Internal | Passing Juice |
| Is DDD Overrated? | Domain-Driven Design | Internal | Passing Juice |
| Domain-Driven Design | Internal | Passing Juice |
| pragmaticism | Internal | Passing Juice |
| Enforcing Coding Conventions with Husky Pre-commit Hooks | Internal | Passing Juice |
| Tooling | Internal | Passing Juice |
| guides | Internal | Passing Juice |
| typescript | Internal | Passing Juice |
| prettier | Internal | Passing Juice |
| formatting | Internal | Passing Juice |
| Domain-Driven GraphQL Schema Design using Event Storming | Internal | Passing Juice |
| GraphQL | Internal | Passing Juice |
| domain-driven design | Internal | Passing Juice |
| professionalism | Internal | Passing Juice |
| project planning | Internal | Passing Juice |
| How Apollo REST Data Source Deduplicates and Caches API calls [Deep Dive] | Internal | Passing Juice |
| apollo server | Internal | Passing Juice |
| graphql | Internal | Passing Juice |
| How to Setup a TypeScript + Node.js Project | Internal | Passing Juice |
| TypeScript | Internal | Passing Juice |
| starters | Internal | Passing Juice |
| Where Do Domain Events Get Created? | Domain Driven Design w/ TypeScript | Internal | Passing Juice |
| ddd | Internal | Passing Juice |
| domain entities | Internal | Passing Juice |
| software design | Internal | Passing Juice |
| domain events | Internal | Passing Juice |
| Follow | External | Passing Juice |
| About | Internal | Passing Juice |
| Wiki | Internal | Passing Juice |
| External | Passing Juice | |
| External | Passing Juice |
Keywords Cloud
tests software how learn architecture developers design typescript graphql testing
Keywords Consistency
| Keyword | Content | Title | Keywords | Description | Headings |
|---|---|---|---|---|---|
| design | 17 | ![]() |
![]() |
![]() |
![]() |
| testing | 16 | ![]() |
![]() |
![]() |
![]() |
| software | 12 | ![]() |
![]() |
![]() |
![]() |
| tests | 12 | ![]() |
![]() |
![]() |
![]() |
| typescript | 9 | ![]() |
![]() |
![]() |
![]() |
Url
Domain : khalilstemmler.com
Length : 18
Favicon
Great, your website has a favicon.
Printability
We could not find a Print-Friendly CSS.
Language
Good. Your declared language is en.
Dublin Core
This page does not take advantage of Dublin Core.
Doctype
HTML 5
Encoding
Perfect. Your declared charset is UTF-8.
W3C Validity
Errors : 0
Warnings : 0
Email Privacy
Warning! At least one email address has been found in the plain text. Use free antispam protector to hide email from spammers.
Deprecated HTML
Great! We haven't found deprecated HTML tags in your HTML.
Speed Tips
![]() |
Excellent, your website doesn't use nested tables. |
![]() |
Too bad, your website is using inline styles. |
![]() |
Great, your website has few CSS files. |
![]() |
Too bad, your website has too many JS files (more than 6). |
![]() |
Perfect, your website takes advantage of gzip. |
Mobile Optimization
![]() |
Apple Icon |
![]() |
Meta Viewport Tag |
![]() |
Flash content |
XML Sitemap
Great, your website has an XML sitemap.
| https://khalilstemmler.com/sitemap.xml |
Robots.txt
https://khalilstemmler.com/robots.txt
Great, your website has a robots.txt file.
Analytics
Missing
We didn't detect an analytics tool installed on this website.
Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.
Free SEO Testing Tool is a free SEO tool which provides you content analysis of the website.