interface Developer {
name: string;
skills: string[];
interests: string[];
};
interface TechStack {
devOps: string[];
backend: string[];
frontend: string[];
};
type ContactType = 'github' | 'X' | 'linkedIn' | 'email';
const techStack: TechStack = {
devOps: [
'GitLab',
'GitHub',
'Cloudflare',
],
frontend: [
'JavaScript',
'TypeScript',
'React',
'Next.js',
'Vue.js',
'Nuxt.js',
'Astro',
'TailwindCSS',
'Markdown',
],
backend: [
'Supabase',
'Node.js',
'PostgreSQL',
],
AI: [
'GitHub Copilot',
'Gemini',
'ChatGPT',
]
};
// Developer profile
const me: Developer = {
name: 'Astro Nokto',
skills: [
...techStack.devOps,
...techStack.backend,
...techStack.frontend
],
interests: [
'iOS',
'Swift/SwiftUI',
'Open Source',
'Security',
'Privacy',
'Performance',
'Self-Hosting',
'Networking'
]
};
// Contact function
const contact = (type: ContactType): string => {
switch (type) {
case 'github':
return 'https://github.com';
case 'X':
return 'https://x.com';
case 'linkedIn':
return 'https://www.linkedin.com';
case 'email':
return '';
default:
return 'Send fax.';
}
};