diff --git a/docs/src/pages/Home/BulletPoints.tsx b/docs/src/pages/Home/BulletPoints.tsx deleted file mode 100644 index ff53f96e..00000000 --- a/docs/src/pages/Home/BulletPoints.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import React from 'react'; -import { BsStars } from 'react-icons/bs'; -import { FaPuzzlePiece, FaHandHoldingHeart } from 'react-icons/fa'; - -export const BulletPoints = (): JSX.Element => ( -
-
- -
-

Stack Agnostic

-

- Castore is in TypeScript. Outside from that, it can - be used pretty much anywhere: React apps, containers, - Lambdas... you name it 🙌 -

-

- For instance, EventStore classes are{' '} - stack agnostic: They need an{' '} - EventStorageAdapter class to interact with actual data. -

-

- You can code your own EventStorageAdapter (simply - implement the interface), but it's much simpler to use off-the-shelf - adapters like the{' '} - - DynamoDBEventStorageAdapter - - . -

-
-
-
- -
-

- Modular & Type-safe -

-

- Castore is a{' '} - collection of utility classes and helpers, but NOT a - framework: While some classes require compatible infrastructure, - Castore is not responsible for deploying it. -

-

- Though that is not something we exclude in the future, we are a small - team and decided to focus on DevX first. -

-

- Speaking of DevX, we absolutely love TypeScript! If you do too, you're - in the right place: We push type-safety to the limit{' '} - in everything we do! -

-
-
-
- -
-

- Comprehensive -

-

- The Event Sourcing journey has many hidden pitfalls.{' '} - We ran into them for you! -

-

- Castore is opiniated. It comes with a collection of best practices and - documented anti-patterns that we hope will help you out! -

-

- It also comes with an awesome collection of packages that will make - your life easy, e.g. when working on{' '} - - unit tests - - ,{' '} - - data migration - {' '} - or{' '} - - data modelling - - . -

-
-
-
-); diff --git a/docs/src/pages/Home/Description.tsx b/docs/src/pages/Home/Description.tsx deleted file mode 100644 index 950c217c..00000000 --- a/docs/src/pages/Home/Description.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import Link from '@docusaurus/Link'; -import React from 'react'; - -export const Description = (): JSX.Element => ( - <> -

- - Event sourcing - {' '} - made easy -

-

- - Event Sourcing - {' '} - is a data storage paradigm that saves{' '} - changes in your application state rather than the state - itself. -

-

- It is powerful as it enables{' '} - rewinding to a previous state and{' '} - exploring audit trails for debugging or business/legal - purposes. It also integrates very well with{' '} - - event-driven architectures - - . -

-

- However, it is tricky to implement 😅 -

-

- ...well, not anymore 💪 -

- - 👉 Get Started - - -); diff --git a/docs/src/pages/Home/Footer.tsx b/docs/src/pages/Home/Footer.tsx deleted file mode 100644 index a5634f5a..00000000 --- a/docs/src/pages/Home/Footer.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import Link from '@docusaurus/Link'; -import React from 'react'; - -const footerLinks = [ - { - label: 'Theodo', - to: 'https://www.theodo.fr/', - }, - { - label: 'Serverless by Theodo', - to: 'https://dev.to/slsbytheodo', - }, - { - label: '@ThomasAribart Twitter', - to: 'https://twitter.com/aribartt', - }, -]; - -export const Footer = (): JSX.Element => ( -
-
-
- {footerLinks.map(item => ( -
- {item.to.startsWith('http') ? ( - - {item.label} - - ) : ( - {item.label} - )} -
- ))} -
-
- © {new Date().getFullYear()} Serverless by Theodo -
-
-
-); diff --git a/docs/src/pages/Home/Home.tsx b/docs/src/pages/Home/Home.tsx deleted file mode 100644 index 790c11d4..00000000 --- a/docs/src/pages/Home/Home.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import Head from '@docusaurus/Head'; -import React from 'react'; - -import { BulletPoints } from './BulletPoints'; -import { Description } from './Description'; -import { Footer } from './Footer'; -import { Title } from './Title'; -import { TopLinks } from './TopLinks'; - -export const Home = (): JSX.Element => ( - <> - - Castore | Event sourcing made easy - - -
- -
- - <Description /> - </div> - <BulletPoints /> - </div> - <Footer /> - </> -); diff --git a/docs/src/pages/Home/Logo.tsx b/docs/src/pages/Home/Logo.tsx deleted file mode 100644 index 251d60b9..00000000 --- a/docs/src/pages/Home/Logo.tsx +++ /dev/null @@ -1,282 +0,0 @@ -/* eslint-disable max-lines */ -import React from 'react'; - -export const Logo = (props: React.HTMLProps<HTMLDivElement>): JSX.Element => ( - <div {...props}> - <svg - version="1.1" - id="Layer_1" - xmlns="http://www.w3.org/2000/svg" - x="0px" - y="0px" - viewBox="0 0 852 852" - enableBackground="new 0 0 852 852" - > - <title>Castore Logo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-); diff --git a/docs/src/pages/Home/Title.tsx b/docs/src/pages/Home/Title.tsx deleted file mode 100644 index ac5ac504..00000000 --- a/docs/src/pages/Home/Title.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; - -import { Logo } from './Logo'; - -export const Title = (): JSX.Element => ( -
- -

- - Castore - -

-
-); diff --git a/docs/src/pages/Home/TopLinks.tsx b/docs/src/pages/Home/TopLinks.tsx deleted file mode 100644 index 4f6f859b..00000000 --- a/docs/src/pages/Home/TopLinks.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import Link from '@docusaurus/Link'; -import React from 'react'; -import { FaRegCopy, FaGithub, FaHeart } from 'react-icons/fa'; -import { MdOutlineImportContacts } from 'react-icons/md'; -import { SlSpeech } from 'react-icons/sl'; - -type Link = { id: string; label: JSX.Element; to: string }; - -const links: Link[] = [ - { - id: 'docs', - label: ( -
- Docs -
- ), - to: './docs/installation', - }, - { - id: 'github', - label: ( -
- GitHub -
- ), - to: 'https://github.com/castore-dev/castore', - }, - { - id: 'examples', - label: ( -
- Examples -
- ), - to: 'https://github.com/castore-dev/castore/tree/main/demo/blueprint/src', - }, - { - id: 'sponsor', - label: ( -
- Sponsor -
- ), - to: 'https://github.com/sponsors/ThomasAribart', - }, - { - id: 'contact', - label: ( -
- Contact -
- ), - to: 'mailto:thomasa@theodo.fr', - }, -]; - -export const TopLinks = (): JSX.Element => ( -
- {links.map(({ id, label, to }) => { - const children = ( -
{label}
- ); - - return ( -
- {to.startsWith('http') || to.startsWith('mailto') ? ( - {children} - ) : ( - {children} - )} -
- ); - })} -
-); diff --git a/docs/src/pages/Home/index.tsx b/docs/src/pages/Home/index.tsx deleted file mode 100644 index af9c1c67..00000000 --- a/docs/src/pages/Home/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { Home } from './Home'; diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx index ca43e262..49737380 100644 --- a/docs/src/pages/index.tsx +++ b/docs/src/pages/index.tsx @@ -1,3 +1,538 @@ -import { Home } from './Home'; +/* eslint-disable max-lines */ +import Head from '@docusaurus/Head'; +import Link from '@docusaurus/Link'; +import React from 'react'; +import { BsStars } from 'react-icons/bs'; +import { + FaRegCopy, + FaGithub, + FaHeart, + FaPuzzlePiece, + FaHandHoldingHeart, +} from 'react-icons/fa'; +import { MdOutlineImportContacts } from 'react-icons/md'; +import { SlSpeech } from 'react-icons/sl'; + +type Link = { id: string; label: JSX.Element; to: string }; + +const links: Link[] = [ + { + id: 'docs', + label: ( +
+ Docs +
+ ), + to: './docs/installation', + }, + { + id: 'github', + label: ( +
+ GitHub +
+ ), + to: 'https://github.com/castore-dev/castore', + }, + { + id: 'examples', + label: ( +
+ Examples +
+ ), + to: 'https://github.com/castore-dev/castore/tree/main/demo/blueprint/src', + }, + { + id: 'sponsor', + label: ( +
+ Sponsor +
+ ), + to: 'https://github.com/sponsors/ThomasAribart', + }, + { + id: 'contact', + label: ( +
+ Contact +
+ ), + to: 'mailto:thomasa@theodo.fr', + }, +]; + +const footerLinks = [ + { + label: 'Theodo', + to: 'https://www.theodo.fr/', + }, + { + label: 'Serverless by Theodo', + to: 'https://dev.to/slsbytheodo', + }, + { + label: '@ThomasAribart Twitter', + to: 'https://twitter.com/aribartt', + }, +]; + +const Home = (): JSX.Element => ( + <> + + Castore | Event sourcing made easy + + +
+
+ {links.map(({ id, label, to }) => { + const children = ( +
{label}
+ ); + + return ( +
+ {to.startsWith('http') || to.startsWith('mailto') ? ( + {children} + ) : ( + {children} + )} +
+ ); + })} +
+
+
+
+ + Castore Logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ + Castore + +

+
+

+ + Event sourcing + {' '} + made easy +

+

+ + Event Sourcing + {' '} + is a data storage paradigm that saves{' '} + changes in your application state rather than the + state itself. +

+

+ It is powerful as it enables{' '} + rewinding to a previous state and{' '} + exploring audit trails for debugging or + business/legal purposes. It also integrates very well with{' '} + + event-driven architectures + + . +

+

+ However, it is tricky to implement 😅 +

+

+ ...well, not anymore 💪 +

+ + 👉 Get Started + +
+
+
+ +
+

Stack Agnostic

+

+ Castore is in TypeScript. Outside from that, it + can be used pretty much anywhere: React apps, + containers, Lambdas... you name it 🙌 +

+

+ For instance, EventStore classes are{' '} + stack agnostic: They need an{' '} + EventStorageAdapter class to interact with actual + data. +

+

+ You can code your own EventStorageAdapter (simply + implement the interface), but it's much simpler to use + off-the-shelf adapters like the{' '} + + DynamoDBEventStorageAdapter + + . +

+
+
+
+ +
+

+ Modular & Type-safe +

+

+ Castore is a{' '} + collection of utility classes and helpers, but + NOT a framework: While some classes require compatible + infrastructure, Castore is not responsible for deploying it. +

+

+ Though that is not something we exclude in the future, we are a + small team and decided to focus on DevX first. +

+

+ Speaking of DevX, we absolutely love TypeScript! If you do too, + you're in the right place: We{' '} + push type-safety to the limit in everything we + do! +

+
+
+
+ +
+

+ Comprehensive +

+

+ The Event Sourcing journey has many hidden pitfalls.{' '} + We ran into them for you! +

+

+ Castore is opiniated. It comes with a collection of best practices + and documented anti-patterns that we hope will help you out! +

+

+ It also comes with an awesome collection of packages that will + make your life easy, e.g. when working on{' '} + + unit tests + + ,{' '} + + data migration + {' '} + or{' '} + + data modelling + + . +

+
+
+
+
+
+
+
+ {footerLinks.map(item => ( +
+ {item.to.startsWith('http') ? ( + + {item.label} + + ) : ( + {item.label} + )} +
+ ))} +
+
+ © {new Date().getFullYear()} Serverless by Theodo +
+
+
+ +); export default Home;