Built for developers

Build with control. Let AI handle the content.

Define your content structure, build with your favorite stack, and give clients a simpler way to manage their website with AI.

  • Your schema, your components, your workflow
  • Type-safe content from code to frontend
  • Clients make everyday updates themselves
your-website / content
1import { defineCollection, text, image }
2  from "@atmyapp/structure"
3
4export default {
5  blog: defineCollection({
6    name: "Blog",
7    fields: {
8      title: text(),
9      slug: text({ unique: true }),
10      cover: image(),
11    },
12  }),
13}
TypeScript@atmyapp/structure
$atmyapp init

Built by you. Managed by your client.

Your next handoff, simplified.

Build great websites.
Leave the busywork behind.

Keep control of your code and your craft. Give clients the tools to take care of everyday changes after launch.

A handoff that stays handed off.

New opening hours, a fresh offer, an updated headline. Clients make the everyday changes themselves, so your next project can have your full attention.

You deliver

The website

They manage

The content

Fewer small requests. More time to build.

Your stack comes with you.

Keep your framework, components, and development workflow. Connect your content through the SDK and build on your own terms.

Next.jsAstroReactTypeScript

Your frontend. Connected to AtMyApp.

Structure you can rely on.

Define the content model in code. Work with typed fields and a clear structure from your schema to your frontend.

titlestring
coverimage
slugunique string

A more complete client offering.

Deliver more than a website. Content, analytics, forms, and hosting work together, with fewer separate services for you to connect and maintain.

Content
Analytics
Forms
Hosting

A better workflow for modern websites

From schema to site — ship faster, stay in control, and let AI handle the busywork.

01
type Post {
title: string
author: Author
}

Define your schema

Describe your content with a simple, typed structure.

02
$ atmyapp init
$ atmyapp push
✓ Schema deployed

Deploy with the CLI

Init and push your schema with two commands.

03
const posts = await
getAllPosts()

Build your site

Use Next.js, Astro, or your stack — fully typed.

04

Change the homepage title

Done — it's live ✨

Hand off to your client

They update everything by chatting with AI.

Build faster with just a few lines

Drop-in SDKs that handle the heavy lifting. Focus on building amazing product experiences while we handle the infrastructure complexity.

content MODULE

Headless Content Delivery

Manage dynamic content with AI-powered updates

  • Global CDN caching
  • Real-time webhooks
  • TypeScript definitions
Explore documentation
integration.js
1// 1. Initialize the client
2import { createAtMyAppClient } from "@atmyapp/core";
3
4const client = createAtMyAppClient({
5  apiKey: process.env.ATMYAPP_API_KEY,
6  baseUrl: "https://api.atmyapp.com",
7});
8
9// 2. List all blog posts
10const posts = await client.collections.list("blog_posts");
11
12// 3. Get a specific post
13const post = await client.collections.get("blog_posts", "post-id");
14
15// 4. Filter published posts with pagination
16const published = await client.collections.list("blog_posts", {
17  filter: F.eq("published", true),
18  order: "created.desc",
19  limit: 10,
20});
Explore the SDK and integration guides.

Install in seconds

Get up and running with your favorite package manager. Drop-in SDKs that handle the heavy lifting while you focus on building amazing products.

npm install @atmyapp/core

Let's talk

Your next project.
See what's possible.

Walk through the integration, explore the developer tools, and see how your clients can manage their own content.

  • A walkthrough tailored to your needs
  • Answers to your questions, from our team
  • No commitment. Just a conversation.
contact@atmyapp.com

Book your demo

Leave your email and we'll find a time that works for you.

We'll use your email to arrange the demo and answer your questions.