/** * @copyright nhcarrigan * @license Naomi's Public License * @author Naomi Carrigan */ /** * List of projects to render. */ export const Projects: Array<{ name: string; url: string; source?: string; description: string; type: "Website" | "Bot" | "API" | "Game"; }> = [ { description: "A tool to monitor the email complaints of the freeCodeCamp newsletter.", name: "Email Monitor", source: "https://github.com/freecodecamp/email-complaint-monitoring", type: "API", url: "https://complaint.freecodecamp.org/", }, { description: "Our self-hosted LibreTranslate instance.", name: "Translation API", source: "https://github.com/LibreTranslate/LibreTranslate", type: "API", url: "https://trans.nhcarrigan.com/", }, { description: "API to authenticate our Slack translation bot.", name: "Translation Slack Auth", type: "API", url: "https://trans-slack.nhcarrigan.com/slack/install", }, { description: "AI bot in our Discord which generates alt text.", name: "AltGenerator", source: "https://codeberg.org/nhcarrigan/alt-generator", type: "Bot", url: "https://alt.nhcarrigan.com/", }, { description: "A bot and API to allow submitting anonymous questions for Naomi to answer.", name: "Anon Bot", source: "https://codeberg.org/nhcarrigan/anon-bot", type: "Bot", url: "https://anon.nhcarrigan.com/", }, { description: "A bot to track art requests and latest news updates for the Art 4 Palestine charity.", name: "Art4Palestine Bot", source: "https://codeberg.org/nhcarrigan/a4p-bot", type: "Bot", url: "https://afp.nhcarrigan.com/", }, { description: "A bot to remove special booster colour roles when someone stops boosting.", name: "Boost Monitor", source: "https://codeberg.org/nhcarrigan/boost-monitor", type: "Bot", url: "https://oogie.nhcarrigan.com/", }, { description: "Custom moderation utility for freeCodeCamp.", name: "CamperChan", source: "github.com/freeCodeCamp/camperchan/", type: "Bot", url: "https://camperchan.nhcarrigan.com/", }, { description: "AI-powered bot in our Discord community which can evaluate code snippets.", name: "Code Evaluator", source: "https://codeberg.org/nhcarrigan/code-evaluator", type: "Bot", url: "https://eval.nhcarrigan.com/", }, { description: "Community syndication and automation tool that bridges Github discussions and Discord threads into an internal Slack channel.", name: "Deepgram Bot", type: "Bot", url: "https://deepgram-discord-bot.fly.dev/", }, { description: "AI bot designed to answer queries by providing actual sources.", name: "Librarian", source: "https://codeberg.org/nhcarrigan/librarian", type: "Bot", url: "https://lib.nhcarrigan.com/", }, { description: "Python bot to detect links in the promote-your-stream channel for Streamcord.", name: "Link Detector", source: "https://codeberg.org/nhcarrigan/link-detector", type: "Bot", url: "https://linkdetector.nhcarrigan.com/health", }, { description: "Our paid general-purpose moderation bot for Discord.", name: "Moderation Bot", source: "https://codeberg.org/nhcarrigan/mod-bot", type: "Bot", url: "https://hooks.nhcarrigan.com/", }, { description: "A general-purpose AI bot for our Discord community.", name: "NaomiAI", source: "https://codeberg.org/nhcarrigan/anthropic-bot", type: "Bot", url: "https://naomiai.nhcarrigan.com/", }, { description: "A bot that bridges discussions between Discord, Slack, Matrix, and IRC.", name: "Social Media Bridge", source: "https://codeberg.org/nhcarrigan/social-media-bridge", type: "Bot", url: "https://bridge.nhcarrigan.com/", }, { description: "A kanban-style task management bot for Discord, installed directly to your user account.", name: "Task Bot", source: "https://codeberg.org/nhcarrigan/user-task-bot", type: "Bot", url: "https://tasks.nhcarrigan.com/", }, { description: "A Zelda RP bot for my friend Ruu.", name: "Tingle Bot", source: "https://codeberg.org/nhcarrigan/tingle-bot", type: "Bot", url: "https://ruubot.nhcarrigan.com/", }, { description: "A bot for Slack and Discord to translate user messages.", name: "Translation Bot", source: "https://codeberg.org/nhcarrigan/translation-bot", type: "Bot", url: "https://trans-bot.nhcarrigan.com/", }, { description: "Our first game, an introduction to our original characters Becca and Rosalia", name: "Beccalia: Prologue", type: "Game", url: "https://beccalia.nhcarrigan.com/prologue", }, { description: "A cancelled game that explores Becca and Rosalia's origin stories.", name: "Beccalia: Origins", type: "Game", url: "https://beccalia.nhcarrigan.com/origins", }, { description: "A short game built for a weekend game jam our friend hosted.", name: "Ruu's Goblin Quest", type: "Game", url: "https://goblin.nhcarrigan.com/", }, { description: "Our self-hosted Plausible analytics.", name: "Analytics", source: "https://github.com/plausible/analytics/", type: "Website", url: "https://analytics.nhcarrigan.com/", }, { description: "A quick landing page for our Beccalia games.", name: "Beccalia Landing", type: "Website", url: "https://beccalia.nhcarrigan.com/", }, { description: "A manual username service to provide free custom handles to Bluesky users.", name: "BlueSky Username Service", type: "Website", url: "https://naomi.party/", }, { description: "Community marketing site for Deepgram.", name: "Deepgram Community", type: "Website", url: "https://community.deepgram.com/", }, { description: "Personal site for my sister.", name: "Denna", source: "https://codeberg.org/nhcarrigan/denna", type: "Website", url: "https://denna.nhcarrigan.com/", }, { description: "Our primary documentation platform.", name: "Documentation", source: "https://codeberg.org/nhcarrigan/docs", type: "Website", url: "https://docs.nhcarrigan.com/", }, { description: "The core freeCodeCamp curriculum.", name: "freeCodeCamp", source: "https://github.com/freecodecamp/freecodecamp", type: "Website", url: "https://www.freecodecamp.org/", }, { description: "A small server to handle link redirections.", name: "Link Redirection Service", type: "Website", url: "https://nhcarrigan.link/", }, { description: "Personal website for my partner Kaitlyn.", name: "Kaitlyn", source: "https://codeberg.org/nhcarrigan/kaitlyn", type: "Website", url: "https://kaitlyn.nhcarrigan.com/", }, { description: "This website you're looking at right now!", name: "Portfolio", source: "https://codeberg.org/nhcarrigan/portfolio", type: "Website", url: "https://nhcarrigan.com/", }, { description: "Portfolio site for my friend Starfazers.", name: "Starfazers", source: "https://codeberg.org/nhcarrigan/starfazers", type: "Website", url: "https://starfazers.nhcarrigan.com/", }, ];