// firou-github-profile.ts
import { tech } from "./badges";
import { FeaturedProject, Profile, Section } from "./core/decorators";
import { GitHubProfile, Project, Stack } from "./core/types";
@FeaturedProject(1)
class CrossStream extends Project {
public constructor() {
super({
name: "CrossStream",
description: "Discord ecosystem for streamers and communities.",
logo: "https://cdn.crossstream.app/assets/crossstream/crossstream-512x512.png",
stack: Stack.define({
languages: [tech.TypeScript],
frontend: [tech.React, tech.ReactRouter, tech.Vite],
backend: [
tech.NodeJS,
tech.DiscordJS,
tech.Prisma,
tech.Fastify,
tech.Express,
tech.SQLite,
tech.GraphQL,
],
devops: [tech.Vitest, tech.Nodemon],
}),
links: [
{ label: "Discord", url: "https://crossstream.gg" },
{ label: "Website", url: "https://crossstream.app" },
],
});
}
}
@FeaturedProject(2)
class Sunday extends Project {
public constructor() {
super({
name: "Sunday",
description:
"FiveM exclusive asset store, insane & immersive roleplay server.",
logo: "https://cdn.crossstream.app/assets/images/sunday/logo_detailed.png",
stack: Stack.define({
languages: [tech.Lua, tech.TypeScript],
frontend: [
tech.React,
tech.ReactNative,
tech.ReactRouter,
tech.Expo,
tech.PostCSS,
tech.TailwindCSS,
tech.Vite,
],
backend: [tech.Prisma, tech.MariaDB],
devops: [tech.Jest, tech.ESLint, tech.Prettier],
}),
links: [
{ label: "Store Discord", url: "https://dsc.gg/sunday-store" },
{ label: "Roleplay Discord", url: "https://dsc.gg/sunday-roleplay" },
{ label: "Website", url: "https://sunday.re" },
],
});
}
}
@Profile({
username: "Firou91",
displayName: "Firou",
headline: "UX/UI Designer & Developer",
})
export class FirouProfile extends GitHubProfile<CrossStream | Sunday> {
public readonly biography =
"Building digital products & ecosystems, making unique interfaces & experiences.";
@Section(1)
public readonly socials = [
this.link(
"Discord",
"https://discord.com/users/368423843389505537",
),
this.link("Behance", "https://www.behance.net/firou"),
this.link("Instagram", "https://instagram.com/firou.jsx"),
] as const;
@Section(2)
public readonly projects = [new CrossStream(), new Sunday()] as const;
@Section(3)
public readonly stack = Stack.define({
languages: [
tech.JavaScript,
tech.TypeScript,
tech.Lua,
tech.Cpp,
tech.CSharp,
],
frontend: [tech.React, tech.ReactNative, tech.Redux],
backend: [
tech.NodeJS,
tech.Bun,
tech.Fastify,
tech.MariaDB,
tech.Prisma,
tech.Redis,
],
devops: [tech.Git, tech.GitHub, tech.GitHubActions],
});
@Section(4)
public readonly donations = [
this.link("Buy Me a Coffee", "https://buymeacoffee.com/firou"),
this.link("PayPal", "https://paypal.me/Firou91"),
this.link("Ko-fi", "https://ko-fi.com/firou"),
] as const;
}
export default Object.freeze(new FirouProfile());