diff --git a/src/ar/rocksmanga/build.gradle b/src/ar/rocksmanga/build.gradle
new file mode 100644
index 000000000..c918e3df8
--- /dev/null
+++ b/src/ar/rocksmanga/build.gradle
@@ -0,0 +1,10 @@
+ext {
+    extName = 'Rocks Manga'
+    extClass = '.RocksManga'
+    themePkg = 'madara'
+    baseUrl = 'https://rocks-manga.com'
+    overrideVersionCode = 0
+    isNsfw = false
+}
+
+apply from: "$rootDir/common.gradle"
diff --git a/src/ar/rocksmanga/res/mipmap-hdpi/ic_launcher.png b/src/ar/rocksmanga/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 000000000..d8e1acc7b
Binary files /dev/null and b/src/ar/rocksmanga/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/src/ar/rocksmanga/res/mipmap-mdpi/ic_launcher.png b/src/ar/rocksmanga/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 000000000..e3eda7f1f
Binary files /dev/null and b/src/ar/rocksmanga/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/src/ar/rocksmanga/res/mipmap-xhdpi/ic_launcher.png b/src/ar/rocksmanga/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..5532e9377
Binary files /dev/null and b/src/ar/rocksmanga/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/src/ar/rocksmanga/res/mipmap-xxhdpi/ic_launcher.png b/src/ar/rocksmanga/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..af89fb819
Binary files /dev/null and b/src/ar/rocksmanga/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/src/ar/rocksmanga/res/mipmap-xxxhdpi/ic_launcher.png b/src/ar/rocksmanga/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000..40414e444
Binary files /dev/null and b/src/ar/rocksmanga/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/src/ar/rocksmanga/src/eu/kanade/tachiyomi/extension/ar/rocksmanga/RocksManga.kt b/src/ar/rocksmanga/src/eu/kanade/tachiyomi/extension/ar/rocksmanga/RocksManga.kt
new file mode 100644
index 000000000..a3e09aaa3
--- /dev/null
+++ b/src/ar/rocksmanga/src/eu/kanade/tachiyomi/extension/ar/rocksmanga/RocksManga.kt
@@ -0,0 +1,40 @@
+package eu.kanade.tachiyomi.extension.ar.rocksmanga
+
+import eu.kanade.tachiyomi.multisrc.madara.Madara
+import eu.kanade.tachiyomi.source.model.SChapter
+import org.jsoup.nodes.Element
+import java.text.SimpleDateFormat
+import java.util.Locale
+
+class RocksManga : Madara(
+    "Rocks Manga",
+    "https://rocks-manga.com",
+    "ar",
+    dateFormat = SimpleDateFormat("MMMM d, yyyy", Locale("ar")),
+) {
+
+    override fun popularMangaSelector() = ".shido-manga"
+    override val popularMangaUrlSelector = "a.s-manga-title"
+    override val mangaDetailsSelectorTitle = ".title"
+    override val mangaDetailsSelectorAuthor = ".heading:contains(المؤلف:) + .content a"
+    override val mangaDetailsSelectorArtist = ".heading:contains(الرسام:) + .content a"
+    override val mangaDetailsSelectorStatus = ".status"
+    override val mangaDetailsSelectorDescription = ".story"
+    override val mangaDetailsSelectorThumbnail = ".profile-manga .poster img"
+    override val mangaDetailsSelectorGenre = ".heading:contains(التصنيف:) + .content a"
+    override val altNameSelector = ".other-name"
+    override fun chapterListSelector() = "#chapter-list li.chapter-item"
+    override fun chapterDateSelector() = ".ch-post-time"
+    override val pageListParseSelector = ".reading-content img"
+
+    override val useLoadMoreRequest = LoadMoreStrategy.Never
+    override val useNewChapterEndpoint = false
+
+    override val filterNonMangaItems = false
+
+    override fun chapterFromElement(element: Element): SChapter {
+        val chapter = super.chapterFromElement(element)
+        chapter.name = element.selectFirst(".detail-ch")!!.text()
+        return chapter
+    }
+}