Model your domain.Put it to work.
A TypeScript framework for ontology-powered apps and AI.
From data to working software.
One framework. Every layer.01 Connect
Start with your data.
Give your project access to the systems you already use. Choose a connector from the library, or bring your own client.
Explore connectorsimport { defineConnector } from "@sixb/core"
import { pipedrive } from "@sixb/connector-pipedrive"
export const crm = defineConnector(
"pipedrive",
pipedrive({
apiToken: () => process.env.PIPEDRIVE_API_TOKEN!,
})
)02 Collect
Give every row a home.
Describe the data you want to keep. A sync reads your connector and brings those records into a typed dataset.
Explore datasets and syncsimport { col, defineDataset } from "@sixb/core"
export const rawCustomers = defineDataset(
"pipedrive.customers",
{
schema: [
col("id", "string"),
col("name", "string"),
],
primaryKey: "id",
}
)03 Prepare
Make the pieces fit.
Clean names, join sources, and shape records with SQL or TypeScript. Pipelines turn your raw datasets into data you can build on.
Explore pipelinesconst cleanNames = definePipelineStep("clean-names")
.inputs({ customers: rawCustomers })
.output(cleanCustomers)
.sql(({ customers }) => `
select id, trim(name) as name
from ${customers}
`)
export const prepareCustomers =
definePipeline("prepare-customers")
.then(cleanNames)04 Model
Give your data meaning.
Define the things your software works with and how they relate. Map dataset rows into that shared model, ready for your apps and AI.
Explore the ontologyexport const Customer = defineObjectType({
id: "Customer",
name: "Customer",
properties: [
prop("id", "string", {
required: true,
primary: true,
}),
prop("name", "string", { required: true }),
],
})05 Analyze
Ask better questions.
Query your model with typed filters. Bring the results into an AI prompt to summarize, explain, or help decide what to do next.
Explore queriesconst { objects: quotes } = await sixb
.objects(Quote)
.query()
.where((quote) => quote.p.status.eq("ready"))
.limit(20)
.list()
for (const quote of quotes) {
console.log(quote.properties.title)
}06 Automate
Turn decisions into action.
Connect steps into a repeatable process. Pause for a person's approval, then run an action that writes back to your external system.
Explore workflowsexport const quoteReview = defineWorkflow("quote-review")
.input({
quote: ref(Quote),
templateId: "string",
recipientEmail: "string",
})
.then(reviewQuote, ({ input }) => ({ quote: input.quote }))
.then(createQuoteDocument, ({ input, steps }) => ({
subject: input.quote,
params: {
approved: steps.reviewQuote.approved,
templateId: input.templateId,
recipientEmail: input.recipientEmail,
},
}))07 Operate
Put it in people's hands.
Build a React interface on the same model. Your screens, agents, and automation work with the same data and logic.
Explore building appsimport { useObjectsQuery } from "@sixb/client/hooks"
import { objects } from "@sixb/client/query"
import { Quote } from "../../ontology/quote"
export default function Quotes() {
const query = objects(Quote).query()
.where((q) => q.p.status.eq("ready"))
const { data } = useObjectsQuery(query)
return data?.objects.map((quote) => (
<article key={quote.primaryId}>
<h2>{quote.properties.title}</h2>
<p>{quote.properties.scope}</p>
</article>
))
}08 Secure
Make access intentional.
Organize people into groups. Give each group a role with explicit grants for the data they can see and the operations they can perform.
Explore permissionsimport { reviewers } from "../groups/reviewers"
export const quoteReviewer = defineRole("quote-reviewer", {
grantedTo: [reviewers],
grants: [
can.access(applications.app),
can.view([Customer, Quote]),
can.apply(createQuoteDocument),
],
})09 Extend
Use it wherever you build.
Run your project from the CLI. Access its data over HTTP, or subscribe to changes over WebSockets. The same framework, beyond the browser.
Explore the HTTP API# Start your local project
bun sixb dev
# Build for deployment
bun sixb build
# Start the production API
bun sixb apiSee it come together
Real code. A complete application.
Explore Northline, a working service operations app built with Sixb. Follow the data from connected systems to human decisions and automated actions.