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.
Files changed (34) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -2
  3. package/bin/index.js +6 -0
  4. package/package.json +50 -4
  5. package/src/cli.js +111 -0
  6. package/src/generator.js +133 -0
  7. package/src/prompts.js +44 -0
  8. package/src/utils/errors.js +7 -0
  9. package/src/utils/paths.js +12 -0
  10. package/src/utils/progress.js +5 -0
  11. package/src/utils/project-name.js +30 -0
  12. package/templates/default/data.ts +169 -0
  13. package/templates/default/index.html +23 -0
  14. package/templates/default/package-lock.json +1280 -0
  15. package/templates/default/package.json +28 -0
  16. package/templates/default/public/avatar-placeholder.png +0 -0
  17. package/templates/default/public/experience-logo-placeholder.png +0 -0
  18. package/templates/default/public/project-placeholder.png +0 -0
  19. package/templates/default/public/robots.txt +2 -0
  20. package/templates/default/scripts/generate-seo.mjs +34 -0
  21. package/templates/default/src/App.tsx +582 -0
  22. package/templates/default/src/BrandIcon.tsx +36 -0
  23. package/templates/default/src/ProjectMagazineGallery.css +90 -0
  24. package/templates/default/src/ProjectMagazineGallery.tsx +218 -0
  25. package/templates/default/src/main.tsx +28 -0
  26. package/templates/default/src/styles.css +501 -0
  27. package/templates/default/src/utils.ts +2 -0
  28. package/templates/default/src/vite-env.d.ts +1 -0
  29. package/templates/default/tests/portfolio.test.js +96 -0
  30. package/templates/default/tsconfig.app.json +21 -0
  31. package/templates/default/tsconfig.json +7 -0
  32. package/templates/default/tsconfig.node.json +16 -0
  33. package/templates/default/types.ts +73 -0
  34. 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>