Skip to content

Commit 93a8106

Browse files
authored
Add comparisons to DBOS (#117)
* docs: Add information about MCP tools for web reading and crawling to CLAUDE.md - Updated CLAUDE.md with details on MCP server access and usage - Included benefits of MCP tools for web content extraction - Added guidance on quoting special characters in file paths * docs: add comprehensive documentation comparing pgflow and DBOS workflow systems - Introduced new documentation file for detailed comparison of pgflow and DBOS - Included executive summary, feature comparison, and decision guides - Explained core philosophies, database integration, workflow definition, and deployment - Highlighted ideal use cases and technical details for both systems - Summarized similarities in database transaction handling and reliability features * docs: update comparison documentation to clarify architectural differences and usage scenarios Refactors the comparison to emphasize the core philosophies of pgflow and DBOS, including their integration with PostgreSQL, workflow definition approaches, and deployment environments. Removes outdated code snippets and technical details, focusing on high-level distinctions and use cases for better clarity. * feat: add new documentation page comparing pgflow and Trigger.dev - Introduces a detailed comparison table of features, architecture, and use cases - Adds code examples illustrating workflow definitions in both systems - Summarizes similarities and differences, highlighting integration options with Supabase - Enhances documentation to assist users in choosing between database-driven and task platform orchestration * docs: add comparison documentation between pgflow and Inngest - Introduces a new MDX file detailing features, use cases, and code examples for both systems - Highlights architectural differences, integration options, and suitable scenarios - Provides a comprehensive overview to assist users in choosing the appropriate workflow orchestration tool * docs: add explanations overview page with architecture and comparison links - Introduced new documentation page explaining pgflow's architecture and design - Added links comparing pgflow to DBOS, Trigger.dev, and Inngest - Included core concepts and workflow DSL overview for better understanding * docs: update project naming conventions, development philosophy, and file handling guidance - Added section on project naming conventions emphasizing lowercase usage - Clarified MVP status and development priorities - Updated coding standards to specify camelCase and PascalCase usage - Included instructions for handling special characters in file paths - Minor formatting and wording improvements for clarity and consistency * docs: update PgFlow documentation structure and organization based on Diátaxis framework - Clarified documentation sections: START HERE, CONCEPTS, HOW IT WORKS, COMPARISONS, HOW TO, REFERENCE - Added detailed descriptions for each documentation type and their purpose - Included guidance on organizing new content and principles for contributing - Updated project structure overview and emphasized the database-centric approach - Improved clarity on documentation organization aligning with user needs and technical depth * docs: add new README documentation for Astro and Starlight project setup and commands - Introduced a new Markdown file with project structure, usage commands, and resources - Provided guidance on project organization, asset placement, and command usage - Included links to external documentation and deployment options - Marked as a documentation update to improve onboarding and reference materials * docs: update branding and terminology for pgflow across documentation files - Standardize references from PgFlow to pgflow in Markdown files - Correct capitalization in CLI guidance and key principles sections - Adjust headings and content to reflect consistent naming conventions - No functional code changes, only documentation updates for clarity and consistency * docs: add CLAUDE.md documentation guidelines and update README with section details - Introduced new CLAUDE.md file outlining documentation structure, style, and patterns - Updated README to replace detailed section descriptions with links to CLAUDE.md and DIATAXIS.md - Removed redundant documentation section summaries from README for clarity and maintainability * docs: update website documentation with URL formatting standards and redirect management guidelines - Added detailed instructions on URL formatting, including trailing slashes and absolute paths - Included best practices for managing page redirects, including verification, configuration, and testing - Clarified when and how to add redirects for page moves, renames, and restructuring - Enhanced documentation to improve consistency and maintainability of the website * docs: update redirects, page labels, and rename comparison files for better organization - Added new redirects for explanations to reorganized concepts and comparisons - Changed page labels to reflect new section titles and structure - Renamed comparison MDX files from explanations to dedicated comparisons directory - Updated links in content to match new file locations and labels - Reorganized comparison guides and core concepts documentation for clarity * chore: update documentation structure and add architecture overview - Collapsed documentation sections for concepts, comparisons, and how-to in config - Added new architecture overview page with high-level diagram and explanation - Updated flow DSL documentation to set correct order and clarify data serialization * docs: add guidelines for redirect management and MDX heading practices - Updated redirect best practices to emphasize indefinite retention - Added warning about not using top-level headings in MDX files for documentation * docs: update documentation to add architecture overview link and improve concept section * docs: update architecture overview with detailed task flow and mark index as draft * chore: mark documentation pages as draft to indicate ongoing updates * docs: remove deprecated architecture overview link from concepts index Updated the concepts documentation to exclude the outdated architecture overview link, streamlining the content and focusing on current topics.
1 parent b0cd6bc commit 93a8106

File tree

19 files changed

+1006
-82
lines changed

19 files changed

+1006
-82
lines changed

CLAUDE.md

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,22 @@
22

33
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
44

5+
## ⚠️ PROJECT NAMING CONVENTION ⚠️
6+
7+
**IMPORTANT**: The name of the project should only ever be used as lowercase: **pgflow**
8+
9+
Never use:
10+
11+
- pgFlow
12+
- PgFlow
13+
- Pgflow
14+
- PGFlow
15+
16+
The only exception is in class names, where "Pgflow" can be used (PascalCase).
17+
518
## ⚠️ MVP STATUS AND DEVELOPMENT PHILOSOPHY ⚠️
619

7-
**IMPORTANT**: PgFlow is currently a Minimum Viable Product (MVP) in very early stages of development. When working on this codebase:
20+
**IMPORTANT**: pgflow is currently a Minimum Viable Product (MVP) in very early stages of development. When working on this codebase:
821

922
- **PRIORITIZE CUTTING SCOPE**: Focus on core functionality only - be ruthless about dropping nice-to-have features
1023
- **SIMPLIFY AGGRESSIVELY**: Choose the simplest implementation that works, not the most elegant or complete
@@ -33,7 +46,7 @@ When suggesting changes or improvements, bias heavily toward solutions that can
3346
- **Formatting**: Follow existing code style with proper indentation
3447
- **Testing**: Write tests for both PostgreSQL functions (PgTAP) and TypeScript (Vitest)
3548
- **Naming**: Use camelCase for variables/functions, PascalCase for classes/types
36-
- **Error Handling**: Use proper error types and handle errors appropriately
49+
- **Error Handling**: Use proper error types and handle errors appropriately
3750
- **File Structure**: Monorepo structure with packages in pkgs/ directory
3851

3952
## Packages
@@ -48,6 +61,7 @@ When suggesting changes or improvements, bias heavily toward solutions that can
4861
## Architecture & Key Conventions
4962

5063
See [CODEBASE.md](./CODEBASE.md) for:
64+
5165
- High-level architecture (3-layer model: DSL, SQL Core, Edge Worker)
5266
- Design philosophy (Postgres-first, opinionated, robust yet simple)
5367
- Key conventions (slug naming, DAG constraints, JSON serialization)
@@ -57,7 +71,15 @@ For documentation structure guidelines based on the Diátaxis framework, see [DI
5771

5872
When working with this codebase, all changes should align with the principles in CODEBASE.md.
5973

74+
## MCP Tools for Web Reading/Crawling
75+
76+
For reading and crawling web content, Claude Code has access to an MCP server that provides enhanced web capabilities:
77+
78+
- **MCP Server**: c4ai-sse at http://localhost:11235/mcp/sse
79+
- **Usage**: When you need to read web content or crawl websites, use the MCP tools instead of the standard WebFetch
80+
- **Benefits**: The MCP tools provide more robust capabilities for web content extraction and processing
81+
6082
> [!WARNING]
6183
> QUOTE ALL THE FILE PATHS THAT CONTAIN SPECIAL CHARACTERS LIKE '[run_id]'
6284
> BECAUSE BRACKETS HAVE SPECIAL MEANING IN BASH!
63-
> Do this: `cat 'some/path/to/[id]/page.tsx'` instead of `cat some/path/to/[id]/page.tsx`
85+
> Do this: `cat 'some/path/to/[id]/page.tsx'` instead of `cat some/path/to/[id]/page.tsx`

DIATAXIS.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ The [Diátaxis framework](https://diataxis.fr/) provides a systematic approach t
77
3. **Explanations** - Understanding-oriented content
88
4. **References** - Information-oriented content
99

10-
## Applying Diátaxis to PgFlow Documentation
10+
## Applying Diátaxis to pgflow Documentation
1111

12-
PgFlow's documentation can be naturally structured following Diátaxis principles while preserving its unique character and development philosophy.
12+
pgflow's documentation can be naturally structured following Diátaxis principles while preserving its unique character and development philosophy.
1313

1414
### Tutorials (Learning-oriented)
1515

1616
Tutorials help new users get started through hands-on experience:
1717

18-
- **Getting Started with PgFlow**
18+
- **Getting Started with pgflow**
1919
- First-time setup with Supabase
2020
- Creating your first workflow with the TypeScript DSL
2121
- Deploying Edge Workers
@@ -37,7 +37,7 @@ Tutorials should be:
3737

3838
How-to guides address specific tasks for users who know what they need to accomplish:
3939

40-
- **Working with PgFlow**
40+
- **Working with pgflow**
4141
- How to deploy to Supabase.com
4242
- How to implement custom retry logic
4343
- How to configure worker concurrency
@@ -57,7 +57,7 @@ How-to guides should be:
5757

5858
### Explanations (Understanding-oriented)
5959

60-
Explanations provide background and context to help users understand PgFlow's concepts:
60+
Explanations provide background and context to help users understand pgflow's concepts:
6161

6262
- **Core Concepts**
6363
- The three-layer architecture (DSL, SQL Core, Edge Worker)
@@ -73,7 +73,7 @@ Explanations provide background and context to help users understand PgFlow's co
7373

7474
Explanations should be:
7575
- Clear about the "why" behind design decisions
76-
- Connected to PgFlow's design philosophy
76+
- Connected to pgflow's design philosophy
7777
- Focused on concepts rather than specific code
7878
- Providing deeper understanding beyond task completion
7979

@@ -115,9 +115,9 @@ Following are some suggestions for organizing the documentation within the exist
115115
- Generated from code comments where appropriate
116116
- Reference-style content that's comprehensive and accurate
117117

118-
## Key Principles for PgFlow Documentation
118+
## Key Principles for pgflow Documentation
119119

120-
While applying Diátaxis, PgFlow documentation should maintain:
120+
While applying Diátaxis, pgflow documentation should maintain:
121121

122122
1. **Postgres-first mindset** - All explanations should emphasize the database-centric nature
123123
2. **Three-layer clarity** - Clear separation of DSL, SQL Core, and Edge Worker concepts

NX_README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Pgflow
1+
# pgflow
22

33
<a alt="Nx logo" href="https://nx.dev" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-logo.png" width="45"></a>
44

pkgs/cli/CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
66

77
### Output Philosophy
88

9-
When designing CLI commands for PgFlow, follow these principles:
9+
When designing CLI commands for pgflow, follow these principles:
1010

1111
1. **Minimize Output**: Only show information that is directly valuable to the user.
1212

pkgs/core/docs/pgflow-blob-reference-system.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# PgFlow Blob Reference System
1+
# pgflow Blob Reference System
22

33
## Overview
44

5-
PgFlow needs an efficient way to handle large data outputs from workflow steps. The Blob Reference System provides a solution by separating large data payloads from workflow control information while maintaining a seamless developer experience.
5+
pgflow needs an efficient way to handle large data outputs from workflow steps. The Blob Reference System provides a solution by separating large data payloads from workflow control information while maintaining a seamless developer experience.
66

77
## How It Works
88

@@ -67,7 +67,7 @@ In this example:
6767

6868
### Queue Efficiency
6969

70-
A critical optimization in PgFlow is that the task queue only stores minimal task identification information:
70+
A critical optimization in pgflow is that the task queue only stores minimal task identification information:
7171

7272
- flow_slug
7373
- run_id
@@ -176,4 +176,4 @@ The developer never needs to:
176176

177177
## Conclusion
178178

179-
The Blob Reference System in PgFlow provides an elegant solution for handling large data in workflows. By splitting task data into regular inputs and blob references, the system maintains efficient database usage and queue performance while providing a seamless experience for workflow developers. The design ensures that large data is handled appropriately without requiring developers to write special code for blob resolution or storage.
179+
The Blob Reference System in pgflow provides an elegant solution for handling large data in workflows. By splitting task data into regular inputs and blob references, the system maintains efficient database usage and queue performance while providing a seamless experience for workflow developers. The design ensures that large data is handled appropriately without requiring developers to write special code for blob resolution or storage.

pkgs/dsl/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# @pgflow/dsl
22

3-
The TypeScript Domain Specific Language (DSL) for defining type-safe workflow definitions in PgFlow.
3+
The TypeScript Domain Specific Language (DSL) for defining type-safe workflow definitions in pgflow.
44

55
> [!NOTE]
66
> This project and all its components are licensed under [Apache 2.0](./LICENSE) license.
@@ -62,7 +62,7 @@ export const AnalyzeWebsite = new Flow<Input>({
6262

6363
### Understanding Data Flow
6464

65-
In PgFlow, each step receives an `input` object that contains:
65+
In pgflow, each step receives an `input` object that contains:
6666

6767
1. **`input.run`** - The original flow input (available to all steps)
6868
2. **`input.{stepName}`** - Outputs from dependency steps
@@ -96,7 +96,7 @@ const sqlStatements = compileFlow(MyFlow);
9696
console.log(sqlStatements.join('\n'));
9797
```
9898

99-
Alternatively, use the PgFlow CLI to compile flows directly to migration files:
99+
Alternatively, use the pgflow CLI to compile flows directly to migration files:
100100

101101
```bash
102102
npx pgflow compile path/to/flow.ts

pkgs/website/ASTRO_README.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Astro Documentation Website
2+
3+
This documentation website is built with Astro and Starlight.
4+
5+
[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
6+
7+
## 🚀 Project Structure
8+
9+
Inside of your Astro + Starlight project, you'll see the following folders and files:
10+
11+
```
12+
.
13+
├── public/
14+
├── src/
15+
│ ├── assets/
16+
│ ├── content/
17+
│ │ ├── docs/
18+
│ │ └── config.ts
19+
│ └── env.d.ts
20+
├── astro.config.mjs
21+
├── package.json
22+
└── tsconfig.json
23+
```
24+
25+
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.
26+
27+
Images can be added to `src/assets/` and embedded in Markdown with a relative link.
28+
29+
Static assets, like favicons, can be placed in the `public/` directory.
30+
31+
## 🧞 Commands
32+
33+
All commands are run from the root of the project, from a terminal:
34+
35+
| Command | Action |
36+
| :------------------------ | :----------------------------------------------- |
37+
| `npm install` | Installs dependencies |
38+
| `npm run dev` | Starts local dev server at `localhost:4321` |
39+
| `npm run build` | Build your production site to `./dist/` |
40+
| `npm run preview` | Preview your build locally, before deploying |
41+
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
42+
| `npm run astro -- --help` | Get help using the Astro CLI |
43+
44+
## 👀 Want to learn more?
45+
46+
Check out [Starlight's docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
47+
48+
```
49+
npm create astro@latest -- --template starlight
50+
```
51+
52+
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
53+
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
54+
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/withastro/starlight&create_from_path=examples/basics)
55+
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fwithastro%2Fstarlight%2Ftree%2Fmain%2Fexamples%2Fbasics&project-name=my-starlight-docs&repository-name=my-starlight-docs)

0 commit comments

Comments
 (0)