@@ -29,11 +29,11 @@ const TOPIC_RULES = [
2929 { tag : { label : "Python" , value : "python" } , regex : / \b ( p y t h o n | p y d a n t i c | f a s t a p i | p y t o r c h | u v ) \b / i, weight : 10 } ,
3030 { tag : { label : "PHP" , value : "php" } , regex : / \b ( p h p | l a r a v e l | w o r d p r e s s | z e n d ) \b / i, weight : 14 } ,
3131 { tag : { label : "Security" , value : "security" } , regex : / \b ( c v e - \d { 4 } - \d + | v u l n e r a b i l i t y | r c e | z e r o - d a y | 0 - d a y | a u t h | o a u t h | p a s s k e y | s p i c e d b | s e c u r i t y | e x p l o i t ) \b / i, weight : 18 } ,
32- { tag : { label : "Firebase" , value : "firebase" } , regex : / \b ( f i r e b a s e | f i r e s t o r e | d a t a c o n n e c t ) \b / i, weight : 16 } ,
32+ { tag : { label : "Firebase" , value : "firebase" } , regex : / \b ( f i r e b a s e | f i r e s t o r e | d a t a c o n n e c t | g e n k i t | a p p h o s t i n g | f i r e b a s e s t u d i o | c r a s h l y t i c s | f c m | c l o u d f u n c t i o n s f o r f i r e b a s e ) \b / i, weight : 28 } ,
33+ { tag : { label : "AWS" , value : "aws" } , regex : / \b ( a w s | a m a z o n w e b s e r v i c e s | l a m b d a | s 3 | d y n a m o d b | b e d r o c k | a m p l i f y | c l o u d f o r m a t i o n | c d k | e c s | e k s | e v e n t b r i d g e | s t e p f u n c t i o n s ) \b / i, weight : 28 } ,
34+ { tag : { label : "Cloudflare" , value : "cloudflare" } , regex : / \b ( c l o u d f l a r e | w o r k e r s | w o r k e r d | d 1 | r 2 | d u r a b l e o b j e c t s | h y p e r d r i v e | p a g e s | w r a n g l e r | w o r k e r s a i ) \b / i, weight : 28 } ,
3335 { tag : { label : "Supabase" , value : "supabase" } , regex : / \b ( s u p a b a s e | p g v e c t o r | p o s t g r e s | p o s t g r e s q l ) \b / i, weight : 16 } ,
3436 { tag : { label : "Sanity" , value : "sanity" } , regex : / \b ( s a n i t y | g r o q | h e a d l e s s c m s | p o r t a b l e t e x t ) \b / i, weight : 18 } ,
35- { tag : { label : "Cloudflare" , value : "cloudflare" } , regex : / \b ( c l o u d f l a r e | w o r k e r s | w o r k e r d | d 1 | r 2 ) \b / i, weight : 16 } ,
36- { tag : { label : "AWS" , value : "aws" } , regex : / \b ( a w s | l a m b d a | s 3 | d y n a m o d b | b e d r o c k | a m p l i f y | c l o u d f o r m a t i o n | c d k ) \b / i, weight : 15 } ,
3737 { tag : { label : "CSS" , value : "css" } , regex : / \b ( c s s | t a i l w i n d | t a i l w i n d c s s | v i e w t r a n s i t i o n s | a n c h o r p o s i t i o n i n g ) \b / i, weight : 14 } ,
3838 { tag : { label : "Docker" , value : "docker" } , regex : / \b ( d o c k e r | k u b e r n e t e s | k 8 s | c o n t a i n e r | l i n u x ) \b / i, weight : 10 } ,
3939 { tag : { label : "GitHub" , value : "github" } , regex : / \b ( g i t h u b | g i t | o p e n s o u r c e | o s s ) \b / i, weight : 10 } ,
@@ -158,6 +158,16 @@ function parseSimpleRssItems(xmlText) {
158158async function fetchGoogleTrendsSignals ( ) {
159159 const signals = [ ] ;
160160 const feeds = [
161+ {
162+ url : "https://firebase.blog/rss.xml" ,
163+ label : "Official Firebase Blog Feed" ,
164+ baseScore : 68 ,
165+ } ,
166+ {
167+ url : "https://news.google.com/rss/search?q=(%22Firebase%22+OR+%22Firestore%22+OR+%22Firebase+Genkit%22+OR+%22Firebase+Data+Connect%22+OR+%22AWS+Lambda%22+OR+%22AWS+Bedrock%22+OR+%22AWS+Amplify%22+OR+%22Cloudflare+Workers%22+OR+%22Cloudflare+D1%22)+when:3d&hl=en-US&gl=US&ceid=US:en" ,
168+ label : "Firebase, AWS & Cloudflare Priority Trend Radar (72h)" ,
169+ baseScore : 65 ,
170+ } ,
161171 {
162172 url : "https://trends.google.com/trending/rss?geo=US" ,
163173 label : "Google Trends US Realtime" ,
@@ -274,7 +284,7 @@ async function fetchGitHubTrendingSignals() {
274284// 4. Fetch Reddit Developer Subreddits (r/webdev, r/nextjs, r/reactjs, r/LocalLLaMA, r/sveltejs)
275285async function fetchRedditSignals ( ) {
276286 const signals = [ ] ;
277- const subreddits = [ "webdev" , "nextjs" , "reactjs" , "LocalLLaMA" , "sveltejs" ] ;
287+ const subreddits = [ "Firebase" , "aws" , "Cloudflare" , " webdev", "nextjs" , "reactjs" , "LocalLLaMA" , "sveltejs" ] ;
278288 for ( const sub of subreddits ) {
279289 try {
280290 const res = await fetch ( `https://www.reddit.com/r/${ sub } /hot.json?limit=12` , {
0 commit comments