Skip to content

Commit c003ea3

Browse files
committed
Split main page into two sections
1 parent 6e597ac commit c003ea3

File tree

6 files changed

+379
-167
lines changed

6 files changed

+379
-167
lines changed

apps/website/docs/.vitepress/config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ export default defineConfig({
219219
text: 'Statements',
220220
items: [
221221
{ text: 'Releases policy', link: '/statements/releases' },
222+
{ text: 'Ecosystem policy', link: '/statements/ecosystem' },
222223
{ text: 'Testing', link: '/statements/tests' },
223224
{ text: 'TypeScript', link: '/statements/typescript' },
224225
{ text: 'Compile target', link: '/statements/compile_target' },

apps/website/docs/ecosystem.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
export const ecosystem = [
2+
{
3+
icon: '🫙',
4+
title: 'effector-storage',
5+
details: 'Sync Stores with any external storage (like localStorage)',
6+
link: 'https://github.com/yumauri/effector-storage',
7+
linkText: 'Learn More',
8+
},
9+
{
10+
icon: '🪄',
11+
title: 'Farfetched',
12+
details: 'The advanced data fetching tool for web applications',
13+
link: 'https://ff.effector.dev',
14+
linkText: 'Learn More',
15+
},
16+
{
17+
icon: '🪞',
18+
title: 'reflect',
19+
details:
20+
'API for bind Effector to React components in an efficient and composable way',
21+
link: 'https://github.com/effector/reflect',
22+
linkText: 'Learn More',
23+
},
24+
];

apps/website/docs/index.md

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
layout: home
33

4+
markdownStyles: false
5+
46
hero:
57
name: Effector
68
text: with ease
@@ -42,19 +44,27 @@ features:
4244
details: Set of helpers to create factories in your application
4345
link: /factories/
4446
linkText: Get Started
45-
- icon: 🪄
46-
title: Farfetched
47-
details: The advanced data fetching tool for web applications
48-
link: https://farfetched.pages.dev
49-
linkText: Learn More
50-
- icon: 🫙
51-
title: effector-storage
52-
details: Sync Stores with any external storage (like localStorage)
53-
link: https://github.com/yumauri/effector-storage
54-
linkText: Learn More
55-
- icon: 🪞
56-
title: reflect
57-
details: API for bind Effector to React components in an efficient and composable way
58-
link: https://github.com/effector/reflect
59-
linkText: Learn More
6047
---
48+
49+
<script setup>
50+
import VPHero from 'vitepress/dist/client/theme-default/components/VPHero.vue'
51+
import VPFeatures from 'vitepress/dist/client/theme-default/components/VPFeatures.vue'
52+
53+
import { ecosystem } from './ecosystem.ts'
54+
55+
const actions = [
56+
{
57+
theme: 'alt',
58+
text: 'Principles',
59+
link: '/statements/ecosystem/'
60+
},
61+
]
62+
</script>
63+
64+
<VPHero
65+
name="Effector's"
66+
text="ecosystem"
67+
tagline="Apart from With Ease, there are other libs that can help you to build an app with Effector. There is a list of the most stable and useful ones."
68+
:actions="actions"
69+
/>
70+
<VPFeatures :features="ecosystem" />
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<script setup>
2+
import { ecosystem } from '../ecosystem.ts'
3+
console.log(ecosystem)
4+
</script>
5+
6+
# Ecosystem
7+
8+
The main goal of With Ease project is providing not only an information about Effector itself and its ecosystem but also to be an **opinionated guide** for developers who are using Effector in their projects.
9+
10+
The part of this guidance is a list of libraries that could be used in your application with no fear of breaking changes or lack of support. We manually select libraries that are following the same principles as Effector itself: stability, performance, developer experience and maintenance.
11+
12+
## Stability
13+
14+
Effector is [renowned for its stability](https://effector.dev/en/core-principles/releases/): major versions are released once a year or even less frequently, any breaking change is preceded by a deprecation warning for at least one year.
15+
16+
All of the libraries in the list are following the same rules of releases as Effector itself (or even stricter).
17+
18+
::: tip
19+
Some of the libraries can be in their `0.x.x` version, but it doesn't mean that they are unstable. It means that the _API is not stabilized yet_, but its soundness is guaranteed and it is safe to use in production. Read the documentation of the library to get more information and make a decision.
20+
:::
21+
22+
## Performance
23+
24+
Effector is small and performant by design. It is a goal of the project to keep the bundle size as small as possible and to make the runtime as fast as possible. Only libraries that keeps in line with this principle are included in the list. They not necessarily should be small, but they should be designed _to be as small as possible_: no unnecessary dependencies, no unnecessary code, tree-shakable, and so on.
25+
26+
## Developer experience
27+
28+
Effector has its unique API approach that is designed to be declarative and easy to work with. The libraries have to follow the spirit of Effector and provide a similar developer experience. They should integrate with Effector seamlessly, provide a clear and concise API aligned with Effector's principles, and provide a [best-in-class TS-support](/statements/typescript).
29+
30+
## Maintenance
31+
32+
We believe that the library should be maintained well. It does not necessarily mean that the library should be updated every day (or should to be updated at all), but it should be maintained — issues should be answered, PRs should be reviewed, and the library should be updated when it is necessary. We do not respect stale-bots and auto-closing issues, we respect the human touch and the human approach to the library.
33+
34+
## Selected libraries
35+
36+
<ul v-for="lib in ecosystem">
37+
<li><a :href="lib.link">{{ lib.title }}</a>: {{ lib.details }}</li>
38+
</ul>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"vite": "4.4.9",
3939
"vite-plugin-dts": "^3.8.3",
4040
"vite-tsconfig-paths": "4.2.1",
41-
"vitepress": "1.2.3",
41+
"vitepress": "1.3.1",
4242
"vitepress-plugin-rss": "^0.2.8",
4343
"vitest": "~1.5.0",
4444
"vue": "3.4.27",

0 commit comments

Comments
 (0)