diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json
index 043a0401..435ecaa5 100644
--- a/assets/javascripts/news.json
+++ b/assets/javascripts/news.json
@@ -1,4 +1,8 @@
[
+ [
+ "2024-01-24",
+ "New documentation: Nextjs"
+ ],
[
"2024-01-12",
"New documentation: Hammerspoon"
diff --git a/lib/docs/filters/nextjs/clean_html.rb b/lib/docs/filters/nextjs/clean_html.rb
new file mode 100644
index 00000000..2897b002
--- /dev/null
+++ b/lib/docs/filters/nextjs/clean_html.rb
@@ -0,0 +1,14 @@
+module Docs
+ class Nextjs
+ class CleanHtmlFilter < Filter
+ def call
+ css('.zola-anchor').remove
+ doc.prepend_child("
htmx
") if root_page?
+ css('div:contains("NEWS:")').remove
+ css('h2:contains("sponsors"), #sponsor-table').remove
+ end
+ doc
+
+ end
+ end
+end
diff --git a/lib/docs/filters/nextjs/entries.rb b/lib/docs/filters/nextjs/entries.rb
new file mode 100644
index 00000000..ab14276b
--- /dev/null
+++ b/lib/docs/filters/nextjs/entries.rb
@@ -0,0 +1,13 @@
+module Docs
+ class Nextjs
+ class EntriesFilter < Docs::EntriesFilter
+ def get_name
+ at_css('h1').content
+ end
+
+ def get_type
+ get_name
+ end
+ end
+ end
+end
\ No newline at end of file
diff --git a/lib/docs/scrapers/nextjs.rb b/lib/docs/scrapers/nextjs.rb
new file mode 100644
index 00000000..b678caa4
--- /dev/null
+++ b/lib/docs/scrapers/nextjs.rb
@@ -0,0 +1,10 @@
+module Docs
+ class Nextjs < UrlScraper
+ self.name = 'nextjs`'
+ self.type = 'simple'
+ self.release = 'v14.1.0'
+ self.base_url = 'https://nextjs.org/docs'
+ self.initial_paths = %w(reference/)
+ html_filters.push 'nextjs/entries', 'nextjs/clean_html'
+ end
+end
\ No newline at end of file
diff --git a/public/icons/docs/nextjs/16.png b/public/icons/docs/nextjs/16.png
new file mode 100644
index 00000000..41e7ff4d
Binary files /dev/null and b/public/icons/docs/nextjs/16.png differ
diff --git a/public/icons/docs/nextjs/16@2x.png b/public/icons/docs/nextjs/16@2x.png
new file mode 100644
index 00000000..e35d18e2
Binary files /dev/null and b/public/icons/docs/nextjs/16@2x.png differ
diff --git a/public/icons/docs/nextjs/SOURCE b/public/icons/docs/nextjs/SOURCE
new file mode 100644
index 00000000..178b8630
--- /dev/null
+++ b/public/icons/docs/nextjs/SOURCE
@@ -0,0 +1,2 @@
+https://assets.vercel.com/image/upload/v1662130559/nextjs/Icon_dark_background.png
+https://github.com/vercel/next.js/blob/canary/examples/cms-enterspeed/public/favicon/favicon.ico
\ No newline at end of file