First Steps

This guide will walk you through creating your first Akinon UI extension in minutes. By the end, you'll have a working extension running locally and understand the development workflow.

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js 24.5.0 or higher (Downloadarrow-up-right)

  • A package manager: pnpm (recommended), npm (comes with Node.js), or yarn

  • A code editor: VS Code/Cursor, Zed, WebStorm, or your preferred editor

  • Basic knowledge of: React, TypeScript, and modern JavaScript

Verify Your Setup

# Check Node.js version
node --version
# Should output v24.5.0 or higher

# Check npm version
pnpm --version

Quick Start: Create Your First Extension

The fastest way to get started is using create-akinon-app:

pnpm create akinon-app@latest my-first-extension

This command will:

  1. Prompt you to choose an extension type

  2. Scaffold the project structure

  3. Install dependencies automatically

  4. Set up development tooling

Interactive Setup

You'll see a series of prompts:

Understanding Extension Types

Plugin: Best for widgets, inline tools, or contextual features

  • Embeds within specific page areas

  • Receives parameters from the host

  • Lightweight and focused

  • Example: Order status widget, quick action toolbar

Fullpage: Best for dashboards, management interfaces, or complex workflows

  • Takes over the entire content area

  • Full routing capabilities

  • Can define menu items

  • Example: Campaign manager, analytics dashboard

Multi-plugin/Multi-fullpage: Advanced setup for multiple related extensions

  • Share code between extensions

  • Single deployment URL

  • Consistent state management

Development Workflow

1. Start Your Extension

Navigate to your project and start the development server:

Your extension is now running at:

  • Plugin: http://localhost:4002

  • Fullpage: http://localhost:4001

2. Test in Development Shell

Extensions are designed to run inside shell applications. To test yours locally:

The development shell runs at http://localhost:4000 and embeds your extension, simulating the production environment.

Why use the development shell?

  • Tests communication with the host application

  • Verifies data sharing and actions

  • Simulates realistic integration

  • Enables debugging shell-specific issues

3. Make Your First Changes

Let's customize your extension to understand the structure.

For Plugin Extensions

Open src/components/Content.tsx:

Save the file and watch your browser hot-reload with the changes.

For Fullpage Extensions

Open src/pages/Home/index.tsx:

4. Add a New Component

Let's create a reusable component using Akinon UI Kit:

Edit src/components/UserCard/index.tsx:

Export it from src/components/index.tsx:

Use it in your pages:

Project Structure Explained

Plugin Project Structure

Key Files

src/config.ts Defines your plugin configuration:

src/providers.tsx Sets up React context providers:

shell.config.js Configures the development shell:

Using Akinon UI Kit Components

Your extension has access to Akinon's comprehensive component library. Here are common patterns:

Layout Components

Form Components

Data Display Components

Communicating with the Shell

Accessing Shared Data

The shell provides data to your extension:

Invoking Shell Actions

Request the shell to perform actions:

Navigate within the shell application:

Internationalization (i18n)

Your extension supports multiple languages out of the box.

Adding Translations

Edit public/locales/en/translation.json:

Edit public/locales/tr/translation.json:

Using Translations

The shell automatically synchronizes locale changes with your extension.

Testing Your Extension

Running Tests

Writing Tests

Example component test:

Building for Production

When you're ready to deploy:

This creates an optimized build in the dist/ directory:

Deployment

  1. Configure: Configure your application for ACC integration

  2. Host your build: Build and deploy your application with ACC

  3. Related Product: (Optional) Communicate with Akinon team if your extension is not for Omnitron

Next Steps

Congratulations! You've created your first Akinon UI extension. Here's what to explore next:

Dive Deeper

Common Tasks

  • Create a multi-page fullpage application

  • Implement data fetching patterns

  • Work with forms

  • Build tables with filtering

Get Help

Troubleshooting

Extension not loading in shell

  1. Ensure your dev server is running (pnpm dev)

  2. Check shell.config.js has the correct URL

  3. Verify ports are not in use by other applications

  4. Check browser console for errors

Components not styling correctly

  1. Import Akinon fonts: import '@akinon/fonts-jost-variable'

  2. Import UI utilities: import '@akinon/ui-utils'

  3. Ensure AkinonUIProvider wraps your app in providers.tsx

  4. Ensure all components has the same Ant Design version (see Changelogs)

Cannot communicate with shell

  1. Verify AppClientProvider is configured with correct settings

  2. Check config.ts has forceRedirect: true in development

  3. Ensure you're using the development shell (pnpm dev:shell)

Summary

You've learned how to:

  • ✅ Create a new extension with create-akinon-app

  • ✅ Understand project structure and key files

  • ✅ Use Akinon UI Kit components

  • ✅ Communicate with the shell application

  • ✅ Add internationalization

  • ✅ Write and run tests

  • ✅ Build for production

You're now ready to build production-quality extensions for Akinon's platform!

Last updated

Was this helpful?