Skip to content

Commit aff1fd9

Browse files
Get rid of monorepo structure (#570)
Signed-off-by: Jake Bellacera <hi@jakebellacera.com>
1 parent e095e69 commit aff1fd9

File tree

792 files changed

+229
-261
lines changed

Some content is hidden

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

792 files changed

+229
-261
lines changed

.github/workflows/pull-request.yml

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,23 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- uses: actions/checkout@v4
12-
- name: Use Node.js
13-
uses: actions/setup-node@v4
14-
with:
15-
node-version: "22.14.0"
1612
- uses: pnpm/action-setup@v4
13+
- uses: actions/setup-node@v4
14+
with:
15+
node-version-file: ".nvmrc"
16+
cache: pnpm
1717
- run: pnpm install
1818
- run: pnpm lint
1919
- run: pnpm format
2020
test:
2121
name: Run tests
2222
runs-on: ubuntu-latest
23-
strategy:
24-
matrix:
25-
package:
26-
- delta-theme
27-
- delta-site
2823
steps:
2924
- uses: actions/checkout@v4
30-
- name: Use Node.js
31-
uses: actions/setup-node@v4
32-
with:
33-
node-version: "22.14.0"
3425
- uses: pnpm/action-setup@v4
26+
- uses: actions/setup-node@v4
27+
with:
28+
node-version-file: ".nvmrc"
29+
cache: pnpm
3530
- run: pnpm install
36-
- run: pnpm --filter ${{ matrix.package }} test:ci
31+
- run: pnpm test:ci

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ pnpm-debug.log*
2323
# jetbrains setting folder
2424
.idea/
2525

26+
# environment variables
2627
.env
2728

2829
# Netlify

README.md

Lines changed: 120 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<p align="center">
22
<a href="https://delta.io">
3-
<img alt="Delta Lake" src="packages/delta-site/public/images/icon.png" width="60" />
3+
<img alt="Delta Lake" src="public/images/icon.png" width="60" />
44
</a>
55
</p>
66
<h1 align="center">Delta Lake Website</h1>
@@ -17,13 +17,13 @@
1717

1818
### Quick start
1919

20-
This project requires a YouTube API key which is used on various pages across the site. To generate an API key, refer to the docs on [Google Cloud](https://developers.google.com/youtube/v3/getting-started#before-you-start). Once you have generated an API key, create a file at `packages/delta-site/.env` with the following contents:
20+
This project requires a YouTube API key which is used on various pages across the site. To generate an API key, refer to the docs on [Google Cloud](https://developers.google.com/youtube/v3/getting-started#before-you-start). Once you have generated an API key, create a file at `.env` with the following contents:
2121

2222
```sh
2323
YOUTUBE_API_KEY=<api_key>
2424
```
2525

26-
Then, to get up and running on your machine, first start by [installing pnpm](https://pnpm.io/installation).
26+
Then, to get up and running on your machine. First start by [installing pnpm](https://pnpm.io/installation).
2727

2828
Afterwards, install dependencies:
2929

@@ -34,7 +34,7 @@ pnpm install
3434
Finally, you can run a local Astro dev server by running the following command:
3535

3636
```sh
37-
pnpm --filter delta-site dev
37+
pnpm dev
3838
```
3939

4040
### Code formatting
@@ -45,19 +45,6 @@ Alternatively, you may run `pnpm lint` or `pnpm format` to run ESLint and Pretti
4545

4646
This repo runs automated checks on PRs, including the lint and formatting checks above. All PRs require linters to pass in order to deploy to production.
4747

48-
### Deployment process
49-
50-
The deployment process is automated. When the `main` branch is updated, the site is automatically deployed to production. On every PR, a branch preview will automatically be generated. This allows reviewers to preview your work in progress.
51-
52-
### Project structure
53-
54-
We use a monorepo pattern to separate individual packages. We currently have two packages:
55-
56-
- **delta-site** - The delta.io website source code. Contains the site content, including blog posts.
57-
- **delta-theme** - The underlying theme and plugin configuration used by delta-site.
58-
59-
Please refer to the README for each respective package for more details about them.
60-
6148
### Upgrading dependencies
6249

6350
It's a best practice to make sure that our dependencies are always up to date. You can run `scripts/upgrade-dependencies` to automatically install upgrades across all packages.
@@ -71,6 +58,120 @@ Do note that you will still need to verify that things work as expected.
7158
- [YouTube Data API](https://developers.google.com/youtube/v3/docs) - for working with the YouTube API. 
7259
- [Netlify documentation](https://docs.netlify.com/)
7360

61+
### Deployment process
62+
63+
The deployment process is automated. When the `main` branch is updated, the site is automatically deployed to production. On every PR, a branch preview will automatically be generated. This allows reviewers to preview your work in progress.
64+
65+
## Content collections
66+
67+
### Blogs
68+
69+
Blogs can be found in `src/content/blogs`.
70+
71+
Each blog is contained in its own directory with an `index.md` and other files (such as images) co-located together. Each directory uses the following naming structure: `YYYY-MM-DD-blog-title`
72+
73+
Each blog post requires the following frontmatter:
74+
75+
```md
76+
---
77+
title: New features in the Python deltalake 0.12.0 release
78+
description: This post explains the new features in the Python deltalake 0.12.0 release
79+
thumbnail: "./thumbnail.png"
80+
author: ion-koutsouris
81+
publishedAt: 2023-10-22
82+
---
83+
```
84+
85+
Overview of each field:
86+
87+
- **title:** Blog post title
88+
- **description:** Blog post description
89+
- **thumbnail:** Relative path to blog post thumbnail (usually `./thumbnail.png`)
90+
- **author:** One or more `profile` IDs (see below). **IMPORTANT:** Profile IDs must exactly match the directory name in `src/content/profiles/`. For multiple authors, use a YAML array format:
91+
```
92+
author:
93+
- carly-akerly
94+
- robert-pack
95+
```
96+
Or for a single author:
97+
```
98+
author: ion-koutsouris
99+
```
100+
**If adding a new author:** Create a new profile folder in `src/content/profiles/[author-name]/` with an `index.md` file containing the required frontmatter (see Profiles section below).
101+
- **publishedAt:** `YYYY-MM-DD` format date of when the post was published. **REQUIRED FIELD** - This date must exactly match the date in the directory name (e.g., if directory is `2025-09-25-Delta-Lake-4.0`, then `publishedAt` must be `2025-09-25`)
102+
103+
Other optional fields:
104+
105+
- **updatedAt:** If set, it will indicate that the blog post was last updated at this date.
106+
107+
The remaining content of the markdown file is the blog post body.
108+
109+
### Profiles
110+
111+
Profiles can be found in `src/content/profiles`.
112+
113+
Profiles represent individual contributors to the site. These are used throughout the site for different types of content types, including blogs and user stories. Profiles can be as simple as just their name, to full-featured pages with a description, quote, list of links, content, etc.
114+
115+
Like blog posts, they are also a directory with a `index.md` file and can have other files (such as images) co-located together. However, there is no requirement for the naming structure of the directory.
116+
117+
Each profile requires the following frontmatter:
118+
119+
```md
120+
---
121+
name: Ada Lovelace
122+
---
123+
```
124+
125+
Overview of each field:
126+
127+
- **name:** The person's full name (note: this should match the directory name)
128+
129+
Other optional fields:
130+
131+
- **photo:** Relative path to a photo of the person (photos should be in the folder)
132+
- **role:** Optional job title/role to display alongside the person's name.
133+
- **quote:** A quote to display on their profile page.
134+
- **quoteSource:** A citation for their quote
135+
- **linkedin:** The person's LinkedIn profile URL.
136+
- **videos:** List of YouTube video IDs that can be featured on their profile.
137+
- **otherReferences:** List of links that can be displayed on their profile.
138+
139+
### User stories
140+
141+
User stories can be found in `src/content/user-stories`.
142+
143+
User stories represent case studies. They are similar to blog posts, but are featured in the **Learn > Case Studies** page.
144+
145+
Like blog posts, they are also a directory with a `index.md` file and can have other files (such as images) co-located together. However, there is no requirement for the naming structure of the directory.
146+
147+
User stories require the following frontmatter
148+
149+
```md
150+
---
151+
title: Introducing Product Analytics on Delta Sharing, With Kubit
152+
description: How Kubit and Delta Sharing improve product analytics
153+
thumbnail: "./thumbnail.png"
154+
author: stefan-enev
155+
publishedAt: 2025-01-02
156+
---
157+
```
158+
159+
Overview of each field:
160+
161+
- **title:** User story title
162+
- **description:** User story description
163+
- **thumbnail:** Relative path to the thumbnail (usually `./thumbnail.png`)
164+
- **author:** One or more `profile` IDs (see below)
165+
- **publishedAt:** `YYYY-MM-DD` format date of when the user story was published
166+
167+
### Integrations
168+
169+
Profiles can be found in `src/content/integrations`.
170+
171+
Integrations are displayed on the **Integrations** page. Unlike other content types, they are JSON files.
172+
173+
Images for integrations live in the `src/content/integrations/images` directory.
174+
74175
## :handshake: Contributing
75176

76177
All changes are proposed as a [pull request](https://github.com/delta-io/website/pulls). Simply create a pull request and request a review and we'll get on it.
@@ -85,7 +186,7 @@ Please create an issue with your proposed title before writing the blog post!
85186

86187
Blog posts should generally be around 2,000 words, target a relevant, high-value keyword, and be easy to read.
87188

88-
You can add a blog by adding a directory with some files to `packages/delta-site/src/content/blog`. Here's an example:
189+
You can add a blog by adding a directory with some files to `src/content/blog`. Here's an example:
89190

90191
```
91192
packages/
@@ -113,4 +214,4 @@ Guidelines:
113214
---
114215
```
115216

116-
Keep in mind that the `author` metadata refers to a profile under `packages/delta-site/src/content/profiles`.
217+
Keep in mind that the `author` metadata refers to a profile under `src/content/profiles`.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)