SnitchFeed's Build Story
SnitchFeed helps startups and marketing teams track high-intent keywords on social media. So small teams can have a big marketing impact without $$$.
Here's the story of how it's being built — one commit at a time.
No credit card required.
6f108cf
Sitemap's lastModified dates were acting up, and platform URLs were stuck in the past. This commit swoops in to fix them, ensuring search engines get the freshest info and users don't end up on a digital archaeological dig!
576ce42
Behold! Dynamic platform pages have arrived, ready to dazzle! Monitoring links get a glow-up, navigation is now smoother than a freshly Zamboni'd ice rink, and even the robots are happier with the updated robots.txt. We're basically catering to everyone, even the bots!
cc00a28
Added 'archived' and 'landingDemo' to the status and source types. Because apparently, things can be both lost to the sands of time *and* used to entice users. Classic.
88d988b
We've given the website a makeover! Fonts got a facelift, layouts are looking sharper, and we're now fetching blog posts like a retriever after a tennis ball. Prepare for content!
fac9feb
DiscordNotifications got a makeover! We've added a tooltip to the switch (because apparently, switches need explaining now) and spruced up the layout. It's like giving your notifications a tiny spa day.
8c3a6e1
Fonts are now playing hard to get! Changed font-display from 'swap' (flirty) to 'block' (consistent and reliable). No more font swapping shenanigans!
e739181
HeroSection2 got a makeover! Styles updated and text looking sharp. Plus, we're preloading that video in HowMentionedWorks so it's ready to roll. Basically, we're making things look good and load faster, because nobody likes waiting!
40c70df
Beautified the site with new fonts (GeistSans, GeistMono, Merriweather, Figtree), added some curvy arrows for extra flair, gave the FAQ a brain boost, and generally made everything look snazzier. Console logs were exiled, and logos got organized. Basically, a major glow-up!
f74adc9
Refactored the mentions sorting logic in the getHomePageFeed function. Because apparently, the old way was about as organized as my sock drawer.
8a3992d
Refactored the mentions sorting logic, making it less of a headache. Also, cleaned up some dead code that was just hanging around, like that weird uncle nobody talks to.
960d624
Authentication components got a swanky upgrade to next-auth, and we tossed out the code that was just gathering dust bunnies. Farewell, unused code, you won't be missed!
40df505
FeedItem component got a makeover! It's sporting a new footer and some fancy UI interactions, making it the belle of the component ball. Basically, we're making things look nicer and play nicer.
a0b7037
Revamped the landing page and gave the hero section a super-suit! Hopefully, it now attracts more users than a moth to a flame.
5b48891
Tweaked the hero CTA. Hopefully, it's now irresistible and not just mildly persuasive!
0e0cb17
Blog pages were playing hide-and-seek with the server, but we've fixed their ISR (Incremental Static Regeneration). Now they'll update like clockwork, no more stale content shenanigans!
c7b9a00
Sitemap gets a dynamic upgrade, and the blog's time machine gets a tune-up to show how long ago things happened. Because who wants a static map and boring old dates?
ba9a901
Sitemap's now dynamic! Because even search engines deserve a little excitement in their lives (and better SEO, of course).
78a72e5
Implemented ISR so blog posts update faster than you can say 'stale content'!
5dd33fe
Blog pages got a makeover! Hopefully, they're not too pretty to actually read now.
98d5d6c
Behold! A new blog page layout has arrived! Hopefully, it's not just rearranging deck chairs on the Titanic.
371590a
Theme toggle transitions were causing more drama than necessary, so we've politely asked them to take a break. No more slow-motion theme changes!
205a5bf
Swapped Twitter's inverted colors for LinkedIn's icons. Looks like someone's trying to be more professional... or just really likes LinkedIn!
d2b2f22
Added a story to the footer. Because everyone loves a good bedtime story... at the bottom of the page!
443abf1
Fixed those pesky TypeScript errors! Because apparently, building code *before* committing is a novel concept. Who knew?
b059264
Twitter's all ears! Added snazzy Twitter feed cards because our listening skills just went live. Prepare for tweet overload!
4ff077c
Pricing page: Still a Work-In-Progress, but at least we're thinking about money... or maybe just procrastinating on the *real* work.
d396f84
LinkedIn feed component: Now even more up-to-date than your grandma's Facebook! (Hopefully, no more embarrassing auto-plays).
7121948
Added an info banner to the app layout, because apparently users needed *more* information. Let's hope they actually read it this time!
b0408a4
Reddit post feeditem? More like Reddit *fixed* feeditem! (Hopefully, no more cat videos showing up when you asked for news).
f16e3bc
Farewell, nixpacks.toml! You were a valiant effort, but alas, you've been vanquished from the realm. May your spirit live on in simpler configurations elsewhere.
78d94d2
Approved those builds like a boss and sprinkled some Nix magic with a `nixpacks.toml` file. Because who doesn't love a little Nix in their life?
209a744
Swooped in and vanquished a horde of TypeScript errors lurking in the legacy code, then cranked up ESLint to eleven. Prepare for liftoff! 🚀
b260a93
LinkedIn listening is now a perk for the fancy pants paid plans! Because free is *so* last season.
cd03ed4
The info-banner has been banished! Apparently, the service is back from its unscheduled vacation. Huzzah!
7851bf4
Added a banner, because apparently things are about to get a little... *spicy*. Let's hope it helps!
4031557
Oops! Looks like someone's trial expired. Fixed the 'in-app trial expired' banner so users don't think the app's gone to the great software graveyard in the sky.
604c66b
Oh no, the trial's over! Implemented a 'Trial Expired' modal to dramatically inform users that the fun is done (unless they pay up, of course!).
017d430
Tidied up the component organization. Looks like someone finally decided to Marie Kondo the codebase!
eb18c3a
Went full goth on the app, adding a dark mode limit and tweaking the sidebar color so it's extra spooky. Because who needs light anyway?
6628293
Sentiment filtering in the feed is now fixed! It's alive! IT'S ALIVE! (and hopefully accurate).
9fa92d8
Fixed those pesky TypeScript errors. Because apparently, they're like clockwork. Sigh.
2c5150e
Added sentiment filtering, because apparently, we can't just let our code run wild and say whatever it wants. Gotta keep those feels in check!
c76b1b1
Consolidated the feed items into a single component. Apparently, we had a few too many (3523 to be exact). Let's hope this doesn't break everything!
4497d88
Spruced up the feed item cards and gave the LinkedIn feed card a makeover. Because even digital rectangles deserve a little TLC!
1fc2940
Sneaking in some LinkedIn monitoring code under the radar. Let's hope it doesn't trigger any alarms! 🤫
beb78ce
Finally, the mention button colors are no longer an eyesore! We've banished the chromatic chaos and restored visual harmony. Users can now mention each other without feeling like they're staring into the sun.
5bef632
Gave the website a fresh coat of paint (background color) and a pep talk (hero copy). Hopefully, it's less 'meh' and more 'magnificent' now!
5bf451e
Tamed the wild mentions feature! Added a conditional AI insight filter and stopped the router from doing the refresh dance every time AI feedback is sent. Mentions are now slightly less chaotic.
f14a5e6
KeywordVolume component got a CLS makeover! It's now less jumpy and more stable, like a well-behaved bouncy castle.
e86eed3
Listeners filter got a reverse multiselect! Now you can select what *not* to listen to. Because sometimes, silence is golden (and selectable).
65c8d2f
Upgraded the pnpm packages and wrestled the TypeScript compiler into submission. Build errors? Not on my watch!
5cf30fe
Color picker feeling a bit cramped? Gave it some room to breathe by making it full width. Now it's living its best, widest life!
6591b77
Finally got the platform filter working! Turns out, platforms are picky and need to be filtered *just so*.
9b18a35
Oops! Looks like someone forgot the AI insights filter for mentions and now it's back. Let's hope it doesn't start judging our code.
7f49351
Added keyword volume feature so users aren't just shouting into the void with their keyword tracking. Now they can see if anyone's actually listening!
3426070
Spruced up the UI a bit and added a platform filter, because who doesn't love options? It's like choosing your own adventure, but with less dragons and more data.
bb2b25f
Story page logic: Fixed it again! (Hopefully for the last time, or I'm blaming the cat.)
1570f54
Tweaked the landing page stats, because apparently nobody was clicking on anything. Hopefully, numbers go up!
e83c1a4
Shrunk the chat button in the app. Because apparently, it was too eager to be clicked. Now it's playing hard to get.
dd1e59c
Spruced up the story page! It's now so pretty, it might just win a beauty pageant. (For web pages, obviously.)
c9a1f64
Global loading bar got a diet! Shed some pixels for a sleeker, more 'now' look. Hopefully, it's not *too* skinny now...
6a4629e
Tweaked the GitHub story processing logic, hopefully making it less likely to spontaneously combust. Fingers crossed!
e204edc
Feed items, previously scattered like confetti, are now neatly organized in a central component. Order has been restored to the timeline!
eadc2e7
Added filters so extensive, you'll need a magnifying glass to find what you're *not* looking for on the feed, listener, archive, and bookmarks pages. Prepare for ultimate control!
9b56f0b
Added a global progress bar, because apparently we needed to keep everyone constantly updated on... everything. Prepare for progress bar overload!
d0f9365
Implemented a filter using query parameters and bravely pushing it to test... because what could possibly go wrong? (famous last words)
21bf540
Story metadata got a makeover! Because even stories deserve to look their best. (Hopefully, no one will notice I just fixed a typo.)
a0bbd95
Oops! Looks like someone invented time travel and messed up the commit history. Chronological order restored, because even computers appreciate a good timeline!
6743040
Fixed the GitHub story, hopefully making it less of a tragedy and more of a rom-com. Fingers crossed!
46d1be5
Added a 'GitHub commit history story page' because apparently, our commit history is so epic it deserves its own narrative. Let's hope it's more 'Lord of the Rings' and less 'NeverEnding Story'.
9e3fb1f
Beautified the landing page. Hopefully users will now *land* and *stay*!
fbd9822
Sentry's taking a vacation from dev mode. Let's hope no bugs sneak in while it's gone!
a105cbc
Oops, looks like someone hit the 'update all the things' button! Let's hope nothing explodes. (pnpm up)
cc90160
Added a safety net for OAuth users who apparently forgot their last names. Now the app won't freak out if they're feeling mysterious.
1db55c8
Added a 'high relevance' notification switch to the notifications settings. Because who doesn't want *more* notifications?
a5cb9db
The Archive has been promoted! It now has its own swanky sidebarItem. No more hiding in the shadows!
f53f41d
Squashed those pesky TypeScript errors like bugs on a windshield! All clean now.
0d7f16a
Implemented the ability to archive mentions, because nobody wants to dwell on the past (especially if it involves being tagged in embarrassing photos).
409abfb
Listeners page got a bookmark collection upgrade! Because everyone needs more bookmarks, right?
28f5744
Tweaked the 'getbookmarkcollections' function. Because apparently, it wasn't getting them quite right. Now hopefully it will!
5f23b5e
Tweaked the Stats component's high-intent leads filter. Because apparently, our leads weren't quite intense enough. Now they're *really* interested!
d315ecc
Navigating the site just got a whole lot link-ier! (Swapped out the old navbar items for shiny new Link components.)
a3add59
Login/Signup loading got a makeover! It's smoother than a freshly paved road now. No more janky loading screens!
8ab4cfa
Tweaked the secret sauce of SF and gave the pricing table a makeover. Hopefully, it's less confusing now, and not more! 🤞
9d05569
Slayed those pesky TypeScript errors! One less thing to keep the developer up at night.
b01d63e
Wrangled the Directus client into submission! Now we can talk to Directus without resorting to carrier pigeons. Hopefully.
1f7b0e3
Added a pinch of 'umami' to the docs. Hopefully, it'll make them more flavorful!
bc08718
Added a loading screen so users can stare at something other than a blank void while waiting. Hopefully, it's more entertaining than watching paint dry!
f8f3e7c
Dusting off the project by removing some cobwebs... I mean, unused dependencies! Bye bye, markdown editor, you won't be missed... or maybe you will, who knows?
d0bca84
Switched to Turbopack, because apparently Webpack wasn't fast enough. Buckle up, buttercups, we're going plaid speed!
33a685a
Blog page featured image: Take 2! Hopefully, this image sticks this time, or we're blaming the gremlins.
bee26cd
Gave the latest blog post a visual upgrade! Because words alone are *so* last century.
b0d2373
Metadata? More like meta-fixed-a! We've straightened out the page metadata, so search engines and social media can finally understand what's going on. No more existential crises for our crawlers!
c066dc4
Houston, we are deploy ready! (Hopefully nothing explodes).
5252ea2
Just a quick `pnpm update` to keep the dependencies happy and avoid any dependency-related existential crises. Hopefully, nothing explodes!
5ad6f79
Sitemap updated! Because even robots need directions sometimes.
df2d68f
Houston, we have de-Dockerized! Dockerfile has been yeeted into the abyss. Hopefully, nothing explodes...
57b7016
Well, that was productive! This commit seems to have achieved... absolutely nothing. Maybe it's a placeholder for greatness? Or maybe someone just really likes committing the word 'same'.
e52a98a
Oops! Looks like someone accidentally left the keys to the kingdom (the nav bar) lying around. Removed the pesky auth check. Hope nobody notices! 🤫
0222770
Blog gets a static site generator! Because who needs dynamic content when you can pre-bake the whole darn thing? (Probably for speed, let's be honest).
1fe48be
Blog slugs got a makeover! Let's hope they're feeling fabulous and ready to strut their stuff on the information superhighway.
3ce9bbd
Spruced up the UI to play nice with the slug. It's like giving the UI a makeover so it can finally understand its new friend!
72c2c23
Implemented cookie saving in the database. Because who needs a cookie jar when you have a database?
51bf3d6
Added table functionality to the blog. Because sometimes, you just need a good table to organize your thoughts (or maybe just to make things look fancy).
4abb3b4
Pricing page got the axe! Apparently, we're still figuring out how much to charge you lovely people. Beta life, am I right?
2edb179
Farewell, 404 comparisons in the footer! Looks like someone finally realized nobody was checking them anyway. Good riddance!
ab7871f
Tweaked the landing page prices – hopefully, they're more irresistible now! Let's see if the conversion rates skyrocket... or at least gently float upwards.
c77c921
Behold! We've sprinkled some statistical fairy dust on the homepage and landing pages. Prepare for enlightenment (or at least some numbers)!
ca74dc9
Woke up the Groundhogg and taught it how to make new friends (contacts, that is). Hopefully, it won't predict six more weeks of coding!
b207b66
Squashed those pesky TypeScript errors like bugs on a windshield! Hopefully, the code now compiles without screaming.
2e7a9ba
Docs? Done! SF explanation video? Updated! Basically, I'm making sure nobody gets lost in the sauce. You're welcome, future users!
6a80b46
Whipped up a testimonials section to make us look good, slapped a call-to-action on the blog page because, well, we want action! Plus, gave the blog pages the SSG + CF CDN treatment for extra speed and fanciness. Basically, made the site shinier and faster. You're welcome!
1cf9f4d
Oops! Looks like someone accidentally left a digital fossil in the email notification settings. Don't worry, we've dusted it off and sent it packing!
1c6d835
Added a listener count to the onboarding keywords settings. Because apparently, we need to know *exactly* how many ears are listening to our onboarding wisdom. More data, more problems... or solutions, hopefully!
e74e68b
Tweaked the onboarding keywords and listener settings. Hopefully, new users won't get lost in the woods anymore!
8330728
Gave those hero logos some helpful hints (tooltips!), because apparently, they were feeling a bit shy and uninformative.
649bbaf
Added some extra-crispy toast instructions to the create listener. Because who wants burnt toast, or worse, a half-baked listener?
d02686a
Oops! Looks like we forgot about the newbies. Fixed `getUsage` so new accounts without any listeners don't break the whole darn thing. No listener left behind!
fc3f8f3
Flipped the 'pageleave' PH event switch to 'true'. Because apparently, it was lying about leaving. Now it's honest...ish.
4b771cc
Docs got a little love! The platforms section has been updated, probably to reflect the ever-changing landscape of where our code can run. Let's hope it's not outdated again tomorrow!
44bb1bc
Finally! Added some moving pictures to explain how Salesforce works. Because, let's be honest, words are *so* last century.
b72f7df
Spruced up the marketing site's UI – because even websites deserve a makeover! Hopefully, it's now less 'meh' and more 'marvelous'.
b8e81de
Updated robots.txt - because even robots need rules (and maybe a little encouragement to stay out of the server room).
53ea1df
Switched the default new listener platforms to Reddit and Bluesky. Because, let's face it, who *isn't* on those?
4941805
Finally, users can actually *see* the purchase options on the billing page! It's like they were hidden behind a magical paywall before. Abracadabra, they're visible!
13b7199
Analytics took a vacation from the sidebar. Hopefully, they packed their sunscreen!
7374e26
Onboarding got a makeover! Hopefully, new users won't run screaming into the night anymore.
6a7c1b9
Onboarding flow got a little too eager; skipping options now so users don't get overwhelmed before they even say 'Hello World!'
904f31e
Looks like someone decided business emails were just too darn serious and pulled the plug. Maybe they're tired of all the 'reply all' madness!
7d6576d
Added attribution cookies to the site, because apparently, we need to know who to blame for all those clicks. (Just kidding... mostly.)
3d9258b
Giving credit where credit's due! This commit is all about properly attributing the sources, because nobody wants to be a content thief, especially not on a Monday morning.
12e379b
Fine-tuned the reddit post URL-grabbing function. Because nobody wants a broken link to cat videos!
ae909a2
Unleashed the web-fetching beast for onboarding! Now new users can be properly assimilated... I mean, welcomed.
8a2507e
Adding relevance match counts to feed container2, because apparently, knowing how relevant things are is, well, relevant! Who knew?
471c8ed
The bookmark collection upsert button was apparently feeling a bit down, so it got a pep talk and is now fixed. It's like a tiny digital therapy session!
37ce830
Home and HeroSection got a makeover! We've also ensured the PricingTable class is playing by the same rules as everyone else. Basically, tidying up the place!
1c2ef81
Giving the PricingTable component an ID so it can finally be found in the dark depths of the DOM. Accessibility++!
b8e8c0e
Matches layout got a makeover! New branding and description, because who wants to be stuck in the past? It's like giving your website a fresh coat of paint and a witty bio.
9133d5c
RootLayout got a makeover! We kicked out the <body> tag (it was cramping our style) and invited Umami to the party directly. Less HTML, more analytics!
04d7435
Sneakily added the Umami tracking script to the site layout, so we can finally know if anyone actually visits this thing. Fingers crossed!
f61e3e5
Silenced the overly chatty toast notifications in FeedContainer2. Apparently, nobody likes being yelled at when they haven't even picked their favorite flavor of relevance yet. Shhh, toast, shhh.
a036720
FeedContainer2 got a brain boost! Now it can sort alerts by name. Plus, ListenerFeedContainer2 and RedditCommentItem2 got a full-width makeover, because nobody likes a squished comment.
c6eac45
ColorPicker gets a spa day (key parameter removed!), and EditBookmarkCollections gets a trash can icon and a form-fitting suit. Deleting things just got stylish!
3c51263
Feeditems got a brain boost! Now they can handle multiple keyword matches, because one keyword is *never* enough. Prepare for the flood!
cd483bd
Spruced up the bookmark editing experience! We've given EditBookmark and UpsertBookmarkCollection a makeover, aligned the dropdowns just right, and put a form around that lonely Input so it can finally submit properly. It's like giving your bookmarks a spa day!
7c4b162
Added a SignupTooltip to gently nudge users, gave the homepage and pricing section a makeover (because they deserved it), and taught the monitoring components to highlight mentions like a pro. Basically, made the site a little more persuasive and a lot more stylish.
0f6bed3
Goodbye Loading component, you won't be missed (probably)! FeedContainer2 got a makeover, ditching those pesky relevance and date options. Plus, BlogContent and the image pipeline got a spa day, and wholeWord is now *always* true. It's like a spring cleaning for the codebase!
12265ed
Spruced up the blog's components, giving them a makeover for a more consistent and readable layout. Think of it as a digital spa day for the blog!
780cdc4
Made `relevanceOrder` and `dateOrder` in `getPaginatedKeywordMatches` optional, because sometimes you just want *some* order, not *that* order. Freedom!
ade53d2
Tidied up the layout components, gave FeedContainer2 a sorting hat, and evicted some unused imports. Plus, made the docs layout a bit more predictable. Basically, a spring cleaning for the UI!
4c7e3f7
Adding metadata to the docs – because even documentation needs a little bling!
6a0d87a
Subscription plans got a promotion! We've added an admin plan and a keyword limit, because apparently, some people need to be told when they've used *too many* words. It's like herding cats, but with keywords.
b12c3fd
Blog UI got a makeover! Hopefully, it's not just lipstick on a pig... but probably is.
2a746e4
Updated the 'check magic link' page. Hopefully, it's now *actually* magical and not just mildly confusing.
1ccab08
Gave the subreddit slugs a makeover, because even URLs deserve to look their best (or at least slightly less awkward).
b7d9f99
Umami enabled! Because who doesn't love a little bit of website analytics sprinkled on top? Let's see what delicious data we can gather!
256762a
Initialized the platform pages. Because every good platform needs a launchpad!
6e8e004
Added a sitemap and robots.txt so Google doesn't get lost, and maybe optimized an Array? Who knows, it's a mystery!
66985f4
Added an Open Graph image to the blog, because apparently, links need pretty faces too!
3b01956
Gave the blog a social media makeover by adding an Open Graph image, so it looks less like a wallflower at the party and more like the belle of the ball!
0b68c17
Highlighting keywords like a boss! Because nobody likes squinting at walls of text. Let's make those keywords pop!
d2896ed
Like a digital Marie Kondo, this commit decluttered the feeds, sparking joy by removing those deadbeat, inactive matches. Buh-bye!
5008047
Onboarding 2.0: Because apparently, the first onboarding was so good, we needed to do it again. Let's hope this one sticks!
508cfc7
Blog's dynamic params got the axe! Looks like someone decided to put the 'static' back in 'fantastic'.
99cf35f
Fixed the getMatches hit count. Because apparently, counting is hard. Who knew?
34f7034
Fixed a broken image link by hooking it up to the CMS. Hopefully, no more 404s staring back at our users!
7363740
Tweaked the secret sauce of SF... because apparently, it wasn't quite magical enough. Prepare for slightly more enchanted results!
8ec44da
Docs got a little love! Hopefully, they're slightly less confusing now. Maybe.
3936fb5
Tweaked the 'get matches count' function. Hopefully, it counts matches better now, and doesn't accidentally count your socks as matches. Fingers crossed!
2b45190
Oops! Looks like we accidentally made the homepage too exciting. Reverting to the previous, presumably less-dazzling, version.
747e258
Just poking the build system to see how long it takes to wake up and smell the coffee. Hopefully, it's faster than my Monday mornings!
c835f19
Houston, we are go for Docker! This commit prepares the Docker build, so we can finally containerize all the things!
c471963
Finally squashed those pesky 'get matches' bugs! Hopefully, this is the *real* 'final' fix. I'm not touching this again... probably.
7b9bc55
Yet another attempt to wrangle those pesky matches into submission! Hopefully, this is the *actual* fix this time. Third time's the charm, right?
94b2fd4
Fixed the 'get matches' function... again! Hopefully, this time it's *actually* fixed. Third time's the charm, right?
03234c4
Fixed a bug in the 'get matches' function. Hopefully, it now gets *all* the matches, not just the ones it felt like getting. Because nobody likes incomplete matchmaking!
0f29431
Added a site banner, because apparently, the site wasn't flashy enough already!
8954122
Tweaked the website's SEO, probably so Google will finally notice us and send some love (and traffic, please!).
43fa10e
Added Open Graph meta tags, because apparently, the internet needs more ways to judge our website by its cover. Let's hope it makes us look good!
06d1373
Wired up Sentry, because who doesn't love a good error report (or a chance to blame someone else)?
208769b
Ding ding! New user notification added. Because who doesn't love being bombarded with updates? (Hopefully, they're useful ones!)
4d83791
Behold! The icon has been... icon-ified! (Or, you know, just updated.)
7fe5644
Privacy and T&C: Because nobody reads them anyway, but we gotta have 'em! ¯\_(ツ)_/¯
7e6905f
Hero image updated! Because even heroes need a fresh coat of paint (or pixels).
6ede45e
Landing page got a makeover! The banner was banished, presumably for crimes against good design.
32ba0d5
Tweaked the plunk URL and gave Microsoft's well-known a little polish. Because even URLs need a spa day!
a5b8805
Spruced up the UI. Because apparently, it wasn't dazzling enough already!
5f5f9d0
Behold! A 'Beta' banner has been heroically added, presumably to warn users of impending (but hopefully charming) chaos. Proceed with caution... and maybe a sense of humor.
3ca525f
Behold! The docs logo has been updated! Prepare for visual enlightenment (or at least a slightly different picture).
46dc247
Docs updated! Because even robots need instructions, apparently.
3d3310a
Spruced up the UI! Because apparently, it wasn't dazzling enough before. ✨
045d8dc
Relevance selection: It's not broken anymore! (Hopefully...)
4e61646
Stripe billing: Because who doesn't love getting charged? (Hopefully, it's done right this time!)
1a84cec
Added `planId` to the `orgTable` because apparently, organizations need plans too! Who knew?
0033a0e
Added Stripe integration! Now taking your money, one API call at a time. Cha-ching!
e45cbbc
Looks like someone's been promoted to Chief Snitch Officer! Email address updated to reflect the new corporate overlords... I mean, SnitchFeed.
69be605
Giving those assets the VIP treatment by setting their loading priority. Because some things are just too important to wait for!
a00b5b3
Ran `pnpm up` because apparently our dependencies were living in the Stone Age. Let's hope nothing explodes!
0c24c54
Added a YouTube video embed. Because who doesn't love cat videos... or maybe it's a tutorial? Either way, content!
2abc1bb
Table of Contents updated! Because even robots need a good index to find their way around.
0099afa
Added Chatwoot integration, because who doesn't love talking to bots? (Hopefully they're friendly ones!)
2733dd3
Beautified the landing page, making it less likely to scare away potential users. Hopefully, it's now more 'come hither' than 'go away'.
ddc81d1
Spruced up the UI, because apparently it was looking a little *too* vintage. Hopefully, it's less 'grandma's attic' and more 'modern art museum' now.
e5168f5
Spruced up the landing page! Hopefully, it's now so shiny that users will be blinded by its awesomeness and instantly convert. Marketing team will be pleased... or else!
c8d83c4
Beautified the UI, because apparently, it wasn't pretty enough before. Let's hope it doesn't break everything!
51f76d0
Added videos to the CMS. Because who doesn't love a good cat video while managing content?
768d8e4
The landing page has been wrestled into submission and now plays nicely with mobile devices. No more squinting!
6f7fafe
Spruced up the UI! Because apparently, it wasn't dazzling enough already. ✨
ea789e7
Looks like 'mentioned' got snitched on and replaced with the 'SnitchFeed' brand name. Someone's been busy rebranding!
37406cd
Branding iron applied! We've officially rebranded to SnitchFeed. Let's hope the name doesn't attract too many tattletales!
9cb90bc
Made the output more independent, because nobody likes clingy outputs!
120f9be
Feed items got a UI makeover! Hopefully, they're looking snazzier and less like they were designed by a committee of cats.
414accb
Behold! We've added AI insights, because apparently, humans weren't insightful enough. Prepare for Skynet... or at least slightly smarter suggestions.
96c98c5
Landing page got a makeover! Hopefully, it's not just lipstick on a pig.
da658c7
Docs updated! Because even robots need instructions, apparently.
c9b2d55
Billing settings? More like *blinging* settings! We're setting up shop to get paid, folks! Cha-ching!
5ce5e74
Added a paywall to the listener creation process. Because apparently, creating listeners should now come with a subscription fee! (Just kidding... mostly).
250e91e
Prevented the listener slug page from entering an infinite rerendering loop of doom. Now it behaves, mostly.
8656b97
Finally, users can set their timezone in notification settings without causing a temporal paradox! Timezone selection fixed.
e7a60bf
Houston, we had a problem! But fear not, the post and comment items have been rescued from the clutches of bugginess. They're now functioning as expected... hopefully!
ebb6ad9
Feed animations now behaving as expected! No more jittery feeds, just smooth scrolling goodness. We've banished the animation gremlins!
ec86269
Pricing table got a makeover! Let's hope customers find the new numbers as attractive as we do. Fingers crossed it doesn't scare them away!
967b7ce
Gave the feed items some pizzazz with a delightful animation! They're not just sitting there anymore, they're *alive*! (Well, animated, anyway.)
e8cbd9a
Corrected the 'getmatchurl' function for 'psots' (presumably not typos). Hopefully, it now fetches the right URLs instead of sending users to a 404 page of despair!
5648c0e
Oops! Looks like someone accidentally left the Umami ID out in the open. Let's hope no one uses it for nefarious cookie-tracking purposes! (Probably not, but still...)
2ce1887
Added the Umami ID to the environment variables, because who doesn't love a little extra tracking? (Don't worry, it's for science... or something.)
4f0ffa5
Fingers crossed, PostHog is now behaving itself. (Maybe?)
22b8b08
Analytics got a one-way ticket to production! No more staging shenanigans for them.
d03932a
Added a loader to the login/signup pages, because waiting is the hardest part (especially when you're trying to remember your password).
60d77c8
Added a PostHog proxy, because apparently even our data needs a bodyguard. Let's hope it doesn't start demanding royalties.
f479655
Added PostHog and Umami analytics. Because apparently, we weren't tracking enough already! Let's see if we can finally figure out why nobody clicks that button.
4dc06bd
FAQ added! Because everyone loves answering the same questions over and over. Now a bot can do it!
60178a0
Behold! The icon has been updated! Prepare for a visual feast... or at least a slightly different picture.
cb2130e
Gave the comments section a brain (sort of)! Added AI feedback, so now they can argue with a robot too. Fun times!
71f9f94
Houston, we have successfully jettisoned the performance observer! It was slowing us down, like that one friend who always orders the complicated coffee.
93c90ac
Tweaked the matchClicks function. Hopefully, it now clicks with everyone (pun intended!).
3bb3d58
Huzzah! The filtering is finally working! We can now filter things, which is objectively better than *not* filtering things. Prepare for a world of organized data!
99ba826
Spruced up the docs! Hopefully, they're less likely to induce existential dread now.
ed3cef3
Dialogs and animations got a tune-up! They're less janky now, hopefully. Prepare for smoother interactions... or at least slightly less awkward ones.
386ca75
UI Updates: Because the old UI clearly wasn't cutting it. Hopefully, this one is slightly less offensive to the eyes.
a0c8042
Tweaked the listener relevance settings and notification preferences. Because apparently, nobody wants *all* the notifications, just the *important* ones. (Hopefully, we guessed right!)
e8525c6
Validated those onboarding domains, because apparently, users can't be trusted to type things correctly. We're saving them from themselves, one domain at a time!
61b39ea
Renamed 'keyword' to 'listener' on the UI because apparently, words matter. Who knew?
5acae6f
Code's back from the brink! Build errors vanquished. Let's hope they stay gone this time...
ce36c92
Tweaked the match links and source capturing logic. Because apparently, things weren't quite right the *first* time. Whoops!
5f50f33
Behold! The 'Check Email' page has arrived, hopefully preventing users from claiming they *never* got that password reset link. (Spoiler: It's probably in spam.)
472bc6e
Tweaked the feed items UI, hopefully making it less of an eyesore and more of a delightful experience (or at least, not rage-inducing).
f66208f
Organization settings have been implemented. Because apparently, chaos wasn't working for us.
5535e9f
Implemented email notification settings, because apparently, people want *more* emails. Who knew?
61e2a57
Onboarding setup: Because everyone deserves a slightly less confusing first day!
842b0f4
Tamed the magic link! Now it actually creates users instead of just...magically doing nothing. User creation: 1, Bugs: 0.
a70fbd3
Fixed a bug related to the company email. Hopefully, no more emails ending up in the spam folder... or worse, the CEO's inbox!
e25b01b
Schema got a makeover, a blog joined the party, and the landing page got a fresh coat of paint. Basically, we're making things prettier and more useful, one commit at a time!
286e783
UI got a makeover and we're now keeping tabs on agency IDs. Because knowing who's who is half the battle (and the other half is UI, apparently).
a4f3e59
Added `agencyId` to session and UI feed updates, because apparently things weren't identifiable enough already. Let's hope this doesn't break everything!
55d897d
Finally, we're breaking up those long comment and post bodies! They were getting a little too clingy. (Line breaks added for readability, not emotional support.)
6141b37
Spruced up the UI, because apparently, it wasn't dazzling enough. Let's hope it's not *too* dazzling now!
cc1d352
Added support for Reddit posts. Because who doesn't love a good cat meme?
5edbcc0
Leapt into the future with Next.js 15 and now yelling at Discord via webhook! Because why not?
d5d810a
Added documentation and, against all odds, actually got it working! Miracle achieved.
edaf226
Added Fumadocs, because apparently we needed more documentation. (Just kidding, documentation is always good... right?)
3832fd2
Spruced up the UI! Because apparently, it wasn't dazzling enough before. ✨
7e63829
Branding updated to 'mentioned' - because apparently, we're all about being talked about. Hopefully, in a good way!
59a938d
Fixed those pesky words in the feed item that were so long they were practically social distancing from the rest of the text. Now everything's playing nicely together!
3d2f941
Highlighting keywords, because apparently, we like things shiny! ✨
8b91d8a
Hallelujah! The collections are finally sorted! (Let's hope it stays that way...)
8114ec5
Bookmarking? More like 'bookmark-YEAH!' Now you can save your spot, because nobody likes losing their place in a good story (or a really long code file).
55dd060
Added a delete listener, because things were getting a little too attached to the server. Now we can say goodbye!
f6c68f6
Added an app nav bar and a support/feedback section. Because who doesn't love giving feedback? (and navigating, I guess).
fc5268c
Spruced up the UI! Because apparently, it wasn't pretty enough before. Let's hope this prevents users from spontaneously combusting from sheer ugliness.
d791ae0
Wrangled the feed and listener pages into existence. Hopefully, they'll behave!
fc91c98
Eslint errors vanquished! The code is now slightly less likely to spontaneously combust. You're welcome.
5c5e478
Well, someone's feeling indecisive! Looks like we're now eavesdropping (listening) and got a shiny new schema. 'I guess' they're sure about it...
fbe6d18
Alerts page added, along with the ability to Create, Read, and Update them. Because who doesn't love a good alert?
ea0e50b
Added scheduling and a custom editor, because who needs free time or default settings, am I right?
6333763
Lint errors, begone! Our code is now so clean, you could eat off it (but please don't).
8c5affd
Made some mysterious 'site updates'. Hopefully, they didn't break everything! (Fingers crossed!)
1c56169
Farewell, subreddit-cards.tsx! You were a good card, but the deck has been reshuffled. (File deleted)
e18efd1
Spruced up the pricing page, gave the footer a makeover, and apparently we're now dealing with subreddit cards. Because why not?
0f30d42
Houston, we are (again) go for launch! Fingers crossed this deployment doesn't involve any unexpected orbital debris.
763f7d1
Houston, we are go for launch! (Deployment, that is). Fingers crossed nothing explodes.
66a1150
Eslint errors vanquished! The code is now slightly less offensive to the linter overlords.
cd40e06
Chart dates were apparently living in the past. Fixed 'em so they're living in the *present*! (Or at least, closer to it.)
387f9a8
Made the sidebar text size a *tad* bigger. Because squinting is *so* last year.
e076cdf
Finally, Reddit OAuth! Because who doesn't want to argue with strangers from within the app? 🎉
02b303a
Added snazzy cards for scheduled posts, because who doesn't love a well-dressed post-to-be?
bea22ce
Finally, a WYSIWYG editor! Now we can all pretend to be professional web designers without actually knowing HTML. Huzzah!
3457b0b
Subreddits, subreddits, wherefore art thou subreddits? Oh, right, I just added/removed some. Carry on.
19e9e0c
Added next/env because apparently, the app needed to know *where* it was running. Poor thing was lost!
eda528c
Gave the 'users' table a name column, because apparently, they were just numbers before. Identity crisis averted!
f813ec2
Huzzah! The code is finally deemed worthy to venture into the wild. Deploy-ready, as if summoned by the gods of production!
5dbc533
Google Auth is now functional! Let's hope it doesn't decide to spontaneously combust. 🤞
db8f4f9
Well, someone made a commit. Details are a bit scarce, but hey, at least it exists!
7aefd6e
Dashboard got a little love! Hopefully, it's less 'meh' and more 'wow' now.
e831f42
Added Google Analytics 4! Because apparently, the old analytics were like, *so* last year. Let's track those clicks!
ab4b40f
Dashboard chart fixed! Because nobody likes a sad, broken chart on Christmas Eve. Consider it an early present.
c941b30
Tweaked the subreddit page. Hopefully, it's less of an eyesore now!
b5a7960
Added a chart and 'stuff' to the dashboard. Because every dashboard needs 'stuff'.
1f5112b
Updated the Reddit page, because apparently the old one wasn't dank enough. Let's hope this one gets more upvotes!
171ca42
Created a page to display Reddit slugs. Because everyone needs more slugs in their life! 🐌
73debee
Added a chart and a dashboard, because apparently staring at raw data wasn't exciting enough. Let's hope these make things look prettier!
17bbf76
Houston, we have liftoff! Deploying to production... hopefully, nothing explodes. 🚀
c4d7269
Spruced up the subreddit cards and gave the copy a little facelift. Because even digital cards deserve a makeover!
f576c8f
Added some illumination! Hopefully, this commit doesn't just add to the electric bill.
a54a279
Eslint errors vanquished! The code is now so clean, it could eat off it. (Probably shouldn't, though.)
dda3f3e
The big bang! Initialized the repository. Let the coding chaos begin!
785a8f2
Genesis! Let there be code! (and a shiny new Next.js app, apparently).