create-foliokit 0.0.0-stage → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +111 -2
- package/bin/index.js +6 -0
- package/package.json +50 -4
- package/src/cli.js +111 -0
- package/src/generator.js +133 -0
- package/src/prompts.js +44 -0
- package/src/utils/errors.js +7 -0
- package/src/utils/paths.js +12 -0
- package/src/utils/progress.js +5 -0
- package/src/utils/project-name.js +30 -0
- package/templates/default/data.ts +169 -0
- package/templates/default/index.html +23 -0
- package/templates/default/package-lock.json +1280 -0
- package/templates/default/package.json +28 -0
- package/templates/default/public/avatar-placeholder.png +0 -0
- package/templates/default/public/experience-logo-placeholder.png +0 -0
- package/templates/default/public/project-placeholder.png +0 -0
- package/templates/default/public/robots.txt +2 -0
- package/templates/default/scripts/generate-seo.mjs +34 -0
- package/templates/default/src/App.tsx +582 -0
- package/templates/default/src/BrandIcon.tsx +36 -0
- package/templates/default/src/ProjectMagazineGallery.css +90 -0
- package/templates/default/src/ProjectMagazineGallery.tsx +218 -0
- package/templates/default/src/main.tsx +28 -0
- package/templates/default/src/styles.css +501 -0
- package/templates/default/src/utils.ts +2 -0
- package/templates/default/src/vite-env.d.ts +1 -0
- package/templates/default/tests/portfolio.test.js +96 -0
- package/templates/default/tsconfig.app.json +21 -0
- package/templates/default/tsconfig.json +7 -0
- package/templates/default/tsconfig.node.json +16 -0
- package/templates/default/types.ts +73 -0
- package/templates/default/vite.config.ts +38 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* FolioKit Portfolio Configuration
|
|
3
|
+
*
|
|
4
|
+
* Customize your portfolio by editing the information in this file.
|
|
5
|
+
* Replace the sample content with your own details.
|
|
6
|
+
*
|
|
7
|
+
* You generally do not need to edit the React components or other source
|
|
8
|
+
* files to update your personal information, projects, skills, or links.
|
|
9
|
+
*
|
|
10
|
+
* Icon Reference Links:
|
|
11
|
+
* - Technical Skills: https://skillicons.dev
|
|
12
|
+
* - Social & Brand Icons: https://simpleicons.org
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import type { PortfolioConfig } from './types.js'
|
|
16
|
+
export type { Skill, Project, ContentItem, Testimonial, SocialIcon, PortfolioConfig } from './types.js'
|
|
17
|
+
|
|
18
|
+
export const portfolioConfig: PortfolioConfig = {
|
|
19
|
+
// Personal Information
|
|
20
|
+
profile: {
|
|
21
|
+
name: 'Your Name',
|
|
22
|
+
profileImage: '/avatar-placeholder.png', // Replace with '/my-photo.jpg' after copying your photo into public/.
|
|
23
|
+
headline: 'Full Stack Developer',
|
|
24
|
+
introduction: "Hey, there! I'm a",
|
|
25
|
+
about: `Hey, there! I'm a developer who loves building products that people actually use. Write a couple of sentences here about who you are, what you do, and what you're currently working on.
|
|
26
|
+
|
|
27
|
+
Use this space to talk about your experience, the kinds of problems you enjoy solving, and the technologies you reach for most often.
|
|
28
|
+
|
|
29
|
+
Wrap up with what you're excited about right now — side projects, open source, or whatever you're learning next`,
|
|
30
|
+
location: 'Delhi, India',
|
|
31
|
+
timeZone: 'Asia/Kolkata', // IANA time zone for the live clock
|
|
32
|
+
timeZoneLabel: 'IST',
|
|
33
|
+
quote: 'Build with curiosity. Share what you learn.',
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
// Social Links
|
|
37
|
+
// Add, edit, remove, or reorder your social media profiles.
|
|
38
|
+
// Find brand icons at: https://simpleicons.org (built-in icons: 'mail', 'file-text')
|
|
39
|
+
socialIcons: [
|
|
40
|
+
{ label: 'GitHub', icon: 'github', url: 'https://github.com/your-username', color: '#f2f0e9' },
|
|
41
|
+
{ label: 'LinkedIn', icon: 'linkedin', url: 'https://linkedin.com/in/your-username', color: '#0a66c2' },
|
|
42
|
+
{ label: 'Instagram', icon: 'instagram', url: 'https://instagram.com/your-username', color: '#e4405f' },
|
|
43
|
+
{ label: 'X', icon: 'x', url: 'https://x.com/your-username', color: '#f2f0e9' },
|
|
44
|
+
],
|
|
45
|
+
|
|
46
|
+
// Work Experience
|
|
47
|
+
// Add, edit, remove, or reorder work history. Leave empty ([]) to hide this section.
|
|
48
|
+
// Optional logo: copy an image to public/ and set image: '/company-logo.png'. Omit image to show the Logo placeholder.
|
|
49
|
+
experience: [
|
|
50
|
+
{
|
|
51
|
+
title: 'Your Role',
|
|
52
|
+
organization: 'Company Name',
|
|
53
|
+
organizationUrl: 'https://example.com', // Placeholder: replace with the company website URL.
|
|
54
|
+
image: '', // Set to '/company-logo.png' after copying the image into public/.
|
|
55
|
+
imageAlt: 'Company Name logo',
|
|
56
|
+
imagePlaceholder: '/experience-logo-placeholder.png',
|
|
57
|
+
location: 'City, Country', // Replace with the role's location, or leave '' to hide it.
|
|
58
|
+
date: 'Month YYYY – Present',
|
|
59
|
+
description: 'Replace this sample with your role, company, and dates.',
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
|
|
63
|
+
// Education
|
|
64
|
+
// Add, edit, remove, or reorder education. Leave empty ([]) to hide this section.
|
|
65
|
+
education: [
|
|
66
|
+
{
|
|
67
|
+
title: 'Degree or Program',
|
|
68
|
+
organization: 'Your University',
|
|
69
|
+
organizationUrl: 'https://example.com', // Placeholder: replace with the university website URL.
|
|
70
|
+
image: '', // Set to '/school-logo.png' after copying the image into public/.
|
|
71
|
+
imageAlt: 'University logo',
|
|
72
|
+
location: 'City, Country', // Replace with the school's location, or leave '' to hide it.
|
|
73
|
+
date: 'YYYY – YYYY',
|
|
74
|
+
description: 'Add your major, score, or another education detail here.',
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
|
|
78
|
+
// Skills
|
|
79
|
+
// Add, edit, remove, or reorder skills.
|
|
80
|
+
// Find skill icon identifiers at: https://skillicons.dev
|
|
81
|
+
skills: [
|
|
82
|
+
{ name: 'HTML', icon: 'html', category: 'Frontend' },
|
|
83
|
+
{ name: 'CSS', icon: 'css', category: 'Frontend' },
|
|
84
|
+
{ name: 'JavaScript', icon: 'js', category: 'Frontend' },
|
|
85
|
+
{ name: 'React', icon: 'react', category: 'Frontend' },
|
|
86
|
+
{ name: 'TypeScript', icon: 'ts', category: 'Frontend' },
|
|
87
|
+
{ name: 'Tailwind CSS', icon: 'tailwind', category: 'Frontend' },
|
|
88
|
+
{ name: 'Vite', icon: 'vite', category: 'Tools' },
|
|
89
|
+
{ name: 'Redux', icon: 'redux', category: 'Frontend' },
|
|
90
|
+
{ name: 'Markdown', icon: 'md', category: 'Tools' },
|
|
91
|
+
{ name: 'Node.js', icon: 'nodejs', category: 'Backend' },
|
|
92
|
+
{ name: 'Express.js', icon: 'express', category: 'Backend' },
|
|
93
|
+
{ name: 'MongoDB', icon: 'mongodb', category: 'Backend' },
|
|
94
|
+
{ name: 'MySQL', icon: 'mysql', category: 'Backend' },
|
|
95
|
+
{ name: 'PostgreSQL', icon: 'postgres', category: 'Backend' },
|
|
96
|
+
{ name: 'C', icon: 'c', category: 'Languages' },
|
|
97
|
+
{ name: 'Python', icon: 'python', category: 'Languages' },
|
|
98
|
+
{ name: 'Java', icon: 'java', category: 'Languages' },
|
|
99
|
+
{ name: 'Postman', icon: 'postman', category: 'Tools' },
|
|
100
|
+
{ name: 'VS Code', icon: 'vscode', category: 'Tools' },
|
|
101
|
+
{ name: 'Git', icon: 'git', category: 'Tools' },
|
|
102
|
+
{ name: 'GitHub', icon: 'github', category: 'Tools' },
|
|
103
|
+
{ name: 'npm', icon: 'npm', category: 'Tools' },
|
|
104
|
+
{ name: 'GitHub Actions', icon: 'githubactions', category: 'Tools' },
|
|
105
|
+
],
|
|
106
|
+
|
|
107
|
+
// Projects
|
|
108
|
+
// Add, edit, remove, or reorder projects. Set featured: true to highlight in the 3D gallery.
|
|
109
|
+
// Technology icon identifiers also come from: https://skillicons.dev
|
|
110
|
+
projects: [
|
|
111
|
+
{
|
|
112
|
+
name: 'Project One',
|
|
113
|
+
category: 'PROJECT CATEGORY',
|
|
114
|
+
description: 'Add a short description of this project, the problem it solves, and what you built.',
|
|
115
|
+
image: '/project-placeholder.png', // Replace with '/my-project.png' after copying it into public/.
|
|
116
|
+
imageAlt: 'Project image placeholder, 1200 by 675 pixels',
|
|
117
|
+
technologies: [{ name: 'React', icon: 'react' }, { name: 'TypeScript', icon: 'ts' }],
|
|
118
|
+
featured: true, // Highlights project in the 3D magazine gallery
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'Project Two',
|
|
122
|
+
category: 'PROJECT CATEGORY',
|
|
123
|
+
description: 'Describe another project here. Replace the title, image, and technology stack in data.ts.',
|
|
124
|
+
image: '/project-placeholder.png', // Replace with '/my-project.png' after copying it into public/.
|
|
125
|
+
imageAlt: 'Project image placeholder, 1200 by 675 pixels',
|
|
126
|
+
technologies: [{ name: 'Node.js', icon: 'nodejs' }, { name: 'Express.js', icon: 'express' }, { name: 'MongoDB', icon: 'mongodb' }],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: 'Project Three',
|
|
130
|
+
category: 'PROJECT CATEGORY',
|
|
131
|
+
description: 'Use this space to explain what you made and the tools or technologies you used.',
|
|
132
|
+
image: '/project-placeholder.png', // Replace with '/my-project.png' after copying it into public/.
|
|
133
|
+
imageAlt: 'Project image placeholder, 1200 by 675 pixels',
|
|
134
|
+
technologies: [{ name: 'Python', icon: 'python' }, { name: 'C', icon: 'c' }, { name: 'Java', icon: 'java' }],
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
|
|
138
|
+
// Testimonials
|
|
139
|
+
// Add, edit, remove, or reorder testimonials. Leave empty ([]) to hide this section.
|
|
140
|
+
testimonials: [
|
|
141
|
+
{
|
|
142
|
+
name: 'Person One',
|
|
143
|
+
role: 'Role or designation',
|
|
144
|
+
message: 'Replace this placeholder with a genuine testimonial before publishing.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: 'Person Two',
|
|
148
|
+
role: 'Role or designation',
|
|
149
|
+
message: 'Replace this placeholder with a genuine testimonial before publishing.',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
name: 'Person Three',
|
|
153
|
+
role: 'Role or designation',
|
|
154
|
+
message: 'Replace this placeholder with a genuine testimonial before publishing.',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
|
|
158
|
+
// Contact
|
|
159
|
+
contact: {
|
|
160
|
+
email: 'hello@example.com',
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
// SEO & Metadata
|
|
164
|
+
seo: {
|
|
165
|
+
title: '{{name}} — {{headline}}',
|
|
166
|
+
description: '{{name}} is a {{headline}} building useful, thoughtful web experiences.',
|
|
167
|
+
},
|
|
168
|
+
}
|
|
169
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta name="theme-color" content="#000000" />
|
|
7
|
+
<meta name="description" content="A developer portfolio." />
|
|
8
|
+
<meta property="og:type" content="website" />
|
|
9
|
+
<meta property="og:title" content="Developer Portfolio" />
|
|
10
|
+
<meta property="og:description" content="A developer portfolio." />
|
|
11
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
12
|
+
<meta name="twitter:title" content="Developer Portfolio" />
|
|
13
|
+
<meta name="twitter:description" content="A developer portfolio." />
|
|
14
|
+
<title>Developer Portfolio</title>
|
|
15
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
16
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
17
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<div id="root"></div>
|
|
21
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
22
|
+
</body>
|
|
23
|
+
</html>
|