# Developer Platform

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><h4><i class="fa-globe">:globe:</i></h4></td><td><strong>@</strong>arcend/core</td><td>Start an API in minutes using Arcend’s lightweight server, route loader, and request/response primitives. No boilerplate, no magic.</td><td><a href="https://github.com/ArcendFramework/arcend-core">https://github.com/ArcendFramework/arcend-core</a></td><td><a href="https://3933413097-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJhJab19UO52sYMUv6o4n%2Fuploads%2FfaoS1s2yrDql9cr2qZfj%2Fcore.png?alt=media&#x26;token=b344aafc-0c78-4d08-8cfe-ef95cda492f7">core.png</a></td></tr><tr><td><h4><i class="fa-masks-theater">:masks-theater:</i></h4></td><td><strong>@</strong>arcent/auth</td><td>Use password hashing, JWT signing, and session management as standalone utilities. Arcend Auth gives you the primitives — you decide the structure.</td><td><a href="https://github.com/ArcendFramework/arcend-auth">https://github.com/ArcendFramework/arcend-auth</a></td><td><a href="https://3933413097-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJhJab19UO52sYMUv6o4n%2Fuploads%2FGa8wBmph2VMqTDFC3K8q%2Fauth.png?alt=media&#x26;token=d98f56e9-0281-4c7b-a8ed-dc3f12c0c65a">auth.png</a></td></tr></tbody></table>

### First Usage

Starting a server in Arcend is intentionally simple. A few lines are enough to spin up an API, load your routes, and begin handling requests without extra setup or hidden configuration. Just create a server instance, point it to your routes, and you're ready to go.

{% tabs %}
{% tab title="index.ts" %}

```typescript
import { Server } from '@arcend/core';

const port: number = 4000;
const sv: Server   = new Server({port: port, cors: 'http://localhost:3000'});
sv.listen(async() => {
    await sv.loadRoutes('routes');
    console.log('API listening on: http://localhost:' + port);
});
```

{% endtab %}

{% tab title="routes/route.ts" %}

```typescript
import type { ArcRequest, ArcResponse } from "@arcend/core";

const GET = async(req: ArcRequest, res: ArcResponse) =>
{
    return {
        query: req.query,
        body: req.body,
        headers: req.headers,
        method: req.method,
        path: req.path
    };
};
export { GET };
```

{% endtab %}
{% endtabs %}
