Skip to content

Commit e3e8e24

Browse files
committed
Initial commit
0 parents  commit e3e8e24

File tree

230 files changed

+50908
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

230 files changed

+50908
-0
lines changed

.gitignore

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# build output
2+
dist/
3+
4+
# generated types
5+
.astro/
6+
7+
# dependencies
8+
node_modules/
9+
10+
# nelify / vercel / vscode
11+
.netlify/
12+
.vercel/
13+
.vscode/
14+
15+
# logs
16+
npm-debug.log*
17+
yarn-debug.log*
18+
yarn-error.log*
19+
pnpm-debug.log*
20+
21+
# environment variables
22+
.env
23+
.env.production
24+
25+
# macOS-specific files
26+
.DS_Store
27+
28+
# jetbrains setting folder
29+
.idea/

LICENSE.md

+155
Large diffs are not rendered by default.

README.md

+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Astrorante | Astro + Storyblok CMS
2+
3+
[![License: CC BY-ND 4.0](https://img.shields.io/badge/License-CC_BY--ND_4.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nd/4.0/)
4+
5+
6+
7+
## 📝 1. Setting up the .env file
8+
9+
rename the `env.txt` to `.env` and fill in your details
10+
11+
```
12+
STORYBLOK_PREVIEW_TOKEN=XXX
13+
STORYBLOK_PERSONAL_TOKEN=XXX
14+
STORYBLOK_SPACE_ID=000000
15+
LOCALE=en-US
16+
CURRENCY=USD
17+
SITE_LANG=en
18+
```
19+
20+
Also add this to your netlify/vercel deploy settings.
21+
22+
23+
### 🧰 2. Install dependencies
24+
25+
```bash
26+
npm install
27+
```
28+
29+
### 🛠️ 3. Start Development server
30+
31+
```bash
32+
npm run dev
33+
```
34+
35+
### 🔄 4. Sync your Storyblok Space
36+
37+
open `https://localhost:4321/setup`
38+
39+
And sync your Datasources, Components, and stories. it is best to first delete before syncing.
40+
41+
![Astrorante](https://astrorante.unfolding.io/screenshots/sync.png)
42+
43+
### ⚙️ 5. Add your site to the astro.config and set your adapter (vercel or netlify)
44+
45+
46+
```javascript
47+
48+
export default defineConfig({
49+
site: 'https://your-website.com',
50+
output: "hybrid",
51+
adapter: vercel(), // vercel() or netlify()
52+
53+
....
54+
55+
```
56+
57+
58+
## 🛸 Commands
59+
60+
All commands are run from the root of the project, from a terminal:
61+
62+
| Command | Action |
63+
| -------------------------- | ------------------------------------------------ |
64+
| `npm install` | Installs dependencies |
65+
| `npm run dev` | Starts local dev server at `localhost:4321` |
66+
| `npm run build` | Build your production site to `./dist/` |
67+
| `npm run preview` | Preview your build locally, before deploying |
68+
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
69+
| `npm run astro -- --help` | Get help using the Astro CL |
70+
71+
## 👀 Want to learn more about Astro?
72+
73+
Check out [Astro documentation](https://docs.astro.build) or jump into Astro's [Discord server](https://astro.build/chat).
74+
75+
## 📚 Tech Stack
76+
77+
Astro, Storyblok CMS, Vue, TailwindCSS
78+
79+
## 🛟 Support
80+
81+
If you encounter any issues or bugs, we encourage you to open an issue in the repository. To help us quickly address the problem, please provide detailed information about the bug and steps to reproduce it.
82+
83+
For those seeking priority assistance, we offer premium support services. Feel free to reach out to us by email at [[email protected].](mailto:[email protected].) We're here to help!
84+
85+
86+
## ☕️ Want to Caffeinate your Developer?
87+
88+
By [caffeinating](https://www.buymeacoffee.com/unfolding.io) your developer, you're not just getting the best out of them; you're also ensuring a cheerful and energetic work environment.😊
89+
90+
[![buymeacoffee](https://starfunnel.unfolding.io/screenshots/bymeacoffee.webp)](https://www.buymeacoffee.com/unfolding.io)
91+
92+
93+
## 📸 Screenshots
94+
95+
![Astrorante](https://astrorante.unfolding.io/screenshots/Screenshot_0.png)
96+
![Astrorante](https://astrorante.unfolding.io/screenshots/Screenshot_1.png)
97+
![Astrorante](https://astrorante.unfolding.io/screenshots/Screenshot_2.png)
98+
![Astrorante](https://astrorante.unfolding.io/screenshots/Screenshot_3.png)
99+
![Astrorante](https://astrorante.unfolding.io/screenshots/Screenshot_4.png)
100+
![Astrorante](https://astrorante.unfolding.io/screenshots/Screenshot_5.png)
101+
![Astrorante](https://astrorante.unfolding.io/screenshots/sync.png)
102+
103+
104+
105+
106+
107+

astro.config.mjs

+243
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
import { defineConfig, envField } from "astro/config";
2+
import { loadEnv } from "vite";
3+
import basicSsl from "@vitejs/plugin-basic-ssl";
4+
import tailwind from "@astrojs/tailwind";
5+
import storyblok from "@storyblok/astro";
6+
import vue from "@astrojs/vue";
7+
import icon from "astro-icon";
8+
import sitemap from "@astrojs/sitemap";
9+
import netlify from "@astrojs/netlify";
10+
import vercel from "@astrojs/vercel/serverless";
11+
12+
const env = loadEnv("", process.cwd(), ["STORYBLOK", "NETLIFY"]);
13+
14+
// https://astro.build/config
15+
export default defineConfig({
16+
site: "https://unfolding.io/",
17+
output: "hybrid",
18+
adapter: env.NETLIFY ? netlify() : vercel(), // vercel() or netlify()
19+
integrations: [
20+
storyblok({
21+
accessToken: env.STORYBLOK_PREVIEW_TOKEN,
22+
bridge: false,
23+
components: {
24+
page: "components/bloks/Page",
25+
post: "components/bloks/Post",
26+
hero: "components/bloks/Hero",
27+
text_media: "components/bloks/TextMedia",
28+
blog_and_work_items: "components/bloks/BlogAndWorkItems",
29+
richtext: "components/bloks/RichText",
30+
banner: "components/bloks/Banner",
31+
features: "components/bloks/Features",
32+
work: "components/bloks/Work",
33+
service: "components/bloks/Service",
34+
gallery: "components/bloks/Gallery",
35+
services: "components/bloks/Services",
36+
stack_items: "components/bloks/StackItems",
37+
accordion: "components/bloks/premium/Accordion",
38+
pricing: "components/bloks/premium/Pricing",
39+
contact_form: "components/bloks/premium/ContactForm",
40+
carousel: "components/bloks/premium/Carousel",
41+
card_grid: "components/bloks/premium/CardGrid",
42+
newsletter: "components/bloks/premium/Newsletter",
43+
},
44+
apiOptions: {
45+
region: env.STORYBLOK_REGION, // Possible values: "ap", "eu", "us", "ca", "cn" (Default: "eu")
46+
},
47+
}),
48+
tailwind({
49+
applyBaseStyles: false,
50+
}),
51+
vue({
52+
appEntrypoint: "/src/pages/_app",
53+
}),
54+
icon(
55+
{
56+
iconDir: "src/icons",
57+
include: {
58+
lucide: [
59+
'chevron-right',
60+
'chevron-left',
61+
'chevron-up',
62+
'chevron-down',
63+
'arrow-right',
64+
'arrow-left',
65+
'arrow-up',
66+
'arrow-down',
67+
'external-link',
68+
'mail',
69+
'home',
70+
'coffee',
71+
'phone',
72+
'smartphone',
73+
'laptop',
74+
'menu',
75+
'newspaper',
76+
'map',
77+
'map-pin',
78+
'search',
79+
'image',
80+
'badge-percent',
81+
'facebook',
82+
'banana',
83+
'bitcoin',
84+
'bookmark',
85+
'bot',
86+
'boxes',
87+
'calendar-check',
88+
'circle-check-big',
89+
'download',
90+
'cloud-download',
91+
'github',
92+
'messages-square',
93+
'navigation',
94+
'qr-code',
95+
'play',
96+
'shield-check',
97+
'slack',
98+
'star',
99+
'thumbs-up',
100+
'user-round',
101+
'instagram'
102+
],
103+
}
104+
}
105+
),
106+
sitemap({
107+
filter: (page) =>
108+
!page.includes('/setup/') &&
109+
!page.includes('/cms/')
110+
}),
111+
],
112+
trailingSlash: "ignore",
113+
compressHTML: true,
114+
scopedStyleStrategy: "attribute",
115+
build: {
116+
format: "directory",
117+
inlineStylesheets: "always",
118+
},
119+
vite: {
120+
plugins: [basicSsl()],
121+
server: {
122+
https: true,
123+
},
124+
},
125+
experimental: {
126+
contentLayer: true,
127+
128+
env: {
129+
schema: {
130+
STORYBLOK_PREVIEW_TOKEN: envField.string({
131+
context: "server",
132+
access: "secret",
133+
optional: true,
134+
}),
135+
STORYBLOK_SPACE_ID: envField.number({
136+
context: "server",
137+
access: "public",
138+
optional: true,
139+
}),
140+
STORYBLOK_REGION: envField.string({
141+
context: "server",
142+
access: "public",
143+
default: "eu", // Possible values: "ap", "eu", "us", "ca", "cn" (Default: "eu")
144+
}),
145+
STORYBLOK_PERSONAL_TOKEN: envField.string({
146+
context: "server",
147+
access: "secret",
148+
optional: true,
149+
}),
150+
SITE_LANG: envField.string({
151+
context: "client",
152+
access: "public",
153+
default: "en",
154+
}),
155+
CURRENCY: envField.string({
156+
context: "client",
157+
access: "public",
158+
default: "USD",
159+
}),
160+
LOCALE: envField.string({
161+
context: "client",
162+
access: "public",
163+
default: "en-US",
164+
}),
165+
NEWSLETTER_ENDPOINT: envField.string({
166+
context: "server",
167+
access: "public",
168+
default: "none",
169+
}),
170+
MAILCHIMP_SERVER_PREFIX: envField.string({
171+
context: "server",
172+
access: "public",
173+
optional: true,
174+
}),
175+
MAILCHIMP_LIST_ID: envField.string({
176+
context: "server",
177+
access: "public",
178+
optional: true,
179+
}),
180+
MAILCHIMP_API_KEY: envField.string({
181+
context: "server",
182+
access: "secret",
183+
optional: true,
184+
}),
185+
186+
MAILGUN_API_KEY: envField.string({
187+
context: "server",
188+
access: "secret",
189+
optional: true,
190+
}),
191+
192+
MAILGUN_API_URL: envField.string({
193+
context: "server",
194+
access: "public",
195+
optional: true,
196+
}),
197+
198+
MAILGUN_DOMAIN: envField.string({
199+
context: "server",
200+
access: "public",
201+
optional: true,
202+
}),
203+
204+
FROM_EMAIL_ADDRESS: envField.string({
205+
context: "server",
206+
access: "public",
207+
optional: true,
208+
}),
209+
210+
TO_EMAIL_ADDRESS: envField.string({
211+
context: "server",
212+
access: "public",
213+
optional: true,
214+
}),
215+
POSTMARK_SERVER_TOKEN: envField.string({
216+
context: "server",
217+
access: "secret",
218+
optional: true,
219+
}),
220+
SLACK_TOKEN: envField.string({
221+
context: "server",
222+
access: "secret",
223+
optional: true,
224+
}),
225+
SLACK_CHANNEL_ID: envField.string({
226+
context: "server",
227+
access: "public",
228+
optional: true,
229+
}),
230+
CONTACT_FORM_ENDPOINT: envField.string({
231+
context: "server",
232+
access: "public",
233+
default: "none",
234+
}),
235+
NEWSLETTER_ENDPOINT: envField.string({
236+
context: "server",
237+
access: "public",
238+
default: "none",
239+
}),
240+
},
241+
},
242+
},
243+
});

0 commit comments

Comments
 (0)