Skip to content
themes.dev

    New: website theme for Astro and Next.js + Sanity

    Ledger

    The marketing site for your software product, in two editions: Astro, or Next.js with a Sanity Studio. 17 pages, 20+ sections and 3 presets, light and dark, WCAG 2.2 AA.

    Pay once · Both editions · Lifetime updates

    Ledger home page on a phone, light mode
    Ledger home page on a phone, dark mode
    17
    pages
    20+
    sections
    3
    presets
    2
    editions, one license
    0
    axe violations
    99+
    Lighthouse on mobile, Astro

    Home, pricing, about, blog and contact, ready for your copy.

    Every page as it ships, with the invented demo company Meridel. Switch to dark to see the other mode, and click a page to see all of it.

    Open the live demo (opens in a new tab)

    As considered on a phone.

    Every page is checked at phone width in both modes, with its own smaller type and spacing. The mobile menu is one of only two small scripts; the pricing switch works without JavaScript.

    Home on a phone, light mode
    Pricing on a phone, dark mode
    Blog post on a phone, light mode

    Two editions, one license

    Static files or a Studio. Same design.

    Both editions render the same pages from the same sections and presets, so you choose by who edits the site, not by how it looks. Your license includes both.

    Framework
    AstroAstro 7, static output
    Next.js + SanityNext.js 16, App Router and React Server Components
    Content
    AstroMarkdown and MDX in typed collections; page copy in typed data files
    Next.js + SanitySanity Studio with a page builder: pages are stacks of sections, each with its layout and tone
    Blog posts
    AstroMarkdown or MDX, with figures, tables and highlighted code
    Next.js + SanityPortable Text: headings, lists, quotes, links, captioned images, tables and highlighted code
    Demo content
    AstroIn the repository
    Next.js + SanityA seed script imports every page, post and image into your dataset
    Publishing
    AstroRebuild and deploy
    Next.js + SanityPages generated ahead of time, refreshed within a minute or at once with the publish webhook
    Preview
    Astropnpm dev
    Next.js + SanityDrafts beside the form in the Studio’s Presentation tool
    Forms
    AstroAn optional Cloudflare Worker that fails closed, or any form service
    Next.js + SanityA Route Handler that forwards to your endpoint and fails closed
    JavaScript
    AstroTwo small inline scripts: the mobile menu and the announcement bar
    Next.js + SanityOnly the mobile menu and the announcement bar; the pricing switch works without it
    Lighthouse, mobile
    Astro99–100
    Next.js + Sanity96–98
    Deploys to
    AstroCloudflare Workers, Netlify, Vercel or any static host
    Next.js + SanityVercel, or Cloudflare Workers through OpenNext
    Repository
    Astrothemesdev/ledger-astro
    Next.js + Sanitythemesdev/ledger-next

    What's inside

    17 pages from 20+ sections.

    Each page is a short list of sections: hero, features, pricing, FAQ, testimonials, team, form and the rest. Every section takes a layout and a tone, so a new page is a matter of picking and filling, in code or in the Studio.

    Home
    Hero, logo strip, features, product tours, figures, testimonials and a closing call.
    Pricing
    Plans with a monthly and yearly switch that works without JavaScript, a grouped comparison table and an FAQ.
    About
    Story, values, figures, team and open roles.
    Blog
    An index with pagination, and seven posts with reading time, author box and related posts.
    Contact
    A form beside the contact details, with a honeypot against bots.
    Privacy and terms
    Sample texts for the demo company, marked as samples until you replace them.
    Thank-you and 404
    Where forms land, and a page for addresses that do not exist.

    Three looks, one line apart.

    Everything a section draws comes from the preset’s tokens: colours, type, space and corners. Switch the import and the whole site changes, contrast checked in every mode.

    The demo home page in the Ledger preset
    LedgerLight and dark, following the systemPaper and ink: a serif display face, hairline rules, square corners and one ink-blue action.Newsreader, Public Sans, IBM Plex Mono
    The demo home page in the Signal preset
    SignalDarkA dark instrument panel with a lime accent.Instrument Sans, JetBrains Mono
    The demo home page in the Bloom preset
    BloomLightWarm cream and tangerine, with round corners.Bricolage Grotesque, Figtree

    Checked, not promised

    Accessible and fast, page by page.

    These checks ran on every page of both editions, in light and dark, at desktop and phone widths.

    WCAG 2.2 AA
    Zero axe violations on every page, in light and dark, at desktop and phone widths. Every preset’s colours are checked for contrast in every mode and tone.
    Fast on a phone
    Lighthouse on mobile: 99–100 for the Astro edition, 96–98 for Next.js. Self-hosted fonts, only the Latin files, preloaded.
    Forms that fail closed
    Contact and newsletter forms post without JavaScript, carry a honeypot against bots, and refuse submissions until you connect a destination. Nothing visitors send is logged.
    SEO done
    Titles, canonical links, Open Graph images drawn for every page and post, JSON-LD, a sitemap, robots.txt and an RSS feed.
    Design rules, checked
    Colours only from the preset, images with alt text and a size: pnpm lint holds every page to it, yours included.

    Delivery

    A zip, or straight from GitHub.

    Download both editions from your account, or connect GitHub and get read access to the private repositories. Each release is one tagged commit, so updating is a pull.

    After you accept the invitation
    $ git clone git@github.com:themesdev/ledger-next.git
    $ cd ledger-next && pnpm install
    $ pnpm dev      # the demo content, until you connect Sanity
    $ pnpm seed     # then import it into your own dataset
    # a new release later
    $ git pull --tags
    1. 01Buy a licensePay once. The license belongs to your organisation; owners and admins hand out the seats.
    2. 02Connect GitHubIn your account, sign in with GitHub once. We learn only your username, and invite it read-only to both repositories.
    3. 03Pull updatesUpdates are free for life. Access follows your license, and the zip stays in your account next to it.

    Pay once. Both editions.

    Unlimited projects, private, commercial and for clients, with every future update of both editions. Prices exclude VAT; we sell to businesses. License details

    Solo
    1 person
    €59once

    For a freelancer or one developer.

    Choose Solo
    TeamMost teams
    Up to 5 people
    €149once

    A product team: everyone gets their own seat.

    Choose Team
    Studio
    Up to 15 people
    €229once

    An agency building sites for several clients.

    Choose Studio
    Company
    Everyone in your company
    €399once

    No seats to count, ever.

    Choose Company

    What's new

    Updates for both editions, free.

    Full changelog
    1. v1.0.0

      Latest

      The first release.

      Astro

      • Pages: home, pricing (plans with a monthly/yearly switch, a comparison table, FAQ), about (story, values, figures, team, open roles), blog index with pagination, blog posts, contact (form beside the details), privacy and terms shells, a thank-you page for forms, and a 404 page.
      • Presets: Ledger (light and dark), Signal (dark) and Bloom (light), switched with one import in src/styles/global.css. Self-hosted fonts under the SIL Open Font License.
      • Content: collections for posts (Markdown and MDX), authors and site settings (navigation, footer, announcement bar, form endpoints); page copy in typed data files.
      • Blog: prose styles for headings, lists, quotes, code (coloured by the preset), images with captions and tables; reading time, author box, related posts, RSS feed.
      7 more

      Next.js + Sanity

      • Pages: home, pricing (plans with a yearly/monthly switch, a comparison table in groups, FAQ), about (story, values, figures, team, open roles), blog index with pagination, blog posts, contact (form beside the details), privacy and terms shells, a thank-you page for forms, and a 404 page.
      • Sanity: a Studio (studio/) with a page builder of 22 section types, each with its layouts and tones and an optional anchor; posts with a rich-text body (headings, lists, quotes, links, captioned images, tables, highlighted code with a file name) and authors; one Site document for the announcement bar, header, footer and organisation. The Presentation tool previews drafts on the site. pnpm seed imports the demo content and images into a new dataset.
      • Next.js: App Router and React Server Components; pages generated ahead of time and refreshed in the background (a minute at most, or at once with the publish webhook); the read token server-only; a Content-Security-Policy.
      • Presets: Ledger (light and dark), Signal (dark) and Bloom (light), switched with two lines. Self-hosted fonts under the SIL Open Font License, through next/font.
      3 more

    Questions

    Do I get both editions?

    Yes. Ledger is one product: every license includes the Astro theme and the Next.js + Sanity edition, as a zip and as two private GitHub repositories. Use either or both in any project your license covers.

    Which edition should I use?

    The Astro edition if your content can live in Markdown files and you want plain static HTML on any host. The Next.js + Sanity edition if other people edit the site: they get a Studio with a page builder and a live preview, and you never touch the content.

    Do I need a paid Sanity plan?

    No. Sanity’s free plan is enough for this theme. The README walks you through the project, tokens and the seed script in about ten minutes.

    How does the GitHub access work?

    In your themes.dev account, connect your GitHub account once by signing in with GitHub. You then get a read-only invitation to themesdev/ledger-astro and themesdev/ledger-next. Every release is a tagged commit there. Access follows your license: a seat you lose or a refund ends it. The zip stays in your account either way.

    Can I build sites for clients with it?

    Yes, in unlimited projects. A site you build with Ledger for a client is theirs: they may own, host, edit and keep running it without a license of their own. They may not take Ledger out of that site to build other sites.

    Can I see it before buying?

    Yes. The live demo is the Astro edition with every page, and the screenshots on this page show them in light and dark. The demo company, Meridel, and everything in it are invented.

    Do you charge VAT?

    We sell to businesses. Dutch businesses pay 21% VAT; businesses elsewhere in the EU with a valid VAT number pay none (reverse charge); outside the EU there is no Dutch VAT. You get a proper invoice by email.

    Is Ledger an official Astro, Next.js or Sanity product?

    No. Ledger is made by themes.dev and builds on the open-source Astro, Next.js, Tailwind CSS and Sanity projects; it is not affiliated with them.

    Build your site on Ledger.

    From €59 for one person to €399 for your whole company. Both editions, pay once, lifetime updates.

    LedgerFrom €59