Skip to content

Commit

Permalink
✏️ Update projects
Browse files Browse the repository at this point in the history
  • Loading branch information
n1ckoates committed Jul 7, 2024
1 parent ae16a6f commit 3d9d1ae
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 24 deletions.
62 changes: 38 additions & 24 deletions app/projects/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,46 +19,47 @@ interface Project {

const projects: Record<string, Project> = {
Quoter: {
cover: "/images/projects/quoter.png",
cover: "quoter.png",
coverAlt: "Quoter's logo, a speech bubble with three dots inside.",
noCrop: true,
description:
"Quote book for Discord servers, Built with Discord.js, MongoDB, and Typescript. The bot allows users to add, remove, edit, and search for quotes. You can also add quotes from Discord messages, or generate images from them. I created the bot, which has grown to over 1,600 servers and 190,000+ users.",
"Quote book for Discord servers, built with Discord.js, MongoDB, and Typescript. The bot allows users to add, remove, edit, and search for quotes. You can also add quotes from Discord messages, or generate images from them. I created the bot, which has grown to over 2,000 servers and 200,000+ users.",
links: {
Website: "https://quoter.cc",
"Source Code": "https://github.com/quoter/quoter",
},
},

"Steam Deck Emulation Guide": {
cover: "/images/projects/steam-deck.jpg",
coverAlt:
"Close-up of the Steam Deck's front right side on a blue and purple background.",
"2txt": {
cover: "2txt.webp",
coverAlt: "Screenshot of 2txt: an area to drop an image file.",
description:
"A comprehensive guide to emulating video games on the Steam Deck. I wrote step-by-step instructions on how to install and configure a range of emulators, as well as how to add individual games to your Steam library for a streamlined gaming experience.",
"Image to text converter, built with Anthropic Claude and the Vercel AI SDK. You can upload an image and get a description of it (for use as alt text), while extracting text from it.",
links: {
"Visit Guide": "https://github.com/n1ckoates/steamdeck-emulation",
Website: "https://2txt.vercel.app",
"Source Code": "https://github.com/ai-ng/2txt",
},
},

"nickoates.com": {
cover: "/images/projects/blog.png",
coverAlt: "Home page of nickoates.com",
Swift: {
cover: "swift.webp",
coverAlt:
"A text input that says 'Ask me anything' with a submit button.",
description:
"The site you're on! I built my blog with Next.js, Tailwind CSS, Typescript, and MDX. Hosted on Vercel.",
"Fast voice assistant built with Cartesia's Sonic model, with OpenAI Whisper and Meta Llama3 on Groq. Less than 1 second of latency between user and AI speech.",
links: {
"Source Code": "https://github.com/n1ckoates/blog",
Website: "https://swift-ai.vercel.app",
"Source Code": "https://github.com/ai-ng/swift",
},
},

"Peroxaan Website": {
cover: "/images/projects/peroxaan.png",
coverAlt: "Home page of Peroxaan.com",
"nickoates.com": {
cover: "blog.png",
coverAlt: "Home page of nickoates.com",
description:
"I was commissioned to rebuild the website for Peroxaan, a small app development company. I unified the newsroom with the main website, improved SEO, and overhauled the design.",
"The site you're on! I built my blog with Next.js, Tailwind CSS, Typescript, and MDX. Hosted on Vercel.",
links: {
Website: "https://archive.peroxaan.com",
"Source Code": "https://github.com/peroxaan/website",
"Source Code": "https://github.com/n1ckoates/blog",
},
},

Expand All @@ -71,7 +72,7 @@ const projects: Record<string, Project> = {
},

Needle: {
cover: "/images/projects/needle.jpg",
cover: "needle.jpg",
coverAlt:
"Discord screenshot showing automatic thread creation with Needle.",
description:
Expand All @@ -82,7 +83,7 @@ const projects: Record<string, Project> = {
},

"dylanmcd.com": {
cover: "/images/projects/dylanmcd.png",
cover: "dylanmcd.png",
coverAlt: "Home page of dylanmcd.com",
description:
"Dylan commissioned me to build his website based on a design he created. I used Astro and Tailwind CSS.",
Expand All @@ -92,7 +93,7 @@ const projects: Record<string, Project> = {
},

"Magic Spell": {
cover: "/images/projects/magic-spell.png",
cover: "magic-spell.png",
coverAlt: "Screenshot of Magic Spell",
description:
"I built this demo of the Vercel AI SDK in collaboration with Guillermo Rauch at Vercel. It edits or writes text based on a prompt, using Groq for ultra-fast inference and streaming.",
Expand All @@ -101,6 +102,17 @@ const projects: Record<string, Project> = {
"Source Code": "https://github.com/ai-ng/magic-spell",
},
},

"Steam Deck Emulation Guide": {
cover: "steam-deck.jpg",
coverAlt:
"Close-up of the Steam Deck's front right side on a blue and purple background.",
description:
"A comprehensive guide to emulating video games on the Steam Deck. I wrote step-by-step instructions on how to install and configure a range of emulators, as well as how to add individual games to your Steam library for a streamlined gaming experience.",
links: {
"Visit Guide": "https://github.com/n1ckoates/steamdeck-emulation",
},
},
};

export default function Page() {
Expand Down Expand Up @@ -148,14 +160,16 @@ async function ProjectCard([name, data]: [string, Project]) {
<div className="relative h-48">
<Image
alt={data.coverAlt}
src={data.cover}
src={"/images/projects/" + data.cover}
fill
className={
data.noCrop ? "object-contain" : "object-cover"
}
sizes="(max-width:768px) 100vw, 470px"
placeholder="blur"
blurDataURL={await getBlurDataURL(data.cover)}
blurDataURL={await getBlurDataURL(
"/images/projects/" + data.cover,
)}
/>
</div>
)}
Expand Down
Binary file added public/images/projects/2txt.webp
Binary file not shown.
Binary file removed public/images/projects/peroxaan.png
Binary file not shown.
Binary file added public/images/projects/swift.webp
Binary file not shown.

0 comments on commit 3d9d1ae

Please sign in to comment.