Internative Logo
On-prem content platform

A content platform editors cannot break.

Public site, private member portal and mobile app; one admin panel, on your own server. A CMS that closes mistakes at the start rather than fixing them afterwards.

Your data on your own server: one Ubuntu server, one-script install.

  1. Public site
  2. Private portal
  3. Mobile app
  4. Admin panel

Three surfaces, one admin panel, one API.

Portal CMS in numbers

52

Blocks in 8 categories; view and schema in code

41

Blocks that can draw from a collection

14

Field types, one glossary

11

schema.org types, closed list

33

Robots crawlers; 14 are AI bots

6

Audience types, inherited from the folder

Sound familiar?

Six sentences, six mechanisms.

Each one is a sentence we heard from an organisation; opposite it, the product's answer, as a mechanism rather than a promise.

  • An agency built our site. We call them for every change.

    Building a page, defining a collection and changing a menu need no deployment; the editor does it from the panel and publishes.

  • WordPress became plugin on top of plugin; the design broke within three months.

    The block catalogue is code. The editor places designed sections; no HTML or CSS, no arbitrary colours. The site still looks as designed three months later.

  • We hand out member documents as Drive links and have no idea who sees what.

    Audience is inherited from the folder, every download is logged, and files open through 5-minute signed URLs.

  • A member company left. Its staff can still sign in.

    Closing access is enforced in three places at once, and the confirmation box names everyone whose access is ending.

  • The SEO agency pasted JSON-LD. A year later nobody knows what it does.

    Structured data, sitemap, hreflang and canonical are generated from code. The only thing the editor can touch is a six-field card.

  • We write the weekly bulletin in Word. Moving it to the site takes half a day.

    Paste from Word and the images upload on their own; heading and list structure is kept.

One platform, three surfaces and a connector

Site, portal and mobile: one panel, one API.

The public site, the private member area and that area's mobile app come out of the same codebase. Not three products; one platform.

Site CMS

Page builder, collections, templates, menus, SEO, forms, page pop-up messages; Turkish and English.

Organisation editors

Portal

Organisation and user management, invitations, document library, announcements, events, surveys, teams, notifications.

Organisation admins and portal users

Mobile app

The portal's iOS and Android version, built in Flutter; push notifications, inbox, store release pipeline.

Portal users

Connector

Built-in MCP server and REST API: agents such as Claude, Cursor and Codex write content, generate images and read SEO and traffic data.

Editors and agents

Underneath all of them: one admin panel and one API.

How it works

Blocks are code, pages are data.

A block's look and schema are defined in code and protected by the compiler. Which block sits on which page, which record sits in which collection, is data; the editor writes it and no deployment is needed.

  1. The compiler protects

    Each of the 52 blocks compiles its schema and its view together. An editor cannot place a section the site does not render, because such a section cannot exist.

  2. One field glossary

    14 field types define blocks, collections and portal modules. Not a single hand-written form in the panel; every form is generated from the schema and the API validates with the same schema.

  3. Fill by hand or from a collection

    41 of the 52 blocks have two modes. "Last 6 announcements" is a placement, not a code change: add the block, pick the collection, set the limit. Switching modes never deletes data.

  4. The detail page is designed once

    Next to every field in a template sits an "I write it / From each record" switch. In the reference install, 679 records' detail pages are run by 8 templates; the editor never sees JSON.

  5. "I deleted it and a 404 stayed": not in this system

    Every URL lives in one table; no two records can take the same one. When a published record's URL changes, the 301 is written in the same transaction. Deleting is two steps: the server names what would break, asks for a target URL and writes the 301 itself.

Block picker
  • Page intro
  • Content
  • Image and video
  • List from collection
  • Interactive
  • Form
  • Layout
  • Embed
From collectionAnnouncements

Data source

Fill by handFrom collection
Limit6
I write itFrom each record

Two languages: Turkish at the root, English under /en. A record without a translation is not hidden; it shows with a "not translated" label, and a new translation is copied from the structure.

The editor's day

The panel works like an operating system.

Records open in a drawer from the right, forms stack on top, and open windows are reflected in the address bar. If the phone rings mid-edit, the form shrinks to the dock and nothing typed is lost.

  • Drawer stack, shareable link

    Open drawers live in the address bar (?panel=): shareable, back after a reload, and the back button closes the top one.

  • Dock and a single guard

    Whatever you typed in a minimised form is kept. An unsaved form gives the same prompt on all five ways out: Go back, Minimise, Close and discard.

  • Command palette

    Cmd/Ctrl+K reaches screens and records from one box; Turkish case folding, so typing "ilac" finds "İlaç".

  • Overview: pending work in 9 types

    Collections without a template, draft pages, single-language content, pages missing a meta description, images missing alt text, users with a pending invitation; every row goes to the relevant screen.

  • Ctrl+V from Word

    Images are uploaded to object storage before the document is accepted; base64 never enters the database. Headings and lists are kept, tables drop to plain text with a warning.

ilac sektoru raporu

Screens

Records

Announcement · General assembly invitation
Draft

Announcements · Published · TR and EN

Page: About usDocument: Bylaws 2026User: Deniz Kaya

Design that closes the mistake

Mistakes are not fixed afterwards; they are closed at the start.

Each line says how one user mistake is made impossible.

  • A block the site does not render cannot be placed.
  • An unknown field is not silently dropped; it is rejected by name.
  • The editor never types a system key; every reference is picked by name.
  • Switching between "Fill by hand" and "From collection" does not delete data.
  • No two records can take the same URL; when a URL changes, the 301 writes itself.
  • A published record cannot be deleted without a target URL.
  • A redirect that has taken hits cannot be deleted, only closed.
  • No two heroes on one page: two heroes would mean two h1s.
  • No free HTML, CSS, JSON-LD or arbitrary colours.
  • A document without an audience cannot be published.
  • A choice that takes access away asks first; one that gives it back does not.
  • An unsaved form asks on all five ways out.

SEO

The editor cannot break SEO.

The only thing the editor can touch is a six-field card. Code generates everything else: canonical, hreflang, Open Graph, JSON-LD, sitemap, robots.txt and llms.txt.

  • Six-field card

    Title (65), description (158), keywords (240), share image, canonical, hide. Limits are enforced at write time; a live search-result preview sits beside the card.

  • Code generates

    Canonical, hreflang (published siblings only), x-default, Open Graph; BreadcrumbList and Organization on every page, FAQPage on the FAQ block; 11 schema types as a closed list; sitemap with lastmod and priority.

  • 33 crawlers, 14 of them AI bots

    robots.txt is switched per crawler from the panel: 7 search, 5 social, 14 AI, 7 SEO tools. Googlebot cannot be blocked; portal and API paths are always closed.

  • llms.txt and Google cards

    You decide what AI crawlers get: two languages, summary and full. Connect Search Console and GA4 and the panel shows sitemap and traffic cards.

SEO card
  • Title65
  • Description158
  • Keywords240
  • Share image
  • Canonical
  • Hide
organisation.org › announcements › general-assembly-2026

General Assembly 2026 Invitation | Organisation Name

Date, agenda and participation terms of the 2026 general assembly. Member-only documents are on the portal.

Crawler policy
  • Search7, open
  • Social5, open
  • AI14, closed
  • SEO tools7, closed

Portal

The member area is not an add-on; it is half the product.

Organisation and user model, audience inherited from the folder, signed downloads, notifications and the mobile app all run on the same API. Customised at code level to your needs.

  • Invite-only, closed area

    Accounts open only by invitation from the panel: a single-use link valid for 72 hours. Sign-in by password or email code. You know who is inside at all times.

  • Closing access is one button

    Mark an organisation as "left" and the confirmation box lists by name everyone who will lose access. Once confirmed, it is enforced in three places at once; open sessions close too.

  • Who sees what: one answer

    Six audience types (everyone, role, category, organisation, team, person) are inherited from the folder tree. A document without an audience cannot be published; if a folder has no open document in its subtree, not even its name is returned.

  • Signed downloads, logged trail

    Files sit in private object storage and open through a 5-minute signed URL. The download record is written before the URL is generated; an external short share link carries an open counter and an expiry date.

  • Announcements, events, surveys, teams

    Announcements use the site's block editor; events are online, in person or hybrid with a reminder 24 hours before; surveys link to an external form; deleting a team never widens access.

  • Notifications and unified search

    Push and an in-app inbox, triggered by announcements, documents, events and reminders. One search box scans six buckets and returns only what you can see.

Document library
  • Regulations and bylaws
  • General assembly documents
  • Organisation-onlyOrganisation

Audience

  • Everyone
  • Role
  • Category
  • Organisation
  • Team
  • Person

The signed URL lives 5 minutes; the download record is written first.

Mark organisation as "left"

If you confirm, these people lose access and their open sessions are deleted:

  • Deniz Kaya
  • Ece Arslan
  • Mert Yıldız
CancelClose access

Scale: thousands of documents, hundreds of users; in the reference install the audience filter over 1,300 documents takes 15 ms.

Mobile app

Your member area on the phone, under your brand.

The portal's iOS and Android app, built in Flutter, is part of the product; it ships under your brand name and your store accounts.

  • Flutter, iOS and Android

    13 screens, 5 tabs. Same API, same audience rules; announcements render on the phone with the same content.

  • Push and inbox

    Notification permission only on a button the user pressed; every sign-out forgets the device, so on a shared phone a colleague's notifications do not follow you. Unread badge, swipe to dismiss, undo.

  • Documents in your pocket, not copies

    Server-paginated list, search, folder filter; the file is handed to the system viewer through a signed URL and leaves no permanent copy.

  • Tour and store pipeline

    A per-screen tour with hints after sign-in, tested with screen readers and large text. CI with one-button beta or store release, 84 tests.

Ready for iOS and Android; closed user apps go through Apple's unlisted distribution channel.

Home
  • Home
  • Agenda
  • Documents
  • Calendar
  • Resources

AI agents

You connect your agents with confidence.

Built-in MCP server and REST API: Claude, Cursor and Codex list, write and update content; generate images; read SEO and traffic. Every write is a draft, every publish is a human approval, every step is logged.

Connect Claude.ai in three steps

  1. Add the connector

    In Claude.ai, choose "Add custom connector" and paste your organisation's API address.

  2. Consent screen

    The browser goes to the admin panel; the consent screen shows the client's name, the requested scopes and the duration. You click "Allow"; no token is copied.

  3. Tools match the scopes

    The tool list is filtered by scope; an agent does not plan with a tool it cannot see. A persistent API key for Cursor, Claude Desktop, Claude Code and Codex.

For Cursor, Claude Desktop, Claude Code and Codex you pick a name and scopes and copy the configuration block; the key is never shown again.

Four scopes

  • Read content

    Lists, fetches, searches, describes the type.

  • Write content

    Creates and updates; a create is always a draft.

  • Publish

    A separate scope: a key that writes drafts cannot publish.

  • Read form inboxes

    Lists and fetches submissions.

The write safety net

  • Every write is a draft

    A create is always a draft; the status cannot be changed through the payload. Publishing happens when a human explicitly says "publish".

  • The agent never writes JSON

    It sends Markdown for rich text and the server converts it to Blocks. The "describe type" tool says which field accepts what.

  • Deleting asks, editing finds the sentence

    If a populated image is about to be deleted, the server refuses by name and asks for explicit permission. In a long body you say "find this sentence, at most 1"; if the match does not hold, nothing is written.

  • Every step logged, 301 automatic

    Every write leaves an audit row: source, actor, key, approving human, changed fields. If a published record's URL changes, the 301 writes itself.

  • Text generation

    Summaries, meta descriptions and the sibling text in the other language are written in the brand voice; the voice changes from the knowledge base, no deployment needed.

  • Image generation

    A preset per image slot: target size and crop live in the preset, the agent changes the brief and cannot change the geometry.

  • SEO research

    Keyword, intent, SERP and difficulty; the per-call cost is written in the tool description.

  • Semantic search

    Content and records are indexed with meaning vectors (embeddings); the agent searches for "something like this" instead of having to hit the keyword.

The agent produces, a human decides: every write a draft, every publish a human approval, every step logged.

Your product

The member area your way, the motion from code.

Portal CMS is not bound by the "as is" limit of a packaged SaaS. The source code is at Internative; we shape the member area, the blocks and the terminology to your organisation together.

The member area is customised at code level

Modules, fields, business rules and the interface are adapted to your needs; so are brand and terminology: "member company" in an association, "dealer" in a franchise.

  • Modules and fields specific to you
  • Your own business rules
  • Brand and terminology adaptation

Motion with GSAP

The public site carries motion designed with the GSAP animation library: sections that reveal on scroll, sliders, counters, a logo strip. Motion lives in code; the editor cannot break it.

  • Sections and counters that reveal on scroll
  • Respects the reduced-motion preference
  • Designed motion the editor cannot break

Internative: since 2017, 100+ enterprise clients, 400+ projects.

Who it is for

Any organisation that offers a closed area to its members or clients.

The common thread: a public corporate site plus documents, announcements and events only certain people can see. It also suits organisations that must keep their data on their own server.

  • Associations, chambers, unions, federations

    Member-only documents, announcements and events; general assembly documents, bylaws and regulations in one place.

  • Franchise and dealer networks

    Dealer-only documents and campaigns; when a dealer leaves, its staff's access closes with one button.

  • Educational institutions

    Parent and student portal, course documents, announcements; audiences by class or programme.

  • Consulting and law firms

    A client-specific file area, signed downloads and a download log; access closes when the client leaves.

  • Manufacturers and distributors

    Dealer and service portal, technical document library, product announcements and a training calendar.

  • Industrial zones and business parks

    Announcements, documents and events for participant companies only; audiences by organisation, every download logged.

  • Holdings and group companies

    Corporate site and subsidiary portal from the same panel, with brand and terminology adapted.

  • Foundations and public-adjacent institutions

    Institutions required to keep data on their own server; external services for delivery only.

On-prem and security

Application, database, queue and edge on your server.

One Ubuntu server, no containers, a single install script. External services are for delivery only and replaceable. Deployment is gated, backups are nightly, guards are structural.

One box

  • Ubuntu
  • MongoDB 8
  • Dragonfly (Redis protocol)
  • Caddy (automatic TLS)
  • Three applications under PM2
  • 848-line install script and a five-item manual checklist

External services (delivery only)

Opened in your name or replaced with an S3-compatible alternative (such as MinIO) on your own server; the application and the database stay on your server.

  • S3-compatible object storage: media and documents
  • Email delivery
  • Turnstile: bot gate
  • OneSignal: mobile push
  • Google Search Console and GA4 (optional)

Passwordless sign-in, opaque sessions

Panel sign-in by email code behind a bot gate; sessions are stored as hashes and can be revoked instantly; panel and portal carry separate cookies and separate signing secrets.

Gated deployment

Triggered by hand only; 16 steps, 6 gates run before any file is touched; health says "ok" only when the database and the queue answer.

Nightly backup

A full database archive to S3-compatible storage every night; 20-day retention (90 at most), scheduling and "Back up now" from the panel; restore with standard mongorestore.

Structural guards

Rate limits in the database, SVG rejected, file type from content (not the extension), SSRF-protected remote images, an embed allowlist; the download record is written before the URL is generated.

How you get it

Six steps from discovery to operations support.

The on-prem model: adapted to your organisation, installed on your server, your team trained, operated by Internative.

  1. Discovery

    Needs, collections and the member model are mapped together.

  2. Adaptation

    Brand, terminology, collections, blocks and the member area take shape around your organisation.

  3. Installation

    A single-script install on your server; external service accounts are opened in your name.

  4. Data migration

    The old site, documents and redirects are moved; old URLs are kept with 301s.

  5. Training

    Editor and admin training; the built-in help stays in the panel.

  6. Operations support

    Deployment, backups and updates are operated by Internative.

Price and timeline by proposal per project; the discovery call is free.

FAQ

Frequently asked questions

Yes. Application, database, queue and edge run on a single Ubuntu server and install with one script. An S3-compatible store for media and one external service account each for email and push are opened in your name.

The look of the blocks is designed in code and protected by the compiler. You build pages from blocks, define collections and edit menus. Internative adds new block types; the site still looks as designed three months later.

No. There is a rich-text editor, paste from Word and designed blocks. No free HTML, CSS or arbitrary colours.

Structured data, sitemap, hreflang, canonical and robots are generated by code; the editor fills in a six-field card. Connect Search Console and GA4 and the panel shows sitemap and traffic cards.

No. The portal is closed; every account opens by invitation from the panel. You know who is inside at all times.

You set the status to "left" with one button; the confirmation box lists by name everyone who will lose access. Once confirmed, their open sessions close; they cannot sign in or see documents.

In a private object store with no public URL. Every document and folder has an audience; a user sees only what is open to them, downloads through a 5-minute signed URL, and every download is logged.

Yes. The portal's iOS and Android app ships under your brand name and your store accounts. Closed user apps go through Apple's unlisted distribution channel.

The database is backed up every night as a full archive to object storage; scheduling and retention are set from the panel. Restore is with standard mongorestore, independent of the product.

Yes. The built-in MCP server and API connect Claude, Cursor and Codex; semantic search is included. Every write is a draft, publishing is a separate permission, every step is logged.

The discovery call is free.

We map your collections, member model and customisation scope together; the demo runs on an example close to your organisation.

Internative: since 2017, 100+ enterprise clients, 400+ projects.

Request a demo

Tell us about your organisation, your user count and your current system; we will come back with the installation and customisation scope.