create-foliokit 1.0.0 β 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/README.md +59 -325
- package/package.json +1 -1
- package/templates/default/data.ts +58 -116
- 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/src/App.tsx +79 -49
- package/templates/default/src/ProjectMagazineGallery.tsx +13 -5
- package/templates/default/src/main.tsx +18 -0
- package/templates/default/src/styles.css +49 -84
- package/templates/default/tests/portfolio.test.js +2 -2
- package/templates/default/types.ts +73 -0
- package/templates/default/.gitignore +0 -20
- package/templates/default/public/avatar-placeholder.svg +0 -10
- package/templates/default/public/footer-heart.png +0 -0
- package/templates/default/public/love-always-wins.png +0 -0
- package/templates/default/public/project-placeholder.svg +0 -10
- package/templates/default/public/stars-foreground-landscape.svg +0 -202
- package/templates/default/public/stars-foreground-portrait.svg +0 -202
- package/templates/default/public/stars-landscape.svg +0 -322
- package/templates/default/public/stars-portrait.svg +0 -322
package/README.md
CHANGED
|
@@ -1,378 +1,112 @@
|
|
|
1
|
-
# FolioKit
|
|
1
|
+
# π FolioKit
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/create-foliokit)
|
|
4
|
+
[](package.json)
|
|
3
5
|
[](LICENSE)
|
|
4
|
-
[](package.json)
|
|
5
|
-
[](https://www.npmjs.com/package/foliokit)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
FolioKit is a CLI for creating a customizable developer portfolio. It scaffolds a responsive **React 19**, **TypeScript**, and **Vite** website with a dark grid background, framed sections, social links, and an interactive project gallery.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Created and maintained by [Saurabh Pandey](https://github.com/saurabhhdev) Β· [GitHub repository](https://github.com/saurabhhdev/foliokit)
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## β¨ Make It Yours
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- **Single-File Customization** β Edit `data.ts` to update all content, projects, bio, skills, and layout ordering without touching React components.
|
|
17
|
-
- **Modern Tech Stack** β Built with React 19, TypeScript, and Vite for fast development and lightweight production bundles (~80 kB gzip).
|
|
18
|
-
- **Aesthetic Obsidian Theme** β Designed with a dark graphite palette, atmospheric canvas starfields, and metallic typography accents.
|
|
19
|
-
- **Interactive 3D Magazine Carousel** β Showcase featured projects in a perspective-lifted cover gallery with mouse-tilt, touch swipe, trackpad wheel gestures, and keyboard navigation.
|
|
20
|
-
- **Automatic Skill Icons** β Integrates with [Skill Icons](https://skillicons.dev) and Simple Icons for crisp vector technology and brand badges.
|
|
21
|
-
- **Dynamic Local Time & Clock** β Real-time digital clock synced to your configured IANA time zone.
|
|
22
|
-
- **Pre-Configured Content Sections** β Hero, About, Skills, Featured Projects, Work Experience, Education, Testimonials, and Contact.
|
|
23
|
-
- **Automated SEO & Social Sharing** β Build script automatically injects personalized OpenGraph tags, Twitter cards, canonical links, and generates a valid `sitemap.xml` and `robots.txt`.
|
|
24
|
-
- **Accessible & Responsive** β Verified across mobile (320px+), tablet, laptop, and ultra-wide screens. Full support for `prefers-reduced-motion` and WCAG touch targets.
|
|
25
|
-
- **Static Hosting Ready** β Zero-config static deployment on Vercel, Netlify, Cloudflare Pages, and GitHub Pages.
|
|
15
|
+
Most portfolio content is edited in one file: `data.ts` in the generated project.
|
|
26
16
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
17
|
+
| What | Where |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Name, headline, bio, photo, location, time zone, resume | `data.ts` β `profile` |
|
|
20
|
+
| Social profiles and links | `data.ts` β `socialIcons` |
|
|
21
|
+
| Work history and organization logos | `data.ts` β `experience` |
|
|
22
|
+
| Schools, programs, dates, locations | `data.ts` β `education` |
|
|
23
|
+
| Skill names, icons, and categories | `data.ts` β `skills` |
|
|
24
|
+
| Project details, screenshots, technologies, URLs | `data.ts` β `projects` |
|
|
25
|
+
| Recommendations | `data.ts` β `testimonials` |
|
|
26
|
+
| Contact email | `data.ts` β `contact` |
|
|
27
|
+
| Browser and social preview metadata | `data.ts` β `seo` |
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
<!-- Place your screenshot here:  -->
|
|
29
|
+
Copy images into `public/` and use paths such as `'/my-photo.jpg'` in `data.ts`. The template includes avatar, project, and experience logo placeholders. Leave an optional section array empty (`[]`) to hide that section.
|
|
33
30
|
|
|
34
|
-
|
|
31
|
+
Interface labels are beside the components in `src/App.tsx` and `src/ProjectMagazineGallery.tsx`. Colors, grid, spacing, and responsive styles are in `src/styles.css` and `src/ProjectMagazineGallery.css`.
|
|
35
32
|
|
|
36
33
|
---
|
|
37
34
|
|
|
38
|
-
##
|
|
39
|
-
|
|
40
|
-
Before running FolioKit, ensure your environment meets these requirements:
|
|
35
|
+
## π Run Locally
|
|
41
36
|
|
|
42
|
-
|
|
43
|
-
- **npm**: Version `10.0.0` or higher (or compatible `pnpm` / `yarn`)
|
|
44
|
-
- **Operating Systems**: macOS, Linux, and Windows 10/11
|
|
45
|
-
|
|
46
|
-
To verify your installed Node.js version, run:
|
|
37
|
+
You need Node.js **22.12.0 or newer** to run the CLI. No global installation is required.
|
|
47
38
|
|
|
48
39
|
```bash
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Quick Start
|
|
55
|
-
|
|
56
|
-
Generate your developer portfolio in three steps:
|
|
57
|
-
|
|
58
|
-
### 1. Run the CLI
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
npx foliokit
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
*Or install globally:*
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
npm install -g foliokit
|
|
68
|
-
foliokit
|
|
40
|
+
npx create-foliokit@latest
|
|
69
41
|
```
|
|
70
42
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
```text
|
|
74
|
-
FOLIOKIT
|
|
75
|
-
Developer Portfolio Generator
|
|
76
|
-
|
|
77
|
-
? What should your project be called? my-portfolio
|
|
78
|
-
? Install dependencies? (Y/n) y
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
- **Project name**: Enter a folder name using lowercase letters, numbers, and single hyphens (default: `my-portfolio`).
|
|
82
|
-
- **Install dependencies**: Choose whether FolioKit should automatically run `npm install` inside the created folder.
|
|
83
|
-
|
|
84
|
-
### 3. Start Developing
|
|
43
|
+
Choose a project folder name and whether to install dependencies. Then:
|
|
85
44
|
|
|
86
45
|
```bash
|
|
87
46
|
cd my-portfolio
|
|
88
47
|
npm run dev
|
|
89
48
|
```
|
|
90
49
|
|
|
91
|
-
Open
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## CLI Commands & Options
|
|
50
|
+
Open the local address printed by Vite, usually `http://localhost:5173`. If you skipped dependency installation, run `npm install` in the project folder first.
|
|
96
51
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
| Command / Option | Description |
|
|
100
|
-
| :--- | :--- |
|
|
101
|
-
| `npx foliokit` | Runs the interactive project creation wizard in the current directory. |
|
|
102
|
-
| `foliokit create` | Explicit subcommand to start the setup wizard. |
|
|
103
|
-
| `-v, --version` | Outputs the current installed FolioKit version. |
|
|
104
|
-
| `-h, --help` | Displays help information, available flags, and usage syntax. |
|
|
105
|
-
|
|
106
|
-
### Examples
|
|
52
|
+
To install the CLI globally instead:
|
|
107
53
|
|
|
108
54
|
```bash
|
|
109
|
-
|
|
110
|
-
foliokit
|
|
111
|
-
|
|
112
|
-
# View usage guidelines
|
|
113
|
-
foliokit --help
|
|
114
|
-
|
|
115
|
-
# Create a new project
|
|
116
|
-
foliokit create
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## Customization Guide (`data.ts`)
|
|
122
|
-
|
|
123
|
-
All portfolio content is centralized in the root `data.ts` file of your generated project. Open `data.ts` in your code editor to personalize your site.
|
|
124
|
-
|
|
125
|
-
### 1. Personal Details & Hero
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
profile: {
|
|
129
|
-
name: 'Alex Rivera',
|
|
130
|
-
headline: 'Full Stack Engineer & Open Source Contributor',
|
|
131
|
-
introduction: "Hey, there! I'm a",
|
|
132
|
-
about: `I build scalable web applications and developer tools.
|
|
133
|
-
|
|
134
|
-
I specialize in React, Node.js, and distributed systems.`,
|
|
135
|
-
location: 'San Francisco, CA',
|
|
136
|
-
timeZone: 'America/Los_Angeles',
|
|
137
|
-
timeZoneLabel: 'PST',
|
|
138
|
-
profileImage: '/avatar-placeholder.svg', // or '/my-photo.jpg' placed in public/
|
|
139
|
-
quote: 'Build with curiosity. Share what you learn.',
|
|
140
|
-
}
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### 2. Social Links
|
|
144
|
-
|
|
145
|
-
Add or update your social media profiles in the `socialIcons` array:
|
|
146
|
-
|
|
147
|
-
```typescript
|
|
148
|
-
socialIcons: [
|
|
149
|
-
{ label: 'GitHub', icon: 'github', url: 'https://github.com/your-username', color: '#f2f0e9' },
|
|
150
|
-
{ label: 'LinkedIn', icon: 'linkedin', url: 'https://linkedin.com/in/your-username', color: '#0a66c2' },
|
|
151
|
-
{ label: 'X', icon: 'x', url: 'https://x.com/your-username', color: '#f2f0e9' },
|
|
152
|
-
]
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### 3. Technical Skills
|
|
156
|
-
|
|
157
|
-
Add, remove, or reorder technologies. Icons are automatically fetched from [Skill Icons](https://skillicons.dev) using the `icon` identifier:
|
|
158
|
-
|
|
159
|
-
```typescript
|
|
160
|
-
skills: [
|
|
161
|
-
{ name: 'React', icon: 'react', category: 'Frontend' },
|
|
162
|
-
{ name: 'TypeScript', icon: 'ts', category: 'Frontend' },
|
|
163
|
-
{ name: 'Node.js', icon: 'nodejs', category: 'Backend' },
|
|
164
|
-
{ name: 'PostgreSQL', icon: 'postgres', category: 'Backend' },
|
|
165
|
-
{ name: 'Docker', icon: 'docker', category: 'Tools' },
|
|
166
|
-
]
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### 4. Featured Projects
|
|
170
|
-
|
|
171
|
-
Projects with `featured: true` appear prominently in the interactive 3D magazine gallery as well as the detailed project cards below:
|
|
172
|
-
|
|
173
|
-
```typescript
|
|
174
|
-
projects: [
|
|
175
|
-
{
|
|
176
|
-
name: 'DevFlow',
|
|
177
|
-
category: 'DEVELOPER TOOLING',
|
|
178
|
-
description: 'An open-source terminal workflow engine designed to automate repetitive task pipelines.',
|
|
179
|
-
image: '/project-placeholder.svg', // Place your thumbnail in public/
|
|
180
|
-
imageAlt: 'DevFlow terminal preview',
|
|
181
|
-
technologies: [
|
|
182
|
-
{ name: 'TypeScript', icon: 'ts' },
|
|
183
|
-
{ name: 'Node.js', icon: 'nodejs' },
|
|
184
|
-
],
|
|
185
|
-
liveUrl: 'https://devflow.example',
|
|
186
|
-
githubUrl: 'https://github.com/your-username/devflow',
|
|
187
|
-
featured: true,
|
|
188
|
-
},
|
|
189
|
-
]
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
### 5. Work Experience & Education
|
|
193
|
-
|
|
194
|
-
```typescript
|
|
195
|
-
experience: [
|
|
196
|
-
{
|
|
197
|
-
title: 'Senior Software Engineer',
|
|
198
|
-
organization: 'Acme Corp',
|
|
199
|
-
date: '2023 β Present',
|
|
200
|
-
description: 'Architected microservices and improved core API latency by 35%.',
|
|
201
|
-
},
|
|
202
|
-
],
|
|
203
|
-
education: [
|
|
204
|
-
{
|
|
205
|
-
title: 'B.S. in Computer Science',
|
|
206
|
-
organization: 'University of California, Berkeley',
|
|
207
|
-
date: '2019 β 2023',
|
|
208
|
-
description: 'Focused on algorithms, distributed databases, and software engineering.',
|
|
209
|
-
},
|
|
210
|
-
]
|
|
55
|
+
npm install --global create-foliokit
|
|
56
|
+
foliokit
|
|
211
57
|
```
|
|
212
58
|
|
|
213
|
-
###
|
|
59
|
+
### Available commands
|
|
214
60
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
education: [],
|
|
222
|
-
```
|
|
61
|
+
| Command | Action |
|
|
62
|
+
| --- | --- |
|
|
63
|
+
| `foliokit` | Start the setup wizard. |
|
|
64
|
+
| `foliokit create` | Start the wizard with the explicit `create` command. |
|
|
65
|
+
| `foliokit --help` | Show CLI help. |
|
|
66
|
+
| `foliokit --version` | Print the installed version. |
|
|
223
67
|
|
|
224
68
|
---
|
|
225
69
|
|
|
226
|
-
##
|
|
70
|
+
## π¦ Build and Deploy
|
|
227
71
|
|
|
228
|
-
|
|
72
|
+
Run the generated portfolio's checks and create a production build:
|
|
229
73
|
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
βββ project-placeholder.svg
|
|
235
|
-
βββ footer-heart.png
|
|
236
|
-
βββ love-always-wins.png
|
|
237
|
-
βββ robots.txt
|
|
74
|
+
```bash
|
|
75
|
+
npm test
|
|
76
|
+
npm run build
|
|
77
|
+
npm run preview
|
|
238
78
|
```
|
|
239
79
|
|
|
240
|
-
|
|
80
|
+
Vite writes the static site to `dist/`. Deploy it to a static host such as **Vercel** or **Netlify** with build command `npm run build` and output directory `dist`.
|
|
241
81
|
|
|
242
|
-
|
|
243
|
-
2. In `data.ts`, reference the image with a leading slash:
|
|
244
|
-
```typescript
|
|
245
|
-
profileImage: '/my-photo.jpg'
|
|
246
|
-
```
|
|
247
|
-
3. For project thumbnails, copy images to `public/` (recommended aspect ratio: `16:9` or `1200x675` px) and set `image: '/project-one.png'`.
|
|
248
|
-
4. **Supported Formats**: SVG, WebP, PNG, JPG/JPEG.
|
|
249
|
-
5. **Fallbacks**: If an image fails to load or is omitted, FolioKit automatically renders accessible fallback elements (e.g., initial-letter monogram badges for avatars).
|
|
82
|
+
For canonical URLs and sitemap generation, set `SITE_URL` in the hosting environment to your HTTPS origin, for example `https://portfolio.example` (no path or query string). You can also set `seo.siteUrl` in `data.ts`.
|
|
250
83
|
|
|
251
84
|
---
|
|
252
85
|
|
|
253
|
-
## Project
|
|
86
|
+
## π§° Stack and Project Files
|
|
254
87
|
|
|
255
|
-
|
|
88
|
+
The generated site uses React, TypeScript, Vite, Lucide icons, and CSS. The CLI package uses Commander, Inquirer, Chalk, and Ora.
|
|
256
89
|
|
|
257
90
|
```text
|
|
258
91
|
my-portfolio/
|
|
259
|
-
βββ data.ts
|
|
260
|
-
βββ
|
|
261
|
-
βββ
|
|
262
|
-
βββ
|
|
263
|
-
βββ
|
|
264
|
-
βββ public/ # Static assets (images, avatars, icons, robots.txt)
|
|
265
|
-
β βββ avatar-placeholder.svg
|
|
266
|
-
β βββ project-placeholder.svg
|
|
267
|
-
βββ scripts/
|
|
268
|
-
β βββ generate-seo.mjs # Production SEO, canonical URL, and sitemap generator
|
|
92
|
+
βββ data.ts # Edit your portfolio content
|
|
93
|
+
βββ types.ts # Shared TypeScript types
|
|
94
|
+
βββ public/ # Images and robots.txt
|
|
95
|
+
βββ scripts/generate-seo.mjs
|
|
96
|
+
βββ tests/portfolio.test.js
|
|
269
97
|
βββ src/
|
|
270
|
-
βββ
|
|
271
|
-
βββ
|
|
272
|
-
βββ
|
|
273
|
-
βββ
|
|
274
|
-
βββ
|
|
275
|
-
|
|
276
|
-
βββ ProjectMagazineGallery.css # 3D perspective & carousel styling
|
|
98
|
+
βββ App.tsx
|
|
99
|
+
βββ BrandIcon.tsx
|
|
100
|
+
βββ ProjectMagazineGallery.tsx
|
|
101
|
+
βββ ProjectMagazineGallery.css
|
|
102
|
+
βββ styles.css
|
|
103
|
+
βββ main.tsx
|
|
277
104
|
```
|
|
278
105
|
|
|
279
106
|
---
|
|
280
107
|
|
|
281
|
-
##
|
|
282
|
-
|
|
283
|
-
### FolioKit CLI
|
|
284
|
-
- **Runtime**: [Node.js](https://nodejs.org) (>= 22.12.0)
|
|
285
|
-
- **CLI Framework**: [Commander.js](https://github.com/tj/commander.js)
|
|
286
|
-
- **Interactive Prompts**: [Inquirer.js](https://github.com/SBoudrias/Inquirer.js)
|
|
287
|
-
- **Terminal Styling**: [Chalk](https://github.com/chalk/chalk)
|
|
288
|
-
- **Terminal Spinners**: [Ora](https://github.com/sindresorhus/ora)
|
|
289
|
-
|
|
290
|
-
### Generated Portfolio
|
|
291
|
-
- **UI Framework**: [React 19](https://react.dev)
|
|
292
|
-
- **Language**: [TypeScript](https://www.typescriptlang.org)
|
|
293
|
-
- **Bundler & Dev Server**: [Vite 8](https://vitejs.dev)
|
|
294
|
-
- **Icons**: [Lucide React](https://lucide.dev) & [Simple Icons](https://simpleicons.org)
|
|
295
|
-
- **Styling**: Native Modern CSS (CSS Grid, Flexbox, CSS Variables, 3D Transforms)
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## Troubleshooting
|
|
300
|
-
|
|
301
|
-
### 1. "Node.js version must be >=22.12.0"
|
|
302
|
-
- **Cause**: An older Node.js runtime is active in your terminal.
|
|
303
|
-
- **Solution**: Install or activate Node.js 22.12.0 or newer using [nvm](https://github.com/nvm-sh/nvm) or [fnm](https://github.com/Schniz/fnm):
|
|
304
|
-
```bash
|
|
305
|
-
nvm install 22
|
|
306
|
-
nvm use 22
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
### 2. Destination Folder Already Exists
|
|
310
|
-
- **Cause**: A folder with the specified project name already exists in your current directory.
|
|
311
|
-
- **Solution**: Choose a different name when prompted, or confirm the prompt to overwrite the existing folder.
|
|
312
|
-
|
|
313
|
-
### 3. Dependency Installation Failed
|
|
314
|
-
- **Cause**: Network timeout or strict corporate proxy blocked `npm install`.
|
|
315
|
-
- **Solution**: Your generated project files are safely preserved. Navigate into the folder and manually install dependencies:
|
|
316
|
-
```bash
|
|
317
|
-
cd my-portfolio
|
|
318
|
-
npm install
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
### 4. Development Port 5173 in Use
|
|
322
|
-
- **Cause**: Another local development server is running on port 5173.
|
|
323
|
-
- **Solution**: Vite automatically attempts the next available port (e.g. 5174). You can also specify a custom port:
|
|
324
|
-
```bash
|
|
325
|
-
npm run dev -- --port 3000
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
### 5. TypeScript Error After Editing `data.ts`
|
|
329
|
-
- **Cause**: A required field was removed or a type mismatch was introduced.
|
|
330
|
-
- **Solution**: Check the terminal output or editor diagnostics. Run `npm test` inside the portfolio directory to validate your `data.ts` structure against the test suite.
|
|
331
|
-
|
|
332
|
-
---
|
|
333
|
-
|
|
334
|
-
## Contributing
|
|
335
|
-
|
|
336
|
-
Contributions, issues, and feature requests are welcome!
|
|
337
|
-
|
|
338
|
-
### Development Workflow
|
|
339
|
-
|
|
340
|
-
1. Fork the repository on GitHub.
|
|
341
|
-
2. Clone your fork locally:
|
|
342
|
-
```bash
|
|
343
|
-
git clone https://github.com/saurabhhdev/foliokit.git
|
|
344
|
-
cd foliokit
|
|
345
|
-
```
|
|
346
|
-
3. Install dependencies:
|
|
347
|
-
```bash
|
|
348
|
-
npm install
|
|
349
|
-
```
|
|
350
|
-
4. Run CLI and generator tests:
|
|
351
|
-
```bash
|
|
352
|
-
npm test
|
|
353
|
-
```
|
|
354
|
-
5. Test the default template:
|
|
355
|
-
```bash
|
|
356
|
-
cd templates/default
|
|
357
|
-
npm test
|
|
358
|
-
npm run build
|
|
359
|
-
cd ../..
|
|
360
|
-
```
|
|
361
|
-
6. Create a feature branch (`git checkout -b feature/amazing-idea`), commit your changes, and submit a pull request.
|
|
362
|
-
|
|
363
|
-
---
|
|
364
|
-
|
|
365
|
-
## License
|
|
366
|
-
|
|
367
|
-
Distributed under the **MIT License**. See [`LICENSE`](LICENSE) for complete details.
|
|
368
|
-
|
|
369
|
-
Copyright (c) 2026 **Saurabh Pandey**.
|
|
370
|
-
|
|
371
|
-
---
|
|
108
|
+
## π Contributing and License
|
|
372
109
|
|
|
373
|
-
|
|
110
|
+
For CLI development, run `npm install` and `npm test` at the repository root. To check the bundled website template, run `npm test` and `npm run build` inside `templates/default/`.
|
|
374
111
|
|
|
375
|
-
|
|
376
|
-
- **GitHub**: [@saurabhhdev](https://github.com/saurabhhdev)
|
|
377
|
-
- **Repository**: [https://github.com/saurabhhdev/foliokit](https://github.com/saurabhhdev/foliokit)
|
|
378
|
-
- **Issue Tracker**: [https://github.com/saurabhhdev/foliokit/issues](https://github.com/saurabhhdev/foliokit/issues)
|
|
112
|
+
FolioKit is open source under the [MIT License](LICENSE).
|