diff --git a/LICENSE b/LICENSE index 6e9e696f..bbeee5ba 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Tohuhono ltd +Copyright (c) 2024 Tohuhono ltd Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index d85d6133..1204987a 100644 --- a/README.md +++ b/README.md @@ -6,28 +6,48 @@ A monorepo for OberonCMS and the related packages and tooling. ## Quick start -This monorepo uses [pNpm](https://pnpm.io/) for workspace support - if you choose to use npm or yarn ymmv. +We use [pNpm](https://pnpm.io/) for workspace support - if you choose to use npm or yarn ymmv. -``` +```sh pnpm install -pnpm build +pnpm dev:oberon # Develop OberonCMS and all dependencies using the playground. + +pnpm dev:demo # Develop the demo app and all dependencies. + +pnpm dev:docs # Develop the documentation. + +pnpm dev:rich-text-demo # Develop the rich text demo app and all dependencies. + +pnpm tsc # Typecheck -pnpm dev:oberon +pnpm lint:fix # Run eslint, fixing any issues -pnpm lint +pnpm prettier:fix # Run prettier, fixing any issues + +pnpm build # Build all packages + +pnpm change # Add a changset entry ``` ## What's inside? -This Turborepo includes the following packages/apps: +This [Turborepo](https://turbo.build/repo/) that includes the following packages and apps: ### Apps +- `apps/demo` + + A demo app showcasing OberonCMS. + - `apps/documentation` - A Next.js app for the OberonCMS website. - https://tohuhono.com + Landing page and documentation for OberonCMS. + https://oberoncms.com + +- `apps/playground` + + A playground for developers to test OberonCMS. Mostly used for local development, there is also a [vercel deployment](https://playground.tohuhono.com) with access limited to core contributors. - `apps/rich-text-demo` @@ -35,18 +55,67 @@ This Turborepo includes the following packages/apps: https://puck-rich-text.tohuhono.com -### Utilities and Config +### Packages + +#### OberonCMS + +- `packages/create-oberon-app` + + A command line tool for creating new projects with OberonCMS. + +- `packages/oberoncms/core` + + The core package for OberonCMS. + +#### Plugins + +- `packages/plugins/pgsql` + + A PostgreSQL database plugin for OberonCMS. + +- `packages/plugins/turso` + + A Turso libsql database plugin for OberonCMS. + +- `packages/plugins/uploadthing` + + An Puck component and OberonCMS plugin for embeding uploadthing images. + +- `packages/plugins/vercel-postgres` + + A Vercel PostgreSQL database plugin for OberonCMS. + +#### Utilities and Config + +- `packages/tohuhono/dev` -- `packages/dev` - [TypeScript](https://www.typescriptlang.org/) for static type checking - [ESLint](https://eslint.org/) for code linting - [Prettier](https://prettier.io) for code formatting -- `packages/utils` - - `cn` - tailwind classname merge function + + Base config and scripts for building packages and apps. + +- `packages/tohuhono/utils` + + A collection of utility functions shared across the monorepo. Particularly useful for testing. + +- `packages/tohuhono/ui` + + Shared UI components and utilities including a [tailwindcss](https://tailwindcss.com/) theme and components for dynamicly loading and adjusting it. + +#### Puck components + +- `packages/tohuhono/puck-rich-text` + + A puck component for rich text editing made for OberonCMS. + +- `packages/tohuhono/puck-blocks` + + A collection of puck components for building pages in OberonCMS. _Not currently used or maintained_ ## What next? -Under heavy development. +[Under heavy development.](https://github.com/orgs/Tohuhono/projects/1/views/1) ## Contributors diff --git a/apps/documentation/package.json b/apps/documentation/package.json index 1b823bd5..f3443790 100644 --- a/apps/documentation/package.json +++ b/apps/documentation/package.json @@ -21,7 +21,6 @@ "devDependencies": { "@tailwindcss/typography": "^0.5.10", "@tohuhono/dev": "workspace:*", - "@tohuhono/utils": "workspace:*", "@types/node": "^20", "@types/react": "18.2.66", "@types/react-dom": "18.2.22", diff --git a/apps/documentation/public/robots.txt b/apps/documentation/public/robots.txt new file mode 100644 index 00000000..34c9ca42 --- /dev/null +++ b/apps/documentation/public/robots.txt @@ -0,0 +1,2 @@ +User-Agent: * +Disallow: /v/* diff --git a/apps/documentation/public/social.png b/apps/documentation/public/social.png new file mode 100644 index 00000000..a49f40ef Binary files /dev/null and b/apps/documentation/public/social.png differ diff --git a/apps/documentation/src/globals.css b/apps/documentation/src/globals.css index b8bafa82..f26d2b8b 100644 --- a/apps/documentation/src/globals.css +++ b/apps/documentation/src/globals.css @@ -7,6 +7,8 @@ --nav-height: 3rem; --radius: 0.25rem; + --logo: 182.5 100% 22%; + /* light */ --background: 0 0% 100%; --foreground: 210 100% 4%; diff --git a/apps/documentation/src/pages/_meta.tsx b/apps/documentation/src/pages/_meta.tsx index ebbd9b54..5ad6c4d4 100644 --- a/apps/documentation/src/pages/_meta.tsx +++ b/apps/documentation/src/pages/_meta.tsx @@ -1,6 +1,11 @@ export default { index: { - title: "Home", + title: "OberonCMS", + type: "page", + display: "hidden", + }, + developers: { + title: "Developers", type: "page", }, } diff --git a/apps/documentation/src/pages/about.mdx b/apps/documentation/src/pages/about.mdx deleted file mode 100644 index 87c4a4b1..00000000 --- a/apps/documentation/src/pages/about.mdx +++ /dev/null @@ -1,3 +0,0 @@ -# Welcome to Nextra - -Hello, world! \ No newline at end of file diff --git a/apps/documentation/src/pages/developers/_meta.tsx b/apps/documentation/src/pages/developers/_meta.tsx new file mode 100644 index 00000000..d4dfbb20 --- /dev/null +++ b/apps/documentation/src/pages/developers/_meta.tsx @@ -0,0 +1,4 @@ +export default { + "quick-start": "Quick Start", + roadmap: "Roadmap", +} diff --git a/apps/documentation/src/pages/developers/quick-start.mdx b/apps/documentation/src/pages/developers/quick-start.mdx new file mode 100644 index 00000000..b08b898a --- /dev/null +++ b/apps/documentation/src/pages/developers/quick-start.mdx @@ -0,0 +1,15 @@ +# Quick Start Guide +### Create a new project +```sh npx2yarn copy +npx create-oberon-app my-app +``` +Prompts will guide you through the process of selecting core plugins and setting some sane defaults. + + +### Manual installation + +This is not docemented yet. + +```sh npm2yarn copy +npm i @oberoncms/core +``` \ No newline at end of file diff --git a/apps/documentation/src/pages/developers/roadmap.mdx b/apps/documentation/src/pages/developers/roadmap.mdx new file mode 100644 index 00000000..3afa3655 --- /dev/null +++ b/apps/documentation/src/pages/developers/roadmap.mdx @@ -0,0 +1,7 @@ +## Roadmap + +We are currently under heavy development. + +Please post bug reports and feature requests on our [github issues board](https://github.com/tohuhono/oberon/issues). + +You can also see an overview of planned features on our [project board](https://github.com/orgs/Tohuhono/projects/1/views/1). diff --git a/apps/documentation/tailwind.config.ts b/apps/documentation/tailwind.config.ts index bac673be..36e0e004 100644 --- a/apps/documentation/tailwind.config.ts +++ b/apps/documentation/tailwind.config.ts @@ -11,6 +11,7 @@ const config: Config = { "./node_modules/@tohuhono/dev/dist/**/*.{js,ts,jsx,tsx,mdx}", "./node_modules/@tohuhono/puck-blocks/dist/**/*.{js,ts,jsx,tsx,mdx}", "./src/**/*.{js,ts,jsx,tsx,mdx}", + "./theme.config.jsx", "./tailwind.classes.txt", ], theme: { @@ -26,6 +27,7 @@ const config: Config = { }, }, colors: { + logo: "hsl(var(--logo))", border: "hsl(var(--border))", input: "hsl(var(--input))", ring: "hsl(var(--ring))", diff --git a/apps/documentation/theme.config.jsx b/apps/documentation/theme.config.jsx index 599235d6..32c2d66f 100644 --- a/apps/documentation/theme.config.jsx +++ b/apps/documentation/theme.config.jsx @@ -1,38 +1,71 @@ +/* eslint-disable react-hooks/rules-of-hooks */ import { useConfig } from "nextra-theme-docs" import Image from "next/image" +import { useRouter } from "next/router" export default { - logo: OberonCMS logo, + logo: ( +
+ OberonCMS logo +
OberonCMS
+
+ ), project: { link: "https://github.com/tohuhono/oberon", }, docsRepositoryBase: - "https://github.com/tohuhono/oberon/tree/main/apps/documentation/", + "https://github.com/tohuhono/oberon/tree/main/apps/documentation", useNextSeoProps() { return { - titleTemplate: "%s – SWR", + titleTemplate: "%s - OberonCMS", } }, head: () => { - // eslint-disable-next-line react-hooks/rules-of-hooks - const { frontMatter } = useConfig() + const { asPath, defaultLocale, locale } = useRouter() + const { frontMatter, title } = useConfig() + + const siteUrl = "https://tohuhono.com" + const url = + siteUrl + (defaultLocale === locale ? asPath : `/${locale}${asPath}`) + + const defaultTitle = `OberonCMS - The NextJS Content Management System` + const description = + frontMatter.description || + `A CMS for developers, designers and content creators. Get started quickly, build beautiful performant websites.` return ( <> + + + + + + + + + + + + + + + + + + + + + - + + + ) }, - - // ... other theme options } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3b9984a..bf42868d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,9 +140,6 @@ importers: '@tohuhono/dev': specifier: workspace:* version: link:../../packages/tohuhono/dev - '@tohuhono/utils': - specifier: workspace:* - version: link:../../packages/tohuhono/utils '@types/node': specifier: ^20 version: 20.11.30