Building a Config-Based Landing Page Framework
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.
Links
- GitHub: https://github.com/enxtur/landing-kit
- Home page: https://enxtur.github.io/landing-kit/
- npm: https://www.npmjs.com/package/create-landing-kit
- Live demo: https://landing-kit-demo.vercel.app/
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.