Loading...
We're getting everything ready for you.
Loading...
We're getting everything ready for you.
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.
13aea59Farewell, verbose console log! 'Recently Archived' has been evicted from the console. It's gone to a better place... probably.
d0a88bbOops! Looks like we forgot that sometimes things *aren't* recently archived. Made `recentlyArchived` optional so the code doesn't throw a tantrum. Filter states are now more chill.
963a332feat(archive): ✨ Now you can actually *see* those mentions you banished to the archive! Added a shiny button and everything. Because who archives things if they can't dramatically unearth them later?
4b9c29dfeat(getMentions): ✨ Now you can filter those mentions by collections! Because who needs *all* the noise? 😜
3d165cfFixed a minor but mighty bug in listener settings: We've taught the placeholder text some manners (it now politely asks you to 'hit' enter) and stopped the subreddit input from pretending to be a pirate ('r/' be gone!).
4a36b3aSwitched to Webpack for production, because apparently the old way was so last year. Also, Next.js got a facelift (updated to the latest version), and we squashed some pesky TypeErrors like they were bugs on a windshield.
56586cafeat(onboarding): ✨ Figured out where you are in the world (timezone detection) and updated your settings accordingly. Now you'll get notifications at the *right* time. Onboarding just got a whole lot smarter!
74e8174Fixed a bug where the homepage layout was feeling a little too cramped, gave it some breathing room with adjusted margins! Also, the HeroSection2 component got a makeover with a more visible underline. Because nobody likes invisible underlines!
688ad40Webhook guide links got a makeover! Hopefully, they're less likely to lead you into a 404 abyss now.
6da8ec3feat(og): ✨ The titles now have dynamic font sizing, so they won't hog all the space like a font-zilla. Also, slimmed down the layout a bit, because who needs 80% when 70% is all the rage?
438c720Fixed a function to update webhook names. Because apparently, naming things is hard, even for computers.
179f18eOops! Looks like the test webhook body was a bit wonky. Fixed it so our tests don't get stage fright.
2669a48Webhook bodies got a makeover! Hopefully, they're less likely to cause robots to weep now.
776a075Behold! We've unleashed a Kraken of webhooks! Now you can create, update, and delete them like a boss. We even threw in some UI glitter and a testing playground. Database? Oh, it's ready for the webhook revolution!
9233ca8Spacing got a makeover! Blog posts and pages now have a more consistent and pleasing layout. Plus, we're telling the robots to stay away from our CDN-CGI stuff and giving Discord and Slack redirects a more permanent home. SEO, baby!
325dfe7Looks like 'otp-login' bravely charged into the main branch! Let's hope it brought the right keys (and no bugs).
07b9fa8Implemented OTP-based login and signup, because apparently passwords weren't annoying enough. Also, gave the loading screen a facelift and tidied up some digital dust bunnies.
7f145e6Temporarily replaced the subreddit links with a dummy link. Because sometimes, you just need a placeholder while you figure things out! (It's like putting a 'Gone Fishing' sign on your brain.)
a51c19ffeat: Now listeners can request historical data, because who doesn't love a good blast from the past?
d1f7447Initialized the 'reddit best time to post' tool. Because who doesn't want their cat pictures to go viral?
4be669dCorrected the metadata for the `/tools/slug` endpoint. Because even slugs need to be properly documented, apparently!
d1800cbAdded a shiny new /tools route and whipped up a social listening ROI calculator. Because who doesn't love proving their social media obsession pays off?
9bdcfc5Fixed the dreaded 'site not-found' page (because nobody likes a 404) and wrangled the multi-select dropdown in the feed listener into submission. Select all the feeds!
e269c73Blog links, now with extra freedom! They'll boldly go where no link has gone before... a new tab!
1f7165bSpruced up the blog! Gave the images a diet (resized them) and added some colorful bullet points because, let's face it, who likes boring lists?
ce4cd21Groundhogg tag updated to 'Onboarding' – because new users deserve a proper welcome (and maybe a tiny virtual groundhog).
7929733Fixed those pesky archive page filters, because nobody likes a broken filter... unless you're into that sort of thing. (We're not judging... much.)
230c6b9Goodbye, console logs! 👋 We've banished them from the email notifications code for a tidier digital workspace. Plus, the AI reply feature is taking a nap (commented out) until it's ready to wow us.
dc36f24Okay, so we've given our feed items a brain (AI insights!), tidied up the footer situation, and generally Marie Kondo'd the code. Plus, we're now logging things like pros. Basically, we're making sure the listeners are behaving themselves and the logs are juicy. Feels good, man.
53e85dbOops, looks like some pesky console logs were accidentally left in! This commit squashes those bugs and also makes the listener creation logic a bit more robust. Plus, the logging is now clearer, so we know *exactly* what's going on. No more mystery!
2dca2ceOops! Fixed a little whoopsie where the dashboard decided to take a permanent vacation when users had no listeners. Now it behaves itself. No more crashing!
3d1a140feat(layout): Added Chatwoot integration to help users when they inevitably get lost. Also, made the 'dismiss' button on the email banner last a bit longer, because who reads those things anyway?
17785c2Blog post got a makeover! We've pimped the images with full URLs, cranked up the SEO, and made the content and CTAs so stylish, they're practically begging for attention. Prepare for blog glory!
3119c8ffeat(progress): ✨ `indicatorColor` now has a default, so you can be lazy! Also, the progress bar went on a diet and lost some height. Looking good!
07c71f1Added a shiny new `ColoredProgress` component to the `FeedItemFooter`! Now, AI insights are displayed with a splash of color, making your feed items look like they're ready to party (with data, of course).
6dbc86cfeat(listener-dialog): ✨ Listener model types got a glow-up, and now we're digging into the past for historical data! It's like giving our listeners a time machine and a fresh coat of paint.
db5175eSEO got a makeover! We've spruced up the metadata so Google (and your potential customers) will finally understand what SnitchFeed *actually* does. Prepare for high-intent B2B social listening... without the noise!
aa0df39feat(homepage): ✨ Spruced up the homepage like it's going to a fancy party! Tweaked margins, jazzed up typography, and gave the DemoBoxes a makeover. Hero sections are now clearer and more impactful. Basically, we're making users say 'Wow!'
6683cc5Added shiny new logos to the homepage, because who doesn't love logos? Also, tweaked the demo box label (apparently, we're showing demos, not feeding live animals). Plus, some behind-the-scenes refactoring and SVG enabling. Basically, a day of making things look and work a little better!
fc5e749Spruced up the landing page! Gave the hero section a makeover and polished the demo box. Because even websites deserve a little TLC (and maybe a new haircut).
da7139cListener settings got a brain boost! We've untangled the state management, making things less likely to go kablooey when users fiddle with the knobs. Consider it a preemptive strike against future user-induced chaos.
1bd4f13feat(export): Supercharged the CSV export! Now it exports like a boss, probably with more columns and less crying. We're talking CSV ninja level stuff here.
e32370dPlans got a little less complicated (comments!), dark mode got some button love, and promo codes are now invited to the checkout party. Basically, we're making things clearer and cheaper. You're welcome.
b7cc789Added the ability to export data to CSV, because who doesn't love a good comma-separated value party!
5bdb985The expiration message in the usage box got a makeover to accurately reflect the user's trial status. Because nobody likes a misleading expiration date!
c527164Slack channels are now syncing! Hopefully, this means less manual channel wrangling and more time for cat videos. Update: Syncing, not singing. Though a Slack channel choir *would* be interesting...
7871cc7Added some organizational mojo and a Slack connection button that only shows up if you're worthy (i.e., have the right organization). Because who needs more buttons, am I right?
80dc883Slack channel selection got a serious upgrade! We've added search, so you can finally find that one channel amidst the chaos, plus a shiny new UI. No more endless scrolling!
4cad059Added FAQs for Sales and Marketing Leaders, because apparently they needed more convincing about the awesome benefits. Let's hope they're finally sold!
74c5bb7Startup plan got a glow-up! Pricing table updated to reflect the new and improved (and hopefully not too expensive) startup package.
97a6639Fixed a typo in the docs. Apparently, I can't even email myself correctly. Whoops!
fc60ff9Alright, alright, alright! We've tightened up the email deliverability banner's grammar (because nobody likes a banner with bad grammar!), swapped a userId for an organizationId in some listener functions (identity crisis averted!), and added a status filter and debugging logs to the mentions feature (because finding the right mention is serious business!).
736e6a9Added a shiny new EmailDeliverabilityBanner to the layout, because who doesn't love being reminded about email deliverability? Also, made the feedback box button a bit less 'look at me!' by making it secondary. Consistency is key, folks!
d356f27Passed the 'hasSession' prop to the FeedItemFooter. Because apparently, footers need to know if we're logged in too. It's like they're judging us.
d65a679Finally! The user images now know *exactly* how many users there are, thanks to some homepage stat magic. No more guessing games!
d956b6fAdded listener limits to various components and tweaked the usage logic. Because apparently, we can't have nice things without limits! (Or maybe we can, but let's be responsible, eh?)
36f5205Pricing got a makeover! We're now showing original prices with a strikethrough, because who doesn't love a good deal? Also, swapped out those old-school anchor tags in the site nav for some fancy Link components. Navigation just got an upgrade!
deeee8dCorrected the trial expiration check in the trial-end-dialog to also consider the mode condition. Because apparently, trials ending at the wrong time was a thing. Oops!
5444a28Oops! Looks like someone's trial banner was a bit too eager to declare doom. This commit politely corrects the logic so it only cries 'expired' when it's *actually* expired. No more premature banner-xiety!
c4f454fOops! Looks like someone accidentally let the `includedLanguages` out of the cage. Don't worry, we've safely commented them out. Plus, we've given the default platforms a much-needed makeover. Consider it a spa day for the listener settings!
c6ab43cWe've given the platform imports a makeover, making them all `allPlatforms` now because consistency is key! Plus, we've supercharged trial management, tweaked the FeedbackBox to be less cryptic, and taught the PlansComparison component some new tricks. Oh, and we've gently nudged deprecated platforms into retirement with their own special file. It's like a spa day for the codebase!
4124e45Ran the `new-link` codemod from Next.js. Hopefully, it didn't break everything! (Forced it, just in case things weren't already exciting enough.)
2ccb4d1Navbar gets a glow-up! Now gracefully handles platforms playing hide-and-seek (inactive ones) and adds links to the pricing page and FAQ, because who doesn't love a good deal and some answers?
6739350Added metadata to the keyword match page so search engines can finally find it. It was feeling a little lonely.
9a57b7ePricing page got a GPS! Now you can actually *find* the plan you want. Plus, we've standardized how we say our platform's name, because apparently, we couldn't agree on that before. Consistency is key, folks!
5d9025bBlog content got a makeover! Prose styles were enhanced, and heading processing for the Table of Contents was updated. Because even blogs deserve a little TLC (and a better TOC).
27fde76Patched up the blog's code snippets with some styling magic. Now your eyes won't bleed when reading code examples! ✨
e3f7dd9Blog posts and the root path were feeling a little stale, so we've given them a refresh by specifying the revalidation mode. Now they'll be fresh as a daisy! (Hopefully).
191e73aAdded some much-needed logging to the blog's GET handler revalidation process. Because debugging in the dark is *so* last century.
44ba7deHoly Tailwind v4, Batman! We've swapped out our animation library for a shiny new one, gave the desktop navbar a makeover, welcomed some industry pages to the party, and sprinkled UI updates all over the feed. Basically, we've been busy bees!
807d921Pricing page got a metadata makeover, and the blog sidebar got a little nip and tuck. Basically, we're making things look prettier and more informative, because who doesn't love that?
f064e56Oops! Looks like the Stripe gremlins got to the price IDs again. Basic and Pro plans are now pointing to the *correct* (we hope!) price tags. Let's hope no one noticed...
9285886Pricing got a glow-up with a fancy new table and feature showcase! Plus, we switched on the lights (default theme is now light), told the sitemap about the pricing page (it's a weekly thing!), and gave the demo box text a magnifying glass so everyone can read it. Basically, we're making sure you can see how awesome our pricing is, no squinting required.
5e0bdedFixed a minor case of mistaken identity! Ensured all platform titles are consistently title-cased during metadata generation. Because consistency is key, even in the digital world!
3c334aeThis commit is like a spring cleaning for the codebase! We've evicted redundant CSS classes, corrected typos (because who needs those?), banished unused imports to the shadow realm, and even gave the navigation items a bit of a weight-lifting session. Plus, session handling got a state-of-the-art upgrade. A truly sparkling clean commit!
4d6c35bRenamed 'Agency' plan to 'Enterprise' because apparently 'Agency' wasn't fancy enough. Also, tweaked the features and pricing. Because money.
64ba320Demo box got a little more accessible by finally getting an ID! It's like it finally got its official papers.
7efd358Fixed some broken links! Seems like someone forgot where the platforms live and needed a map update to '/platforms'. Now you won't get lost in the digital wilderness!
5cacef0Oh no, the robots were getting too close to the '/match' path! Updated the robots.txt to politely ask them to stay away. We wouldn't want them finding all our secrets... or maybe just some slightly embarrassing code.
6f108cfSitemap'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!
576ce42Behold! 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!
cc00a28Added '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.
88d988bWe'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!
fac9febDiscordNotifications 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.
8c3a6e1Fonts are now playing hard to get! Changed font-display from 'swap' (flirty) to 'block' (consistent and reliable). No more font swapping shenanigans!
e739181HeroSection2 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!
40c70dfBeautified 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!
f74adc9Refactored the mentions sorting logic in the getHomePageFeed function. Because apparently, the old way was about as organized as my sock drawer.
8a3992dRefactored 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.
960d624Authentication 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!
40df505FeedItem 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.
a0b7037Revamped the landing page and gave the hero section a super-suit! Hopefully, it now attracts more users than a moth to a flame.
5b48891Tweaked the hero CTA. Hopefully, it's now irresistible and not just mildly persuasive!
0e0cb17Blog 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!
c7b9a00Sitemap 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?
ba9a901Sitemap's now dynamic! Because even search engines deserve a little excitement in their lives (and better SEO, of course).
78a72e5Implemented ISR so blog posts update faster than you can say 'stale content'!
5dd33feBlog pages got a makeover! Hopefully, they're not too pretty to actually read now.
98d5d6cBehold! A new blog page layout has arrived! Hopefully, it's not just rearranging deck chairs on the Titanic.
371590aTheme toggle transitions were causing more drama than necessary, so we've politely asked them to take a break. No more slow-motion theme changes!
205a5bfSwapped Twitter's inverted colors for LinkedIn's icons. Looks like someone's trying to be more professional... or just really likes LinkedIn!
d2b2f22Added a story to the footer. Because everyone loves a good bedtime story... at the bottom of the page!
443abf1Fixed those pesky TypeScript errors! Because apparently, building code *before* committing is a novel concept. Who knew?
b059264Twitter's all ears! Added snazzy Twitter feed cards because our listening skills just went live. Prepare for tweet overload!
4ff077cPricing page: Still a Work-In-Progress, but at least we're thinking about money... or maybe just procrastinating on the *real* work.
d396f84LinkedIn feed component: Now even more up-to-date than your grandma's Facebook! (Hopefully, no more embarrassing auto-plays).
7121948Added an info banner to the app layout, because apparently users needed *more* information. Let's hope they actually read it this time!
b0408a4Reddit post feeditem? More like Reddit *fixed* feeditem! (Hopefully, no more cat videos showing up when you asked for news).
f16e3bcFarewell, 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.
78d94d2Approved 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?
209a744Swooped in and vanquished a horde of TypeScript errors lurking in the legacy code, then cranked up ESLint to eleven. Prepare for liftoff! 🚀
b260a93LinkedIn listening is now a perk for the fancy pants paid plans! Because free is *so* last season.
cd03ed4The info-banner has been banished! Apparently, the service is back from its unscheduled vacation. Huzzah!
7851bf4Added a banner, because apparently things are about to get a little... *spicy*. Let's hope it helps!
4031557Oops! 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.
604c66bOh 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!).
017d430Tidied up the component organization. Looks like someone finally decided to Marie Kondo the codebase!
eb18c3aWent 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?
6628293Sentiment filtering in the feed is now fixed! It's alive! IT'S ALIVE! (and hopefully accurate).
9fa92d8Fixed those pesky TypeScript errors. Because apparently, they're like clockwork. Sigh.
2c5150eAdded sentiment filtering, because apparently, we can't just let our code run wild and say whatever it wants. Gotta keep those feels in check!
c76b1b1Consolidated 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!
4497d88Spruced up the feed item cards and gave the LinkedIn feed card a makeover. Because even digital rectangles deserve a little TLC!
1fc2940Sneaking in some LinkedIn monitoring code under the radar. Let's hope it doesn't trigger any alarms! 🤫
beb78ceFinally, 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.
5bef632Gave the website a fresh coat of paint (background color) and a pep talk (hero copy). Hopefully, it's less 'meh' and more 'magnificent' now!
5bf451eTamed 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.
f14a5e6KeywordVolume component got a CLS makeover! It's now less jumpy and more stable, like a well-behaved bouncy castle.
e86eed3Listeners filter got a reverse multiselect! Now you can select what *not* to listen to. Because sometimes, silence is golden (and selectable).
65c8d2fUpgraded the pnpm packages and wrestled the TypeScript compiler into submission. Build errors? Not on my watch!
5cf30feColor picker feeling a bit cramped? Gave it some room to breathe by making it full width. Now it's living its best, widest life!
6591b77Finally got the platform filter working! Turns out, platforms are picky and need to be filtered *just so*.
9b18a35Oops! 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.
7f49351Added 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!
3426070Spruced 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.
bb2b25fStory page logic: Fixed it again! (Hopefully for the last time, or I'm blaming the cat.)
1570f54Tweaked the landing page stats, because apparently nobody was clicking on anything. Hopefully, numbers go up!
e83c1a4Shrunk the chat button in the app. Because apparently, it was too eager to be clicked. Now it's playing hard to get.
dd1e59cSpruced up the story page! It's now so pretty, it might just win a beauty pageant. (For web pages, obviously.)
c9a1f64Global loading bar got a diet! Shed some pixels for a sleeker, more 'now' look. Hopefully, it's not *too* skinny now...
6a4629eTweaked the GitHub story processing logic, hopefully making it less likely to spontaneously combust. Fingers crossed!
e204edcFeed items, previously scattered like confetti, are now neatly organized in a central component. Order has been restored to the timeline!
eadc2e7Added 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!
9b56f0bAdded a global progress bar, because apparently we needed to keep everyone constantly updated on... everything. Prepare for progress bar overload!
d0f9365Implemented a filter using query parameters and bravely pushing it to test... because what could possibly go wrong? (famous last words)
21bf540Story metadata got a makeover! Because even stories deserve to look their best. (Hopefully, no one will notice I just fixed a typo.)
a0bbd95Oops! Looks like someone invented time travel and messed up the commit history. Chronological order restored, because even computers appreciate a good timeline!
6743040Fixed the GitHub story, hopefully making it less of a tragedy and more of a rom-com. Fingers crossed!
46d1be5Added 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'.
9e3fb1fBeautified the landing page. Hopefully users will now *land* and *stay*!
fbd9822Sentry's taking a vacation from dev mode. Let's hope no bugs sneak in while it's gone!
a105cbcOops, looks like someone hit the 'update all the things' button! Let's hope nothing explodes. (pnpm up)
cc90160Added a safety net for OAuth users who apparently forgot their last names. Now the app won't freak out if they're feeling mysterious.
1db55c8Added a 'high relevance' notification switch to the notifications settings. Because who doesn't want *more* notifications?
a5cb9dbThe Archive has been promoted! It now has its own swanky sidebarItem. No more hiding in the shadows!
f53f41dSquashed those pesky TypeScript errors like bugs on a windshield! All clean now.
0d7f16aImplemented the ability to archive mentions, because nobody wants to dwell on the past (especially if it involves being tagged in embarrassing photos).
409abfbListeners page got a bookmark collection upgrade! Because everyone needs more bookmarks, right?
28f5744Tweaked the 'getbookmarkcollections' function. Because apparently, it wasn't getting them quite right. Now hopefully it will!
5f23b5eTweaked the Stats component's high-intent leads filter. Because apparently, our leads weren't quite intense enough. Now they're *really* interested!
d315eccNavigating the site just got a whole lot link-ier! (Swapped out the old navbar items for shiny new Link components.)
a3add59Login/Signup loading got a makeover! It's smoother than a freshly paved road now. No more janky loading screens!
8ab4cfaTweaked the secret sauce of SF and gave the pricing table a makeover. Hopefully, it's less confusing now, and not more! 🤞
9d05569Slayed those pesky TypeScript errors! One less thing to keep the developer up at night.
b01d63eWrangled the Directus client into submission! Now we can talk to Directus without resorting to carrier pigeons. Hopefully.
1f7b0e3Added a pinch of 'umami' to the docs. Hopefully, it'll make them more flavorful!
bc08718Added 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!
f8f3e7cDusting 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?
d0bca84Switched to Turbopack, because apparently Webpack wasn't fast enough. Buckle up, buttercups, we're going plaid speed!
33a685aBlog page featured image: Take 2! Hopefully, this image sticks this time, or we're blaming the gremlins.
bee26cdGave the latest blog post a visual upgrade! Because words alone are *so* last century.
b0d2373Metadata? 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!
c066dc4Houston, we are deploy ready! (Hopefully nothing explodes).
5252ea2Just a quick `pnpm update` to keep the dependencies happy and avoid any dependency-related existential crises. Hopefully, nothing explodes!
5ad6f79Sitemap updated! Because even robots need directions sometimes.
df2d68fHouston, we have de-Dockerized! Dockerfile has been yeeted into the abyss. Hopefully, nothing explodes...
57b7016Well, 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'.
e52a98aOops! Looks like someone accidentally left the keys to the kingdom (the nav bar) lying around. Removed the pesky auth check. Hope nobody notices! 🤫
0222770Blog 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).
1fe48beBlog slugs got a makeover! Let's hope they're feeling fabulous and ready to strut their stuff on the information superhighway.
3ce9bbdSpruced 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!
72c2c23Implemented cookie saving in the database. Because who needs a cookie jar when you have a database?
51bf3d6Added 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).
4abb3b4Pricing page got the axe! Apparently, we're still figuring out how much to charge you lovely people. Beta life, am I right?
2edb179Farewell, 404 comparisons in the footer! Looks like someone finally realized nobody was checking them anyway. Good riddance!
ab7871fTweaked the landing page prices – hopefully, they're more irresistible now! Let's see if the conversion rates skyrocket... or at least gently float upwards.
c77c921Behold! We've sprinkled some statistical fairy dust on the homepage and landing pages. Prepare for enlightenment (or at least some numbers)!
ca74dc9Woke up the Groundhogg and taught it how to make new friends (contacts, that is). Hopefully, it won't predict six more weeks of coding!
b207b66Squashed those pesky TypeScript errors like bugs on a windshield! Hopefully, the code now compiles without screaming.
2e7a9baDocs? Done! SF explanation video? Updated! Basically, I'm making sure nobody gets lost in the sauce. You're welcome, future users!
6a80b46Whipped 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!
1cf9f4dOops! 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!
1c6d835Added 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!
e74e68bTweaked the onboarding keywords and listener settings. Hopefully, new users won't get lost in the woods anymore!
8330728Gave those hero logos some helpful hints (tooltips!), because apparently, they were feeling a bit shy and uninformative.
649bbafAdded some extra-crispy toast instructions to the create listener. Because who wants burnt toast, or worse, a half-baked listener?
d02686aOops! 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!
fc3f8f3Flipped the 'pageleave' PH event switch to 'true'. Because apparently, it was lying about leaving. Now it's honest...ish.
4b771ccDocs 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!
44bb1bcFinally! Added some moving pictures to explain how Salesforce works. Because, let's be honest, words are *so* last century.
b72f7dfSpruced up the marketing site's UI – because even websites deserve a makeover! Hopefully, it's now less 'meh' and more 'marvelous'.
b8e81deUpdated robots.txt - because even robots need rules (and maybe a little encouragement to stay out of the server room).
53ea1dfSwitched the default new listener platforms to Reddit and Bluesky. Because, let's face it, who *isn't* on those?
4941805Finally, 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!
13b7199Analytics took a vacation from the sidebar. Hopefully, they packed their sunscreen!
7374e26Onboarding got a makeover! Hopefully, new users won't run screaming into the night anymore.
6a7c1b9Onboarding flow got a little too eager; skipping options now so users don't get overwhelmed before they even say 'Hello World!'
904f31eLooks like someone decided business emails were just too darn serious and pulled the plug. Maybe they're tired of all the 'reply all' madness!
7d6576dAdded attribution cookies to the site, because apparently, we need to know who to blame for all those clicks. (Just kidding... mostly.)
3d9258bGiving 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.
12e379bFine-tuned the reddit post URL-grabbing function. Because nobody wants a broken link to cat videos!
ae909a2Unleashed the web-fetching beast for onboarding! Now new users can be properly assimilated... I mean, welcomed.
8a2507eAdding relevance match counts to feed container2, because apparently, knowing how relevant things are is, well, relevant! Who knew?
471c8edThe 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!
37ce830Home 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!
1c2ef81Giving the PricingTable component an ID so it can finally be found in the dark depths of the DOM. Accessibility++!
b8e8c0eMatches 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.
9133d5cRootLayout 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!
04d7435Sneakily added the Umami tracking script to the site layout, so we can finally know if anyone actually visits this thing. Fingers crossed!
f61e3e5Silenced 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.
a036720FeedContainer2 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.
c6eac45ColorPicker gets a spa day (key parameter removed!), and EditBookmarkCollections gets a trash can icon and a form-fitting suit. Deleting things just got stylish!
3c51263Feeditems got a brain boost! Now they can handle multiple keyword matches, because one keyword is *never* enough. Prepare for the flood!
cd483bdSpruced 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!
7c4b162Added 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.
0f6bed3Goodbye 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!
12265edSpruced 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!
780cdc4Made `relevanceOrder` and `dateOrder` in `getPaginatedKeywordMatches` optional, because sometimes you just want *some* order, not *that* order. Freedom!
ade53d2Tidied 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!
4c7e3f7Adding metadata to the docs – because even documentation needs a little bling!
6a0d87aSubscription 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.
b12c3fdBlog UI got a makeover! Hopefully, it's not just lipstick on a pig... but probably is.
2a746e4Updated the 'check magic link' page. Hopefully, it's now *actually* magical and not just mildly confusing.
1ccab08Gave the subreddit slugs a makeover, because even URLs deserve to look their best (or at least slightly less awkward).
b7d9f99Umami enabled! Because who doesn't love a little bit of website analytics sprinkled on top? Let's see what delicious data we can gather!
256762aInitialized the platform pages. Because every good platform needs a launchpad!
6e8e004Added a sitemap and robots.txt so Google doesn't get lost, and maybe optimized an Array? Who knows, it's a mystery!
66985f4Added an Open Graph image to the blog, because apparently, links need pretty faces too!
3b01956Gave 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!
0b68c17Highlighting keywords like a boss! Because nobody likes squinting at walls of text. Let's make those keywords pop!
d2896edLike a digital Marie Kondo, this commit decluttered the feeds, sparking joy by removing those deadbeat, inactive matches. Buh-bye!
5008047Onboarding 2.0: Because apparently, the first onboarding was so good, we needed to do it again. Let's hope this one sticks!
508cfc7Blog's dynamic params got the axe! Looks like someone decided to put the 'static' back in 'fantastic'.
99cf35fFixed the getMatches hit count. Because apparently, counting is hard. Who knew?
34f7034Fixed a broken image link by hooking it up to the CMS. Hopefully, no more 404s staring back at our users!
7363740Tweaked the secret sauce of SF... because apparently, it wasn't quite magical enough. Prepare for slightly more enchanted results!
8ec44daDocs got a little love! Hopefully, they're slightly less confusing now. Maybe.
3936fb5Tweaked the 'get matches count' function. Hopefully, it counts matches better now, and doesn't accidentally count your socks as matches. Fingers crossed!
2b45190Oops! Looks like we accidentally made the homepage too exciting. Reverting to the previous, presumably less-dazzling, version.
747e258Just 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!
c835f19Houston, we are go for Docker! This commit prepares the Docker build, so we can finally containerize all the things!
c471963Finally squashed those pesky 'get matches' bugs! Hopefully, this is the *real* 'final' fix. I'm not touching this again... probably.
7b9bc55Yet another attempt to wrangle those pesky matches into submission! Hopefully, this is the *actual* fix this time. Third time's the charm, right?
94b2fd4Fixed the 'get matches' function... again! Hopefully, this time it's *actually* fixed. Third time's the charm, right?
03234c4Fixed 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!
0f29431Added a site banner, because apparently, the site wasn't flashy enough already!
8954122Tweaked the website's SEO, probably so Google will finally notice us and send some love (and traffic, please!).
43fa10eAdded 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!
06d1373Wired up Sentry, because who doesn't love a good error report (or a chance to blame someone else)?
208769bDing ding! New user notification added. Because who doesn't love being bombarded with updates? (Hopefully, they're useful ones!)
4d83791Behold! The icon has been... icon-ified! (Or, you know, just updated.)
7fe5644Privacy and T&C: Because nobody reads them anyway, but we gotta have 'em! ¯\_(ツ)_/¯
7e6905fHero image updated! Because even heroes need a fresh coat of paint (or pixels).
6ede45eLanding page got a makeover! The banner was banished, presumably for crimes against good design.
32ba0d5Tweaked the plunk URL and gave Microsoft's well-known a little polish. Because even URLs need a spa day!
a5b8805Spruced up the UI. Because apparently, it wasn't dazzling enough already!
5f5f9d0Behold! 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.
3ca525fBehold! The docs logo has been updated! Prepare for visual enlightenment (or at least a slightly different picture).
46dc247Docs updated! Because even robots need instructions, apparently.
3d3310aSpruced up the UI! Because apparently, it wasn't dazzling enough before. ✨
045d8dcRelevance selection: It's not broken anymore! (Hopefully...)
4e61646Stripe billing: Because who doesn't love getting charged? (Hopefully, it's done right this time!)
1a84cecAdded `planId` to the `orgTable` because apparently, organizations need plans too! Who knew?
0033a0eAdded Stripe integration! Now taking your money, one API call at a time. Cha-ching!
e45cbbcLooks like someone's been promoted to Chief Snitch Officer! Email address updated to reflect the new corporate overlords... I mean, SnitchFeed.
69be605Giving those assets the VIP treatment by setting their loading priority. Because some things are just too important to wait for!
a00b5b3Ran `pnpm up` because apparently our dependencies were living in the Stone Age. Let's hope nothing explodes!
0c24c54Added a YouTube video embed. Because who doesn't love cat videos... or maybe it's a tutorial? Either way, content!
2abc1bbTable of Contents updated! Because even robots need a good index to find their way around.
0099afaAdded Chatwoot integration, because who doesn't love talking to bots? (Hopefully they're friendly ones!)
2733dd3Beautified the landing page, making it less likely to scare away potential users. Hopefully, it's now more 'come hither' than 'go away'.
ddc81d1Spruced 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.
e5168f5Spruced 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!
c8d83c4Beautified the UI, because apparently, it wasn't pretty enough before. Let's hope it doesn't break everything!
51f76d0Added videos to the CMS. Because who doesn't love a good cat video while managing content?
768d8e4The landing page has been wrestled into submission and now plays nicely with mobile devices. No more squinting!
6f7fafeSpruced up the UI! Because apparently, it wasn't dazzling enough already. ✨
ea789e7Looks like 'mentioned' got snitched on and replaced with the 'SnitchFeed' brand name. Someone's been busy rebranding!
37406cdBranding iron applied! We've officially rebranded to SnitchFeed. Let's hope the name doesn't attract too many tattletales!
9cb90bcMade the output more independent, because nobody likes clingy outputs!
120f9beFeed items got a UI makeover! Hopefully, they're looking snazzier and less like they were designed by a committee of cats.
414accbBehold! We've added AI insights, because apparently, humans weren't insightful enough. Prepare for Skynet... or at least slightly smarter suggestions.
96c98c5Landing page got a makeover! Hopefully, it's not just lipstick on a pig.
da658c7Docs updated! Because even robots need instructions, apparently.
c9b2d55Billing settings? More like *blinging* settings! We're setting up shop to get paid, folks! Cha-ching!
5ce5e74Added a paywall to the listener creation process. Because apparently, creating listeners should now come with a subscription fee! (Just kidding... mostly).
250e91ePrevented the listener slug page from entering an infinite rerendering loop of doom. Now it behaves, mostly.
8656b97Finally, users can set their timezone in notification settings without causing a temporal paradox! Timezone selection fixed.
e7a60bfHouston, 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!
ebb6ad9Feed animations now behaving as expected! No more jittery feeds, just smooth scrolling goodness. We've banished the animation gremlins!
ec86269Pricing 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!
967b7ceGave the feed items some pizzazz with a delightful animation! They're not just sitting there anymore, they're *alive*! (Well, animated, anyway.)
e8cbd9aCorrected 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!
5648c0eOops! 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...)
2ce1887Added 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.)
4f0ffa5Fingers crossed, PostHog is now behaving itself. (Maybe?)
22b8b08Analytics got a one-way ticket to production! No more staging shenanigans for them.
d03932aAdded a loader to the login/signup pages, because waiting is the hardest part (especially when you're trying to remember your password).
60d77c8Added a PostHog proxy, because apparently even our data needs a bodyguard. Let's hope it doesn't start demanding royalties.
f479655Added 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.
4dc06bdFAQ added! Because everyone loves answering the same questions over and over. Now a bot can do it!
60178a0Behold! The icon has been updated! Prepare for a visual feast... or at least a slightly different picture.
cb2130eGave the comments section a brain (sort of)! Added AI feedback, so now they can argue with a robot too. Fun times!
71f9f94Houston, we have successfully jettisoned the performance observer! It was slowing us down, like that one friend who always orders the complicated coffee.
93c90acTweaked the matchClicks function. Hopefully, it now clicks with everyone (pun intended!).
3bb3d58Huzzah! 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!
99ba826Spruced up the docs! Hopefully, they're less likely to induce existential dread now.
ed3cef3Dialogs and animations got a tune-up! They're less janky now, hopefully. Prepare for smoother interactions... or at least slightly less awkward ones.
386ca75UI Updates: Because the old UI clearly wasn't cutting it. Hopefully, this one is slightly less offensive to the eyes.
a0c8042Tweaked the listener relevance settings and notification preferences. Because apparently, nobody wants *all* the notifications, just the *important* ones. (Hopefully, we guessed right!)
e8525c6Validated 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!
61b39eaRenamed 'keyword' to 'listener' on the UI because apparently, words matter. Who knew?
5acae6fCode's back from the brink! Build errors vanquished. Let's hope they stay gone this time...
ce36c92Tweaked the match links and source capturing logic. Because apparently, things weren't quite right the *first* time. Whoops!
5f50f33Behold! The 'Check Email' page has arrived, hopefully preventing users from claiming they *never* got that password reset link. (Spoiler: It's probably in spam.)
472bc6eTweaked the feed items UI, hopefully making it less of an eyesore and more of a delightful experience (or at least, not rage-inducing).
f66208fOrganization settings have been implemented. Because apparently, chaos wasn't working for us.
5535e9fImplemented email notification settings, because apparently, people want *more* emails. Who knew?
61e2a57Onboarding setup: Because everyone deserves a slightly less confusing first day!
842b0f4Tamed the magic link! Now it actually creates users instead of just...magically doing nothing. User creation: 1, Bugs: 0.
a70fbd3Fixed a bug related to the company email. Hopefully, no more emails ending up in the spam folder... or worse, the CEO's inbox!
e25b01bSchema 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!
286e783UI 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).
a4f3e59Added `agencyId` to session and UI feed updates, because apparently things weren't identifiable enough already. Let's hope this doesn't break everything!
55d897dFinally, 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.)
6141b37Spruced up the UI, because apparently, it wasn't dazzling enough. Let's hope it's not *too* dazzling now!
cc1d352Added support for Reddit posts. Because who doesn't love a good cat meme?
5edbcc0Leapt into the future with Next.js 15 and now yelling at Discord via webhook! Because why not?
d5d810aAdded documentation and, against all odds, actually got it working! Miracle achieved.
edaf226Added Fumadocs, because apparently we needed more documentation. (Just kidding, documentation is always good... right?)
3832fd2Spruced up the UI! Because apparently, it wasn't dazzling enough before. ✨
7e63829Branding updated to 'mentioned' - because apparently, we're all about being talked about. Hopefully, in a good way!
59a938dFixed 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!
3d2f941Highlighting keywords, because apparently, we like things shiny! ✨
8b91d8aHallelujah! The collections are finally sorted! (Let's hope it stays that way...)
8114ec5Bookmarking? 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).
55dd060Added a delete listener, because things were getting a little too attached to the server. Now we can say goodbye!
f6c68f6Added an app nav bar and a support/feedback section. Because who doesn't love giving feedback? (and navigating, I guess).
fc5268cSpruced up the UI! Because apparently, it wasn't pretty enough before. Let's hope this prevents users from spontaneously combusting from sheer ugliness.
d791ae0Wrangled the feed and listener pages into existence. Hopefully, they'll behave!
fc91c98Eslint errors vanquished! The code is now slightly less likely to spontaneously combust. You're welcome.
5c5e478Well, someone's feeling indecisive! Looks like we're now eavesdropping (listening) and got a shiny new schema. 'I guess' they're sure about it...
fbe6d18Alerts page added, along with the ability to Create, Read, and Update them. Because who doesn't love a good alert?
ea0e50bAdded scheduling and a custom editor, because who needs free time or default settings, am I right?
6333763Lint errors, begone! Our code is now so clean, you could eat off it (but please don't).
8c5affdMade some mysterious 'site updates'. Hopefully, they didn't break everything! (Fingers crossed!)
1c56169Farewell, subreddit-cards.tsx! You were a good card, but the deck has been reshuffled. (File deleted)
e18efd1Spruced up the pricing page, gave the footer a makeover, and apparently we're now dealing with subreddit cards. Because why not?
0f30d42Houston, we are (again) go for launch! Fingers crossed this deployment doesn't involve any unexpected orbital debris.
763f7d1Houston, we are go for launch! (Deployment, that is). Fingers crossed nothing explodes.
66a1150Eslint errors vanquished! The code is now slightly less offensive to the linter overlords.
cd40e06Chart dates were apparently living in the past. Fixed 'em so they're living in the *present*! (Or at least, closer to it.)
387f9a8Made the sidebar text size a *tad* bigger. Because squinting is *so* last year.
e076cdfFinally, Reddit OAuth! Because who doesn't want to argue with strangers from within the app? 🎉
02b303aAdded snazzy cards for scheduled posts, because who doesn't love a well-dressed post-to-be?
bea22ceFinally, a WYSIWYG editor! Now we can all pretend to be professional web designers without actually knowing HTML. Huzzah!
3457b0bSubreddits, subreddits, wherefore art thou subreddits? Oh, right, I just added/removed some. Carry on.
19e9e0cAdded next/env because apparently, the app needed to know *where* it was running. Poor thing was lost!
eda528cGave the 'users' table a name column, because apparently, they were just numbers before. Identity crisis averted!
f813ec2Huzzah! The code is finally deemed worthy to venture into the wild. Deploy-ready, as if summoned by the gods of production!
5dbc533Google Auth is now functional! Let's hope it doesn't decide to spontaneously combust. 🤞
db8f4f9Well, someone made a commit. Details are a bit scarce, but hey, at least it exists!
7aefd6eDashboard got a little love! Hopefully, it's less 'meh' and more 'wow' now.
e831f42Added Google Analytics 4! Because apparently, the old analytics were like, *so* last year. Let's track those clicks!
ab4b40fDashboard chart fixed! Because nobody likes a sad, broken chart on Christmas Eve. Consider it an early present.
c941b30Tweaked the subreddit page. Hopefully, it's less of an eyesore now!
b5a7960Added a chart and 'stuff' to the dashboard. Because every dashboard needs 'stuff'.
1f5112bUpdated the Reddit page, because apparently the old one wasn't dank enough. Let's hope this one gets more upvotes!
171ca42Created a page to display Reddit slugs. Because everyone needs more slugs in their life! 🐌
73debeeAdded a chart and a dashboard, because apparently staring at raw data wasn't exciting enough. Let's hope these make things look prettier!
17bbf76Houston, we have liftoff! Deploying to production... hopefully, nothing explodes. 🚀
c4d7269Spruced up the subreddit cards and gave the copy a little facelift. Because even digital cards deserve a makeover!
f576c8fAdded some illumination! Hopefully, this commit doesn't just add to the electric bill.
a54a279Eslint errors vanquished! The code is now so clean, it could eat off it. (Probably shouldn't, though.)
dda3f3eThe big bang! Initialized the repository. Let the coding chaos begin!
785a8f2Genesis! Let there be code! (and a shiny new Next.js app, apparently).