The Lucern editor · macOS private beta

Make it work.
Know why
it works.

Build your code. Build your understanding.

The AI code editor that helps you inspect each change, learn beside your project, and practice what clicks.

Follow the light into your code

Understanding has a path.

The answer is
in your code.

Why does a $55 order still pay for shipping? Follow the value to find out.

  1. 01Ask in context
  2. 02Follow the value
  3. 03Understand the change
storefrontCode Learn · Practice
A question from your project

“Why does this $55 order
still charge shipping?”

TS checkout.ts totalDue
  1. const subtotal = sumItems(cart);
  2. const discount = discountFor(code, subtotal);
  3. const shipping = shippingFor(subtotal - discount);
Subtotal$55.00
Discount− $10.00
Shipping sees$45.00

The answer is in the calculation.
Follow the value, one line at a time.

Illustrative product walkthrough · no project connected

01 / 03The editor

Follow the rule.

You traced the value in checkout.ts. Follow shippingFor into pricing.ts to inspect the rule behind it.

Lucern explains line 7 of checkout.ts: shipping is priced on the total after the discount, not on the subtotal.
CodeLearnPracticestorefront
checkout.tspricing.tscart.ts
  1. import { sumItems } from './cart';
  2. import { discountFor, shippingFor } from './pricing';
  3. export function totalDue(cart: Cart, code?: string) {
  4. const subtotal = sumItems(cart);
  5. const discount = discountFor(code, subtotal);
  6. const shipping = shippingFor(subtotal - discount);
  7. return subtotal - discount + shipping;
  8. }

Assistant

Follow shippingFor into pricing.ts.

Follow the calculation in checkout.ts.

main · checkout.ts · TypeScript
Illustrative product walkthrough · storefront

02 / 03Review

See the change. Know its impact.

Compare the current rule with the proposal. Trace the edge case before deciding what to keep.

The current rule charges $5.99 for a positive amount. The proposed rule makes amounts of $50 or more ship free. A $55 order with a $10 discount reaches shipping as $45 and still pays $5.99.
CodeLearnPracticestorefront
checkout.tspricing.tsReview: pricing.ts

Current · pricing.ts

return amount > 0
  ? 5.99 : 0;
A positive amount pays $5.99.

Proposed · one added rule

  1. export function shippingFor(amount: number) {
  2. if (amount >= 50) return 0;
  3. return amount > 0 ? 5.99 : 0;
  4. }

The request

Make orders of $50 or more ship free.

Compare the rules, then check which amount actually reaches shipping.

main · Review: pricing.ts · TypeScript
Illustrative product walkthrough · storefront

03 / 03One editor

Code. Learn. Practice.

Understand a pattern beside your code. Try it, then bring it back to your project.

  1. Your project
  2. Understand the pattern
  3. Try it yourself
Learn why a discount comes off before tax. Try a local calculation with three real checks, then return to checkout.ts to see the same discount-before-shipping pattern. Scrolling alone does not complete the exercise.
storefront
checkout.tspricing.tscart.ts
  1. const subtotal = sumItems(cart);
  2. const discount = discountFor(code, subtotal);
  3. const shipping = shippingFor(subtotal - discount);
  4. return subtotal - discount + shipping;

Keep building your understanding.

The shipping change is reviewed. Explore the same pricing order in a short lesson.

main · checkout.ts · TypeScript
Illustrative product walkthrough · storefront

Who it's for

Start where you are.
Go further with your code.

Your first project. Your next release. Your next unfamiliar stack. Choose your starting point.

YOUR WAY THROUGH / 01

“I built this. But why does it work?”

Build something real. Ask about the line in front of you, then try the idea yourself.

  1. 1Open your project
  2. 2Explain a line
  3. 3Try a small challenge
FROM THE STOREFRONT WALKTHROUGHconst shipping = shippingFor(subtotal - discount);

The discount comes off first. Shipping is calculated on what the customer actually pays.

A working project, and a reason behind every decision.

Before you join

A small beta.
A clear starting point.

For developers building real projects who want to understand the code they ship. Newer developers are welcome, too.

Built by Rahil Sheth. Questions or feedback? Email me.

Request an invitation
What am I signing up for?

A place on the private beta waitlist, rather than an immediate download. We will email you when an invitation is available. There is no payment at signup.

What is Lucern focused on?

Building with an agent, understanding proposed changes, and learning and practicing beside your project. The walkthrough above illustrates that workflow; it is not a live instance of the IDE or a guarantee that every interaction is available today.

Which computers will the beta support?

We are starting with macOS. Use a recent version of macOS; the exact operating system and hardware requirements will be included with the software. Windows and Linux access is not being offered on this waitlist.

Is the beta free, and when will I get access?

The private beta is free. Invitations will go out as space becomes available; we are not announcing a fixed access date. Pricing after the beta has not been announced.

Will this website access my code?

No repository connection or code upload is requested on this site. The code in the walkthrough is a sample storefront. The IDE’s code handling and AI provider details will be shared before you connect a project.

What happens to my email?

We store your email, optional build preference, and signup time to manage the waitlist. We use Resend to send welcome notes and beta invitations. A welcome note confirms your place on the list; it is separate from an invitation to access the beta. Read our website privacy notice for the details.

04 / Your next chapter · Private beta

Join the waitlist.

A free private beta, starting on macOS. Leave your email and we will send an invitation when there is a spot.

A little light. A clearer way forward.

A little guidance.
Then it’s your turn.