Launch your digital solution quickly by
building on a proven platform

Avoid reinventing the wheel; build on our enterprise-grade Content Services Platform or CSP. We have coded all the parts that are hard to code and a hassle to test so that you can save time and effort.

One system to integrate all - with Microservices

A Content Services Platform or CSP is ideal for integrating systems, especially ones otherwise hard to integrate. Build digital products and services based on our CSP and expose your content as Microservices using the Sense/Net API. Build customer, employee, and partner-facing solutions on any platform for any device.

One system -> Content Services Platform

Model everything as content

In our view, almost anything can be modeled as content. Building on a Content Services Platform with ready-made services saves much time in learning, design, implementation, and testing - leading to fast software delivery with very few bugs. The operation cost of a standard platform is also lower.

Focus on your business problem instead of coding basic plumbing

The Content Services Platform provides many services applicable to all content stored in the system. Once you learn to work with content using our microservice API and model any business entity as content, all of the services listed below are available to you, saving time and effort.

Integrate third-party systems or build stand-alone applications

Integrate other systems by transferring data between the given system and the content repository. New applications can be built directly on the Sense/Net platform. In both cases, content is exposed through the Sense/Net API as Microservices, and an automatically generated GUI helps speed up development.

Integration scenario
INTEGRATION SCENARIO
Standalone scenario
STANDALONE SCENARIO

Integrate with any system, even outdated legacy systems

Integrate content from any external system in three steps: modeling the content, transferring it to the Content Services Platform, and building applications using its services.

Model your content by defining custom Content Types

Building an application on the Sense/Net Content Services Platform starts by modeling content. Then, by editing a simple Content Type Definition file, you can create your own Content Types; everything else is done automatically. All fields are indexed, permissions are applied, version control is in place, and everything is exposed as an OData-compliant Microservices API.

<?xml version="1.0" encoding="UTF-8"?>
<ContentType name="Car" parentType="GenericContent" handler="SenseNet.ContentRepository.GenericContent"
     xmlns="http://schemas.sensenet.com/SenseNet/ContentRepository/ContentTypeDefinition" >
    <DisplayName>Car</DisplayName>
    <Description>Content type for storing information about cars</DisplayName>
    <Icon>Car</Icon>
    <Fields>
        <Field name="CarType" type="ShortText">
            <DisplayName>CarType</DisplayName>
            <Description>Type of the car</Description>
        </Field>
        <Field name="Color" type="ShortText">
            <DisplayName>Color</DisplayName>
            <Description>The color of the car</Description>
        </Field>
        <Field name="Mileage" type="Number">
            <DisplayName>Mileage</DisplayName>
            <Description>The mileage of the car in MPG</Description>
        </Field>
        <Field name="TakenBy" type="Reference">
            <DisplayName>Taken By</DisplayName>
            <Description>The user who currently has the car</Description>
        </Field>
        <Field name="ManufactureDate" type="DateTime">
            <DisplayName>Manufacture Date</DisplayName>
            <Description>The car's manufacture date</Description>
            <Configuration>
                <DateTimeMode>Date</DateTimeMode>
            </Configuration>
        </Field>
    </Fields>
</ContentType>

Work with your content through the REST API

After creating your own Content Type, you can start manipulating your content through the OData-compliant Microservices API. Create, read, update, delete, run queries, search, and set permissions with easy-to-learn standard commands.
// Init state
const [ cars , setCars ] = useState([])
// This query retrieves all content items of type "Car" that have a property "Color" equal to "Red"
// and a property "Mileage" greater than 50 and a property "TakenBy" equal to null.
const carQuery= await repository.loadCollection({
    path: '/Root/Content',
        oDataOptions:{
            select: [ "Id", "Name", "Type", "DisplayName", "Color", "Mileage" ]
            query:  "Type:'Car' AND Color:'Red' AND Mileage:>50 AND TakenBy:''"
        },
})
// Update State
    setCars( carQuery.results.d )
// Render Component
    return (
        <table>
            <th>
                <td>Car</td><td>Color</td><td>Mileage</td>
            </th>
            {cars .map((item) => (
                <tr key={item.Id}>
                    <td>{item.DisplayName}</td>
                    <td>{item.Color}</td>
                    <td>{item.Mileage}</td>
                </tr>
            )}
        </table>
      )
// This query retrieves all content items of type "Car" that have a property "Color" equal to "Red"
// and a property "Mileage" greater than 50 and a property "TakenBy" equal to null.
const cars = await repository.loadCollection({
    path: '/Root/Content',
        oDataOptions:{
            select: [ "Id", "Name", "Type", "DisplayName", "Color", "Mileage" ]
            query:  "Type:'Car' AND Color:'Red' AND Mileage:>50 AND TakenBy:''"
    },
})

//Console Log the result
cars.forEach((item) => {
  console.log("DisplayName:", item.DisplayName);
  console.log("Color:", item.Color);
  console.log("Mileage:", item.Mileage);
  console.log("--------"); // Add a separator for clarity
});

// This query retrieves all content items of type "Car" that have a property "Color" equal to "Red"
// and a property "Mileage" greater than 50 and a property "TakenBy" equal to null.
const query = encodeURIComponent("$query=Type:'Car' AND Color:'Red' AND Mileage:>50 AND TakenBy:''");
const baseUrl = "https://yourserver/OData.svc/Root/Content";

const cars = await fetch(
    `${baseUrl}?${query}`,
    {credentials: "include"}
);

cars.forEach((item) => {
  console.log("DisplayName:", item.DisplayName);
  console.log("Color:", item.Color);
  console.log("Mileage:", item.Mileage);
  console.log("--------"); // Add a separator for clarity
});

// This query retrieves all content items of type "Car" that have a property "Color" equal to "Red"
// and a property "Mileage" greater than 50 and a property "TakenBy" equal to null.
store.dispatch(Actions.fetchContent(
    path:"/Root/Content",
    query:{"Type:'Car' AND Color:'Red' AND Mileage:>50 AND TakenBy:''"}
})
// This query retrieves all content items of type "Car" that have a property "Color" equal to "Red"
// and a property "Mileage" greater than 50 and a property "TakenBy" equal to null.
var request = new QueryContentRequest
{
    ContentQuery = "Type:'Car' AND Color:'Red' AND Mileage:>50 AND TakenBy:''",
    Select = new[] { "Id", "Name", "Type", "DisplayName", "Color", "Mileage" }
};

// Execute the query remotely and get the result as a collection of the desired type
var cars = await repository.QueryAsync<Car>(request, cancel);

// Display result as a simple table
Console.WriteLine($"Car\\tColor\\tMileage");
foreach (var car in cars)
{
    Console.WriteLine($"{car.DisplayName}\\t{car.Color}\\t{car.Mileage}");
}
                
# This query retrieves all content items of type "Car" that have a property "Color" equal to "Red"
# and a property "Mileage" greater than 50 and a property "TakenBy" equal to null.
GET https://yourserver/OData.svc/Root/Content?$query=Type:'Car' AND Color:'Red' AND Mileage:>50 AND TakenBy:''

Save time by using the automatically generated GUI

As soon as you define a Content Type, an automatically generated GUI is at your service to manage that type of content. You can use the automatic GUI during development, administrative tasks, and as an end-user GUI to save time and money, especially in the MVP or prototype phase of software projects.

Save time by using the automatically generated GUI

Economical to scale from SMB to Enterprise level

Sense/Net CSP is scalable from serving small-scale applications to serving millions of content to millions of users with relatively low hardware requirements. It also satisfies other enterprise-level non-functional requirements, such as performance, availability, fault tolerance, security, and many more.

Achieve high performance with our powerful search and query engine

Every content is automatically indexed upon creation or updating. An unlimited number of typed fields, including binary attachments, are available for query and search with a simple query syntax or on the built-in GUI. The performance of the Lucene-powered queries exceeds that of SQL servers.

Text field Number field Boolean field Choice field And Or Not Exact date Before-After Date Range Lifespan By ID By folder By tree branch Related content Content type Wildcard Fuzzy Proximity Full text Template parameters Ordering Ordering by multiple fields Mixed ordering Ordering by date Paging Limit Results Jump to page Grouping
Lucene powered queries exceeds that of SQL servers

Provide privacy and security with our powerful permission system

Set allow or deny permissions for individual users or groups on individual content, folders, or tree branches. Managing and visualizing the permission settings is available on the built-in GUI and with the REST API. Super-fast permission resolution is done in memory by a code we’ve been optimizing for years.

See Open Open minor Save Add new Delete Delete Old Versions Run application Publish Approve See permissions Set permissions TakeOwnership Restricted permissions Preview without watermark Preview without Redaction Recall old version Force undo checkout
+32 Custom permissions

We support your development effort with custom services

Anything that can be outsourced saves time and allows you to focus on your business. From answering support tickets to completing projects, we are here to help your team. The Sense/Net CSP development team works closely with our Custom Software Solution development teams and Managed Cloud team to resolve issues quickly.

We have your back with regular updates and emergency bugfix services

We do our best to ship regular updates and bug fixes. We are also ready to support customers when disaster strikes, no matter what causes the disaster.

Flexible licensing without legal complications

The Sense/Net CSP has three licensing models for enthusiasts, corporations, and product developers. In addition, we always give custom price quotes based on answering a few questions, usually followed by a short consultation to find the best order.

Focus on your business, outsource operation, maintenance, and support

Operate your CSP-based solution in our public cloud servers or a totally separated private cloud built specifically for your needs. For utmost privacy, we can install the system on your premises. In all cases, we provide consulting, design, and operation services.

Outsource CSP development and get results in a S.N.A.P.

We deliver Custom Software Solutions and digital products with a short time to market, high product-market fit, and superb ROI. To achieve this, we have combined our 25 years of CMS, ECM, and Content Services Platform experience with agile methodologies to form the Sense/Net Agile Process or S.N.A.P.

Trusted around the globe

Millions of content are stored and managed in Sense/Net CSP installations worldwide by companies of many sizes and industries.

Trusted around the globe world map
Barion Transperfect Keler TransCEND Cordel Vertech Rorentreprenoren MVM Magyar Nemzeti Bank FHB Bank

Brought to you by agile teams of seasoned content industry experts

This software is built by digital natives who strive for excellence and are passionate about supporting digitalization. Customer happiness is no cliché for us. We have experience from hundreds of content-related projects, some of which handle tens of millions of content, while others require banking-level security or have to withstand Black Friday level traffic every day.

Talk to our CSP experts

We are ready to help you evaluate Sense/Net CSP for your next software project or product. So book an appointment, and you can talk to IT experts instead of your typical salesperson.