Skip to main content

Building a Config-Based Landing Page Framework

· 2 min read

I kept rewriting landing pages for my side projects.

Every time:

  • new repo
  • copy old layout
  • tweak styles
  • adjust sections
  • repeat

At some point I realized I don’t actually enjoy writing JSX for marketing pages.

I enjoy building product logic.

So I started extracting a small framework.

The Idea

A simple rule:

Pages are config, not components.

Instead of writing React components for every section, you define your site in a single site.config.ts.

Example:

export default defineSite({
pages: {
"/": {
sections: [
{ type: "hero", heading: "Build fast" },
{ type: "features", items: [...] },
],
},
},
});

That’s it.

The framework handles:

  • routing
  • rendering
  • meta tags
  • sitemap
  • robots.txt
  • static generation

No CMS.
No drag and drop.
No visual editor.

Just config → build → deploy.

Why I’m Building This

I’m usually busy building backend logic or product features.

Landing pages feel like context switching.

This is for developers who:

  • don’t want to think about layout structure
  • don’t want to write JSX for marketing sections
  • just want something clean and static

It’s opinionated on purpose.

What It Is Not

It’s not:

  • a blog engine
  • a no-code builder
  • a website platform
  • a full framework replacement

It’s just a small tool to ship marketing sites faster.

Current Status

Early stage.

Right now it supports:

  • multi-page sites
  • predefined sections
  • CSS-only templates
  • static output
  • a Next.js wrapper under the hood

Still rough.
Still evolving.

Why Open Source?

Because I’m building it for myself first.

If it helps other developers, great.

If not, I still get a reusable foundation for future projects.

Win either way.


If you’re busy building product logic and don’t want to spend time on landing pages, this might eventually be useful.

I’m building it in public.