Programa is software for interior designers. Every project ends in a list of every product that goes into it: each chair, tap and tile with its size, finish, quantity, supplier and price. Designers call it the schedule, and most of them kept it in Excel. Programa replaces the spreadsheet and connects the designer to the brands on it.

Traviss Orr and Claudio Oyarce founded Programa in Melbourne. Claudio had run the Denfair design trade show. We were their design partner from 2019. We designed the first version, which launched in July 2020 with Melbourne in lockdown, and after the $2m seed round in 2021 they asked us back for Programa 2.0. A lot of 2.0 was work we'd cut the first time round. We continued working with their team into 2022, including the schedule and invoicing flows. I worked with our designer Prakash and Programa's team, including Zoe Lowres, on those later flows.

A schedule is a spreadsheet three people need to read

Designers told Traviss they hadn't gone through years of university to spend their days on "Microsoft Excel, searching Google and chasing quotes". Claudio put a number on it: one project can mean hundreds of products from dozens of suppliers, every one typed in by hand.

What struck us was that every line of that spreadsheet is doing three jobs at once. For the designer it's a specification. For the client it's a price waiting for a yes. For the brand it's an order, if the brand ever hears about it. In Excel the designer sits in the middle and translates between the three by email, all day.

We designed around the schedule. Each product needed a stable place for its specification, with the client's approval and the supplier's quote attached to it. A designer could then work on the same item through selection, pricing and approval, instead of maintaining a separate list for each conversation.

Keep the specification and its cost connected

Each row carries the product's photo, dimensions, finish, lead time, supplier and whether the client has approved it. A designer can get quotes on one row or on the whole room.

approved or pending: the client's say, on every row
A Programa schedule for the living room of a project, one row per product with its dimensions, materials, lead time, supplier and approval status

The default view gives the specification room: dimensions, materials, finish and lead time. Switch to the Financial view and the rows stay put, with trade price against retail, quantities beside totals, and the room against its budget. The person checking the cost is still looking at the products they selected.

the room's budget stays visible above the line items
The Financial view of a schedule, with trade price, retail price, trade discount and totals for each product, grouped by category, and a budget meter

A row still has more detail than the schedule should show at once. Open it and the full specification has room alongside the supplier's contact and a log of who changed what. Requests for samples and quotes start here, next to the product they refer to.

Give the supplier the specification, too

Programa's bet was the connection between designers and the brands they buy from. The designer's half is the marketplace, where a product goes straight from a brand's page onto a schedule.

A brand's profile in Programa, with a hero image, its top products and the brands it distributes
A marketplace product with its dimensions, options, trade pricing and a form to contact the brand

The brand's half is the portal, and it runs on the same rows. Every lead says where it came from: a quote request, a download, or a designer adding the product to a schedule. A quote request arrives with the exact products down to size, colour and finish. The brand can see what it has been asked to price, rather than having to reconstruct the specification from a separate conversation.

A brand's leads, each with the designer, product, quantity, value and source, such as a schedule or a quote request A quote request from a designer, with their message and the products requested with full specifications

the request carries the product specification across to the supplier

Insights tells a brand which of its products designers have been adding to schedules lately. The free tier shows the shape of those reports but blurs the lists behind an upgrade prompt. The paid view reveals the product activity and quote requests.

Insights on the free tier, with the lists blurred behind a prompt to upgrade
preview the report before upgrading
Insights on the paid tier: top products, products recently added to schedules, and recent quote requests

Enter a product once, with every variant

A product name alone isn't enough to order furniture. The same chair can have several sizes, colours and finishes, and each combination may need its own price and stock code. Asking a brand to re-enter the whole product for every combination would repeat most of the form.

We separated the shared product information from its options. The brand enters the sizes, colours, finishes and materials once. Programa generates the combinations with their price and SKU fields, and the brand unticks the ones it doesn't make. The specification can be precise without requiring a separate product page for every variant.

Adding a product as a brand: sizes, colours, finishes and materials as options, and the product variants generated from them, each with a price and SKU
untick the combinations the brand doesn't make

Put follow-up beside the quote

A quote request needs follow-up as well as an initial message. We kept its deadline beside the quote and put the reminder setting directly beneath it. The same panel holds internal notes and the activity log, so someone returning to a request can see what happened and whether it still needs attention.

the overdue reminder is set beside the deadline
A quote from a supplier, with its line items and statuses beside a deadline marked overdue, a reminder setting, internal notes and an activity log

Separate the project from the studio's workload

A designer also needs to know what to work on next. Inside a project, boards group tasks by stage and status. The studio-wide view gathers work from across those projects and groups it by when it is due. A person planning their day shouldn't have to open every project to find the tasks waiting for them.

The studio's work in progress, with tasks from every project grouped into overdue, today, tomorrow, later and unscheduled A project board for the schematic design stage, with cards in to do, in progress, in review and done

Pinboards keep the visual discussion with the project too. A designer can arrange references into titled sections, then open an image with its notes and comments for the client. The presentation gives the image room while keeping the conversation attached to it.

A pinboard for a living room, with images sorted into titled sections and a menu to move one to another room A pinboard in presentation mode, with one image open beside its notes and comments

The mobile capture flow handles an earlier moment: seeing something in a showroom or on a site visit. After taking a photo, the designer chooses between the shared image library and a particular project. That filing decision happens while they still know what the image is for.

Capturing a photo in the mobile app Saving a photo to the image library or a project
file the photo in its project before the context is lost

Keep the invoice's client editable

Invoicing added a different relationship to resolve. An invoice belongs to a project, but the person being billed can change. Programa's Steve pointed out that projects and clients weren't yet directly associated in the product. The design needed to let someone correct an invoice's client after creating it.

I wanted people to be able to add a missing project while creating an invoice, so they wouldn't have to abandon that flow. Steve argued for keeping the first version smaller: create the project first, then invoice it. We worked through that narrower flow while keeping the client selector on the editable invoice, where the billing details could still be changed.

the client can still be changed on the invoice
An editable invoice with a client selector, line items and a setting to charge payment fees to the client

The wording needed to distinguish what the client would receive from what stayed inside the studio. After Steve clarified that the memo appeared on the invoice, I moved it into the send step and renamed the other field Internal Notes. A designer shouldn't have to guess which message they are about to share.

a client-facing memo and an internal note need different names and places

The studio could connect Xero and choose whether to pass payment fees on. On the receiving side, the client saw the studio's name and logo, with Programa credited at the bottom, and could pay by card or bank transfer.

A client's view of their invoices, under the studio's name and logo, powered by Programa A client paying an invoice by card or bank transfer

Where it went

In August 2021 Programa raised $2m in a seed round co-led by Equity Venture Partners and Investible. By then more than 2,000 interior designers and 350 brands had signed up, and designers had specified more than $20m of products through it. Read the funding announcement.

"Highly skilled, reliable and combines strategic insights with great design. They’ve been fundamental to our success."
Traviss Orr
Co-Founder & CEO of Programa

More from Programa

Programa screen
Programa screen
Programa screen
Programa screen
Programa screen
Programa screen
TeamJeremy BlazePrakash GhodkeJessie ObienOmer Erdogan
CategoryVertical SaaS
LocationMelbourne
Period2019 - 2022
Backed byEVP Australia
Jeremy Blaze
Founder & Design Lead
Jeremy is the founder of Never Before Seen and serves as design lead on all of our projects. For over 10 years he's led product and design for over 70 early-stage companies worth $1b+ combined.