v0.53.6

Try our Chrome extension

Chrome store icon Chrome Webstore

Easily add the current web-page from your browser directly into your changedetection.io tool, more great features coming soon!

Changedetection.io needs your support!

You can help us by supporting changedetection.io on these platforms;

The more popular changedetection.io is, the more time we can dedicate to adding amazing features!

Many thanks :)

changedetection.io team

Not yet seconds ago.
            False
        
Not yet seconds ago
Current error-ing screenshot from most recent request
        Quick startHow it worksPricing
          Search ⌘ K
        DocsLogin

            Content as Code

              Val is a NextJS native, local-first, fully type-safe CMS where content is stored as code

              npm create @valbuild
              DocsSign up

          We wanted a CMS that feels small and scales well

          Fredrik Ekholdt, CMS enthusiast and creator of Val

              Suckless

                The Ultimate Developer Experience

                Val is a reaction to CMS that feels like an overkill in every situation. We wanted to create something that both feels small and easy to get started with, but also works for large teams.

                  Content As Code

                    In Val you store the content as code. This enables true end-to-end typesafety, refactorable content and tooling unlike any other CMS.

                        /* This is a .val.ts file. */
                        const schema = s.object({
                          // Schema types are based on JSON and TypeScript built-in types.
                          message: s.string(),
                        });

                        // What makes Val special is that content is defined here (in code):
                        export default c.define("/app/(main)/page.val.ts", schema, {
                          message: "I wrote this in my editor, but I can change it using the UI too!",
                        });

                  True Typesafety

                    When Content is Code, the actual content can be as type-safe as the rest of your app. This does not only mean that you can know that the content can render correctly, you can also quickly understand the shape of your content, without needing extra tooling. You also avoid generated types with all this entails: updates when you forgot to do it, custom github actions to run and verify generated types automatically and, last but not least: ugly-ass types .

                  Refactorable Content

                    It is hard to find the perfect way of structuring your code and your content, but with Val it's at least easy to refactor when you know you made a mistake.

                  A CMS with a LSP

                    The ultimate developer experience must have awesome tools!

                    Vals VS Code extension (which hosts the LSP) and ESlint plugin provides you with instant feedback right in your code.

                  Git based

                    Since your content is code, testing out things locally, creating branches or even preview-branches on Vercel works just as you'd expect.

            Delibirate omissions

              Less, But Better

              Val is designed to be easy to pick up and have a minimum amount of things to learn. That's why we have delibrately omitted the following things:

                No Query Language

                  Less to learn

                  Val does not need any query language since data is built as part of your application. Simple is an overused term these, days, but there's no other way to put it: it is just simpler not to learn ( or force your future colleagues ) a query language to fetch content.

                No Database

                  Less to manage

                  As much as we like databases, requiring one to be able to let editors change an application is neither simple nor easy.

                  Val runs on its own. Even locally. Without an internet connection.

                No Separate Runtime

                  Less to run

                  Content is bundled as part of your code. This means that your page will be up and running even if Val goes down. It also means that it will be able to serve requests as quick as you hosting provider lets you, since there's no fetching required (since you content is literally built with your app).

                No Abstraction Model

                  Less to understand

                  Val does not have its own abstraction model, instead we use JSON and Typescript to build our schemas: a string is a string, an array is an array. Rich text is not a custom format, it is represented using semantic HTML 5. Even Vals internal patches is based on standards (RFC 6902).
            Content As Code

              Val is a NextJS native CMS where content is hard-coded into TypeScript files

              const schema = s . object ( {
              title : s . string () ,
              description : s . string () ,
              ) ;
              export default c . define ( "/src/app/page.val.ts" , schema , {
              title : "This is Content As Code" ,
              description : "Keep reading to learn more" ,
              } ) ;
        Get Started
          npm create @valbuild
      Watch demo
        Capabilities

        Studio, visual editing and AI tooling

        Editors get a real CMS. Devs get the ultimate dev experience.

          Val StudioVisual EditingBuilt for AI

              Overview

                For developers Val is just a library where content is hard-coded into TypeScript or JavaScript files.

                But for editors, Val Studio delivers a true headless CMS experience with a visual editor.

              Expand

      The Ultimate Developer Experience

      Content as code unlocks a seamless developer experience: zero runtime dependencies, full type safety, no query language, and built-in validation with IDE tooling. These features provides LLMs with a harness which enables you an unrivaled agentic coding experience.

      * Type-safe content via Zod-like schemas
      * Local-first workflow
      * Git is the source of truth
      * Deploy without any DB
      * LSP / IntelliSense support: validation, route autocomplete, and binary files directly in your IDE

    No prod DB. No dev DB. Using Vercel or similar, just deploy your app — nothing else required.

      How does it work?

      Watch how editors can create and view drafts, then publish those changes using Val.

      Watch demo

    Use cases

      Lightweight and fast. Maintainable but easy to use.

      Keep reading to see how Val can help you build better web applications.

          * Next.js

            A Better Next.js

          In Val content is hard-coded, type-safe and validated. Although it is a fully fledged CMS, you can also use it as a tool that lets you manage images, validate routes, and work with rich text. Or maybe you just want a good and documented way to decouple content from UI? If that is the case, you can use it without even signing up.

          * AI

            CMS in the age of AI

          LLMs work best when they have a good harness and the correct context. With Val, content is local, type-safe, and validated - Cursor and Claude uses the same tooling: types, schema and Vals validation LSP.

          * Architecture

            Scalable front-end architecture

          You can structure Val in any way you want. The starter template however, is built on the TABS architecture which promotes re-usable sections and makes it easy to build a scalable content-driven front-end.

          Read about TABS →

      Who is this for?

      Val is a CMS for products, not publications. Perfect for web apps with many page types and developer-owned layouts. It is best for low article volume (i.e. less than 10K articles), high structure, and for large teams where type safety and developer experience matter most.

        Perfect for

          * Next.js apps with code on GitHub
          * Product surfaces with many page types
          * Teams that value type safety and review
          * Content under ~10K entries per repo

        Consider if

          * Publishing-heavy site with 100K+ articles
          * You want a hosted CMS that owns your content
          * Stack isn’t Next.js (other frameworks coming)

      FAQ

      A few quick answers about where Val runs best and how it handles growth.

        What is Content As Code?
        What frameworks does Val support?
        How does Val scale?
        Does Val support i18n?
        Do you have Feature X?
        Does Val have any AI features?

    Ready when you are

    Val is free to install — pricing only kicks in when you connect a Pro project.

      Get Started
        npm create @valbuild
    Read the docs

        Hard-coded, super-charged, Content As Code - a CMS with the ultimate developer experience.

          Community

          GitHub Discord

          Legal & Pricing

          Terms of Service Pricing

        © 2026 Val. All rights reserved.

          Privacy Policy
Tip: Highlight text to share or add to ignore lists.
For now, Differences are performed on text, not graphically, only the latest screenshot is available.
Screenshot requires Playwright/WebDriver enabled