From 44efecd0b6695389ae731d7190726fc5425fe152 Mon Sep 17 00:00:00 2001 From: Andres J Date: Sat, 7 Feb 2026 15:21:26 -0600 Subject: [PATCH 1/2] fix(docs): use relative internal links and remove leading slashes; keep site/domain + base subpath --- apps/docs/astro.config.ts | 8 +-- apps/docs/src/content/docs/index.mdx | 87 +++++++++++++++------------- 2 files changed, 51 insertions(+), 44 deletions(-) diff --git a/apps/docs/astro.config.ts b/apps/docs/astro.config.ts index 83ab87b7..dadbffaf 100644 --- a/apps/docs/astro.config.ts +++ b/apps/docs/astro.config.ts @@ -17,7 +17,7 @@ export default defineConfig({ { label: "ReactJs", icon: "seti:react", - link: "/react/", + link: "react/", id: "react", items: [ { @@ -39,7 +39,7 @@ export default defineConfig({ { label: "SolidJs", icon: "seti:sublime", - link: "/solid/", + link: "solid/", id: "solid", items: [ { @@ -61,7 +61,7 @@ export default defineConfig({ { label: "Backend", icon: "bars", - link: "/backend/", + link: "backend/", id: "backend", items: [ { @@ -83,7 +83,7 @@ export default defineConfig({ { label: "Universal", icon: "puzzle", - link: "/universal/", + link: "universal/", id: "universal", items: [ { diff --git a/apps/docs/src/content/docs/index.mdx b/apps/docs/src/content/docs/index.mdx index 5c76c8a3..c7a059e9 100644 --- a/apps/docs/src/content/docs/index.mdx +++ b/apps/docs/src/content/docs/index.mdx @@ -18,7 +18,7 @@ hero: file: ../../assets/houston.webp actions: - text: Get Started - link: /react/getting-started/ + link: react/getting-started/ icon: right-arrow - text: View on GitHub link: https://github.com/devx-op/effectify @@ -31,7 +31,7 @@ banner: to follow along with development. --- -import { Card, CardGrid } from '@astrojs/starlight/components'; +import { Card, CardGrid } from "@astrojs/starlight/components"; ## What is Effectify? @@ -43,37 +43,42 @@ Effectify is a comprehensive suite of packages that brings the power of [Effect] Effect integration with TanStack Query, comprehensive UI components, and real-time chat functionality for React applications. - [Explore React packages →](/react/) - - - Reactive Effect integration optimized for SolidJS's fine-grained reactivity system with UI components and chat features. + [Explore React packages →](react/) + + + Reactive Effect integration optimized for SolidJS's fine-grained reactivity system with UI components and chat features. - [Explore SolidJS packages →](/solid/) - - - Authentication services, better-auth integration, and complete backend solutions built with Effect. + [Explore SolidJS packages →](solid/) + + + Authentication services, better-auth integration, and complete backend solutions built with Effect. - [Explore Backend packages →](/backend/) - - - Shared domain logic, types, and business rules that work across all platforms and frameworks. + [Explore Backend packages →](backend/) + + + Shared domain logic, types, and business rules that work across all platforms and frameworks. + + [Explore Universal packages →](universal/) + - [Explore Universal packages →](/universal/) - ## Key Features ### Type Safety First + Every package is built with TypeScript and Effect's powerful type system, providing compile-time guarantees and excellent IDE support. ### Composable Architecture + Build complex applications from simple, composable parts using Effect's functional programming patterns. ### Error Handling + Robust error handling with Effect's error management system, making your applications more reliable and easier to debug. ### Cross-Platform Consistency + Share business logic and types across React, SolidJS, and Node.js applications for consistent behavior. ## Quick Start @@ -86,22 +91,23 @@ Choose your platform to get started: npm install @effectify/react-query @tanstack/react-query effect ``` - [React Quick Start →](/react/getting-started/) - - - ```bash - npm install @effectify/solid-query @tanstack/solid-query effect - ``` + [React Quick Start →](react/getting-started/) + + + ```bash + npm install @effectify/solid-query @tanstack/solid-query effect + ``` - [SolidJS Quick Start →](/solid/getting-started/) - - - ```bash - npm install @effectify/node-better-auth better-auth effect - ``` + [SolidJS Quick Start →](solid/getting-started/) + + + ```bash + npm install @effectify/node-better-auth better-auth effect + ``` + + [Backend Quick Start →](backend/getting-started/) + - [Backend Quick Start →](/backend/getting-started/) - ## Example Applications @@ -119,18 +125,19 @@ Explore complete example applications built with Effectify: View source code, report issues, and contribute to the project. - [Visit GitHub →](https://github.com/devx-op/effectify) - - - Join the community discussions, ask questions, and share your projects. + [Visit GitHub →](https://github.com/devx-op/effectify) + + + Join the community discussions, ask questions, and share your projects. + + [Join Discussions →](https://github.com/devx-op/effectify/discussions) + + + Connect with the broader Effect community for support and collaboration. - [Join Discussions →](https://github.com/devx-op/effectify/discussions) - - - Connect with the broader Effect community for support and collaboration. + [Join Discord →](https://discord.gg/effect-ts) + - [Join Discord →](https://discord.gg/effect-ts) - ## Deployment Verification From b06d27ca7db5cb1d26ea61830ccf5d8b5f470d11 Mon Sep 17 00:00:00 2001 From: Andres J Date: Sat, 7 Feb 2026 15:41:45 -0600 Subject: [PATCH 2/2] fix(docs): usar rutas relativas para enlaces internos en GitHub Pages --- .../content/docs/backend/getting-started.md | 6 +-- apps/docs/src/content/docs/backend/index.mdx | 6 +-- .../src/content/docs/backend/installation.md | 42 +++++++++++-------- .../src/content/docs/react/getting-started.md | 6 +-- apps/docs/src/content/docs/react/index.mdx | 8 ++-- .../src/content/docs/react/installation.md | 6 +-- .../src/content/docs/solid/getting-started.md | 6 +-- apps/docs/src/content/docs/solid/index.mdx | 8 ++-- .../src/content/docs/solid/installation.md | 8 ++-- .../content/docs/universal/getting-started.md | 6 +-- .../docs/src/content/docs/universal/index.mdx | 6 +-- 11 files changed, 58 insertions(+), 50 deletions(-) diff --git a/apps/docs/src/content/docs/backend/getting-started.md b/apps/docs/src/content/docs/backend/getting-started.md index 11709fec..6d97ed2b 100644 --- a/apps/docs/src/content/docs/backend/getting-started.md +++ b/apps/docs/src/content/docs/backend/getting-started.md @@ -514,9 +514,9 @@ You should see: Now that you have the basics set up, explore the specific packages: -- [Node Better Auth](/backend/packages/node-better-auth/) - Learn authentication patterns -- [Node Auth App](/backend/packages/node-auth-app/) - Explore the complete auth service -- [Backend Reference](/backend/reference/) - Dive into the API documentation +- [Node Better Auth](backend/packages/node-better-auth/) - Learn authentication patterns +- [Node Auth App](backend/packages/node-auth-app/) - Explore the complete auth service +- [Backend Reference](backend/reference/) - Dive into the API documentation ## Common Patterns diff --git a/apps/docs/src/content/docs/backend/index.mdx b/apps/docs/src/content/docs/backend/index.mdx index 19a788cb..778502c9 100644 --- a/apps/docs/src/content/docs/backend/index.mdx +++ b/apps/docs/src/content/docs/backend/index.mdx @@ -15,13 +15,13 @@ Effectify provides powerful Node.js backend integrations that combine the robust Effect integration with better-auth for Node.js applications. Provides type-safe authentication with Effect's error handling and composability. - [Learn more →](/backend/packages/node-better-auth/) + [Learn more →](backend/packages/node-better-auth/) Complete authentication server application built with Effect, better-auth, and modern Node.js patterns. Ready-to-deploy auth service. - [Learn more →](/backend/packages/node-auth-app/) + [Learn more →](backend/packages/node-auth-app/) @@ -32,7 +32,7 @@ Ready to start building backend services with Effectify? Check out our getting s Get up and running with Effectify in your Node.js backend application in minutes. - [Get Started →](/backend/getting-started/) + [Get Started →](backend/getting-started/) ## Key Features diff --git a/apps/docs/src/content/docs/backend/installation.md b/apps/docs/src/content/docs/backend/installation.md index 982e2d13..833ba284 100644 --- a/apps/docs/src/content/docs/backend/installation.md +++ b/apps/docs/src/content/docs/backend/installation.md @@ -181,9 +181,7 @@ export class UsersController { @Get(":id") async getUser(@Param("id") id: string) { - return this.effectService.runEffect( - UserService.getById(id), - ) + return this.effectService.runEffect(UserService.getById(id)) } } ``` @@ -206,7 +204,10 @@ import { Context, Effect, Layer } from "effect" export class DatabaseService extends Context.Tag("DatabaseService")< DatabaseService, { - readonly query: (sql: string, params?: any[]) => Effect.Effect + readonly query: ( + sql: string, + params?: any[], + ) => Effect.Effect } >() {} @@ -224,7 +225,10 @@ const makeDatabaseService = Effect.gen(function*() { } }) -export const DatabaseServiceLive = Layer.effect(DatabaseService, makeDatabaseService) +export const DatabaseServiceLive = Layer.effect( + DatabaseService, + makeDatabaseService, +) ``` ### SQLite with better-sqlite3 @@ -243,8 +247,14 @@ import { Context, Effect, Layer } from "effect" export class SqliteService extends Context.Tag("SqliteService")< SqliteService, { - readonly query: (sql: string, params?: any[]) => Effect.Effect - readonly run: (sql: string, params?: any[]) => Effect.Effect + readonly query: ( + sql: string, + params?: any[], + ) => Effect.Effect + readonly run: ( + sql: string, + params?: any[], + ) => Effect.Effect } >() {} @@ -420,16 +430,14 @@ export class EnvService extends Context.Tag("EnvService")< >() {} export const loadEnvConfig = Effect.gen(function*() { - const requiredEnvVars = [ - "DATABASE_URL", - "BETTER_AUTH_SECRET", - "JWT_SECRET", - ] + const requiredEnvVars = ["DATABASE_URL", "BETTER_AUTH_SECRET", "JWT_SECRET"] // Validate required environment variables for (const envVar of requiredEnvVars) { if (!process.env[envVar]) { - yield* Effect.fail(new Error(`Missing required environment variable: ${envVar}`)) + yield* Effect.fail( + new Error(`Missing required environment variable: ${envVar}`), + ) } } @@ -565,10 +573,10 @@ testRoutes.get("/db-test", (req, res) => { ## Next Steps -- [Getting Started Guide](/backend/getting-started/) - Learn the basics -- [Node Better Auth](/backend/packages/node-better-auth/) - Explore authentication -- [Node Auth App](/backend/packages/node-auth-app/) - Complete auth service -- [Backend Reference](/backend/reference/) - API documentation +- [Getting Started Guide](backend/getting-started/) - Learn the basics +- [Node Better Auth](backend/packages/node-better-auth/) - Explore authentication +- [Node Auth App](backend/packages/node-auth-app/) - Complete auth service +- [Backend Reference](backend/reference/) - API documentation ## Troubleshooting diff --git a/apps/docs/src/content/docs/react/getting-started.md b/apps/docs/src/content/docs/react/getting-started.md index 93199cc1..3bcab9c6 100644 --- a/apps/docs/src/content/docs/react/getting-started.md +++ b/apps/docs/src/content/docs/react/getting-started.md @@ -124,9 +124,9 @@ export function UserProfile({ userId }: UserProfileProps) { Now that you have the basics set up, explore the specific packages: -- [React Query Integration](/react/packages/react-query/) - Learn advanced patterns for data fetching -- [UI Components](/react/packages/react-ui/) - Explore the component library -- [Chat Components](/react/packages/chat-react/) - Add real-time features +- [React Query Integration](react/packages/react-query/) - Learn advanced patterns for data fetching +- [UI Components](react/packages/react-ui/) - Explore the component library +- [Chat Components](react/packages/chat-react/) - Add real-time features ## Common Patterns diff --git a/apps/docs/src/content/docs/react/index.mdx b/apps/docs/src/content/docs/react/index.mdx index 2ac124c9..9f73a993 100644 --- a/apps/docs/src/content/docs/react/index.mdx +++ b/apps/docs/src/content/docs/react/index.mdx @@ -15,19 +15,19 @@ Effectify provides powerful React integrations that combine the type-safety and Effect integration with TanStack Query for React applications. Provides type-safe data fetching with Effect's error handling. - [Learn more →](/react/packages/react-query/) + [Learn more →](react/packages/react-query/) A comprehensive UI component library built with React, Radix UI, and Tailwind CSS. Includes forms, layouts, and interactive components. - [Learn more →](/react/packages/react-ui/) + [Learn more →](react/packages/react-ui/) Real-time chat components and services for React applications. Built with Effect for robust state management and error handling. - [Learn more →](/react/packages/chat-react/) + [Learn more →](react/packages/chat-react/) @@ -38,7 +38,7 @@ Ready to start building with Effectify and React? Check out our getting started Get up and running with Effectify in your React application in minutes. - [Get Started →](/react/getting-started/) + [Get Started →](react/getting-started/) ## Key Features diff --git a/apps/docs/src/content/docs/react/installation.md b/apps/docs/src/content/docs/react/installation.md index 7009290e..0573cd5c 100644 --- a/apps/docs/src/content/docs/react/installation.md +++ b/apps/docs/src/content/docs/react/installation.md @@ -241,6 +241,6 @@ If you see "Effectify is working!" rendered, your installation is successful! ## Next Steps -- [Getting Started Guide](/react/getting-started/) - Learn the basics -- [React Query Package](/react/packages/react-query/) - Explore data fetching patterns -- [UI Components](/react/packages/react-ui/) - Browse available components +- [Getting Started Guide](react/getting-started/) - Learn the basics +- [React Query Package](react/packages/react-query/) - Explore data fetching patterns +- [UI Components](react/packages/react-ui/) - Browse available components diff --git a/apps/docs/src/content/docs/solid/getting-started.md b/apps/docs/src/content/docs/solid/getting-started.md index 60659604..bcabf48c 100644 --- a/apps/docs/src/content/docs/solid/getting-started.md +++ b/apps/docs/src/content/docs/solid/getting-started.md @@ -289,9 +289,9 @@ function UserDashboard(props: { userId: number }) { Now that you have the basics set up, explore the specific packages: -- [Solid Query Integration](/solid/packages/solid-query/) - Learn advanced patterns for data fetching -- [UI Components](/solid/packages/solid-ui/) - Explore the component library -- [Chat Components](/solid/packages/chat-solid/) - Add real-time features +- [Solid Query Integration](solid/packages/solid-query/) - Learn advanced patterns for data fetching +- [UI Components](solid/packages/solid-ui/) - Explore the component library +- [Chat Components](solid/packages/chat-solid/) - Add real-time features ## Common Patterns diff --git a/apps/docs/src/content/docs/solid/index.mdx b/apps/docs/src/content/docs/solid/index.mdx index 2a13a003..25256754 100644 --- a/apps/docs/src/content/docs/solid/index.mdx +++ b/apps/docs/src/content/docs/solid/index.mdx @@ -15,19 +15,19 @@ Effectify provides powerful SolidJS integrations that combine the reactive natur Effect integration with TanStack Query for SolidJS applications. Provides type-safe data fetching with Effect's error handling and SolidJS reactivity. - [Learn more →](/solid/packages/solid-query/) + [Learn more →](solid/packages/solid-query/) A comprehensive UI component library built with SolidJS, Kobalte, and Tailwind CSS. Includes forms, layouts, and interactive components optimized for SolidJS. - [Learn more →](/solid/packages/solid-ui/) + [Learn more →](solid/packages/solid-ui/) Real-time chat components and services for SolidJS applications. Built with Effect for robust state management and SolidJS for reactive UI updates. - [Learn more →](/solid/packages/chat-solid/) + [Learn more →](solid/packages/chat-solid/) @@ -38,7 +38,7 @@ Ready to start building with Effectify and SolidJS? Check out our getting starte Get up and running with Effectify in your SolidJS application in minutes. - [Get Started →](/solid/getting-started/) + [Get Started →](solid/getting-started/) ## Key Features diff --git a/apps/docs/src/content/docs/solid/installation.md b/apps/docs/src/content/docs/solid/installation.md index ec968eac..1bbb02ff 100644 --- a/apps/docs/src/content/docs/solid/installation.md +++ b/apps/docs/src/content/docs/solid/installation.md @@ -383,10 +383,10 @@ function App() { ## Next Steps -- [Getting Started Guide](/solid/getting-started/) - Learn the basics -- [Solid Query Package](/solid/packages/solid-query/) - Explore data fetching patterns -- [UI Components](/solid/packages/solid-ui/) - Browse available components -- [Chat Components](/solid/packages/chat-solid/) - Add real-time features +- [Getting Started Guide](solid/getting-started/) - Learn the basics +- [Solid Query Package](solid/packages/solid-query/) - Explore data fetching patterns +- [UI Components](solid/packages/solid-ui/) - Browse available components +- [Chat Components](solid/packages/chat-solid/) - Add real-time features ## Troubleshooting diff --git a/apps/docs/src/content/docs/universal/getting-started.md b/apps/docs/src/content/docs/universal/getting-started.md index 8cf0912f..63c058ba 100644 --- a/apps/docs/src/content/docs/universal/getting-started.md +++ b/apps/docs/src/content/docs/universal/getting-started.md @@ -527,9 +527,9 @@ app.post("/users", (req, res) => { Now that you understand the core concepts, explore the specific universal packages: -- [Chat Domain](/universal/packages/chat-domain/) - Learn chat domain logic -- [Shared Types](/universal/packages/shared-types/) - Explore common types -- [Universal Concepts](/universal/concepts/) - Dive deeper into patterns +- [Chat Domain](universal/packages/chat-domain/) - Learn chat domain logic +- [Shared Types](universal/packages/shared-types/) - Explore common types +- [Universal Concepts](universal/concepts/) - Dive deeper into patterns ## Best Practices diff --git a/apps/docs/src/content/docs/universal/index.mdx b/apps/docs/src/content/docs/universal/index.mdx index aefcf763..4c43754f 100644 --- a/apps/docs/src/content/docs/universal/index.mdx +++ b/apps/docs/src/content/docs/universal/index.mdx @@ -15,13 +15,13 @@ Effectify's universal packages provide shared functionality, types, and domain l Domain logic and business rules for chat functionality. Provides pure, framework-agnostic chat operations built with Effect. - [Learn more →](/universal/packages/chat-domain/) + [Learn more →](universal/packages/chat-domain/) Common TypeScript types and interfaces shared across all Effectify packages. Ensures type consistency throughout your application. - [Learn more →](/universal/packages/shared-types/) + [Learn more →](universal/packages/shared-types/) @@ -32,7 +32,7 @@ Ready to understand the universal concepts that power Effectify? Check out our g Learn the core concepts and patterns used across all Effectify packages. - [Get Started →](/universal/getting-started/) + [Get Started →](universal/getting-started/) ## Core Principles