ChoryLab Ordering App

A free and secure ordering app, made by one overwhelmed PI for other overwhelmed PIs.

This is a completely free and customizable ordering app for research labs, from one overwhelmed PI to another.

Everyone in your group can request what they need, the right person approves it, and you can follow every order from request to delivery, with your catalog, budgets and chemical safety records all in one place.

I made this so that you can have all of the code, and it will always be free and yours to build on. Once you have your copy, it is yours forever to change and improve. No take-backs. It is for academic and non-profit groups, from research labs of every size to teaching labs, lab courses, and teams of undergraduate and master's students.

I know you love spreadsheets, and this is not taking them away. The app runs as a Google web app on top of a single Google Sheet that you own, so your spreadsheet is still right there whenever you miss it. It is easy to set up and costs nothing to run.

Free for academic and non-profit groups. It runs entirely inside your own Google account and sends nothing back to me.

Made for.

  • Research labs of all sizes From a brand-new lab of two to a big group with a lab manager, plus core facilities. It handles grants, approvals, safety records and a catalog that learns from what you buy. Trainees can order on their own, with a mentor double-checking anything over $100.
  • Teaching labs and lab courses Split the class into teams or run it student by student, and give each one its own budget, with a TA or instructor approving. We use it in our Biotech Design course.
  • Student teams Undergraduate and master's design teams, clubs, and competition teams like our Duke iGEM team.
  • Primarily undergraduate institutions and non-profits Ordering software usually charges per person, which adds up fast for a small department and is especially infeasible for a large class. This one is free no matter how many people use it.
Our lab's ordered items. Confirmations and shipping notices are filed automatically, and a flag appears when a vendor says something arrived but nobody marked it.
Our lab's ordered items. Confirmations and shipping notices are filed automatically, and a flag appears when a vendor says something arrived but nobody marked it.

Why I made it.

Starting a lab is hard, and running one day to day is harder. We work to be responsible with our funding: we try not to waste reagents, not to order the same thing twice, and to know what we have and where it is. It is also a lot for new PIs to figure all of this out in between writing grants and sleeping.

And let's be honest, we all know institutional ordering systems are terrible. If only one person has access, all the work lands on them, it eats up student time that should go to research, and orders quietly get lost. If everyone orders on their own, there is little accountability, and someone buys the same antibody ten times and blows through your entire R01. Different kinds of labs need different systems, and one institutional system rarely fits any of them well.

Every group solves this differently. Some use a shared spreadsheet, some build something in Airtable, and some pay for a service whose features and prices keep changing (rarely downward). I wanted something that works well, that anyone can change, and that a small department or a single course can afford, which in this case means free.

When I started my lab, I wanted a better way to order. A few wrenches got thrown into the plan, my spreadsheet was getting unwieldy, and I wanted orders to show up in Slack, where my lab already talks, so I decided to just solve the problem myself.

In parallel, I teach senior design, Biotech Design (BME 406) at Duke, where an important part of the course is teaching students to plan experiments responsibly, and each team has a budget for its own supplies. A lot of that ordering work falls on our amazing teaching lab staff, so we also wanted something that would work with student groups, and paying a per-seat price is not really an option for a class of 40 or more people managing a teaching budget. This does that too. Learning to budget early matters. When students see what things cost, plan experiments around a budget, and can see where every order stands, they become more thoughtful about how they spend, and that habit follows them into every lab they join.

I will keep improving our lab's version, but I am sharing this one as a starting point rather than something I will keep updating. With tools like Claude, it is now easy to change it yourself, and I hope you make it your own.

Not just for Duke.

The app works at any institution. Your purchasing system, forms, budget codes and vendors all go in Settings, so you can set it up for however your school does things.

Yes, even if you are at UNC. I completely understand that you do not want a Duke blue app, so the colors and logo are yours to change too.

Duke Biomedical Engineering

However, if you are at Duke, request access with your Duke email and I will add all of the Duke-specific things we have, like our purchasing forms, Buy@Duke settings, GL codes and catalog. Some of that is internal to Duke, so it only goes to approved Duke accounts.

How it works.

Secure access through Google

People sign in with their Google account, and nobody gets in until you approve them and choose their role. There are roles because not everyone needs the keys to everything, and nobody wants to personally approve every box of pipette tips. Requesters order, admins place the orders, approvers sign off on anything over your dollar limit, TAs approve for their class, and viewers can look without touching.

Trainees get a role of their own. Undergraduates can order directly, and their graduate or postdoc mentor gets an email to double-check anything over $100. That gives students independence while still keeping an experienced person in the loop. You can adjust the approval limits in Settings.

Emails and Slack

The app sends approval emails, with a one-click Approve button, and daily digests of what still needs to be done. It can also email people directly and post new requests to a Slack channel, where progress shows up as emoji reactions on the original message.

Setting up Slack and the Gmail filters that route vendor emails to the app takes about 15 to 20 minutes, and the setup instructions walk through it step by step.

An approval email. The approver can approve in one click without signing in.
An approval email. The approver can approve in one click without signing in.
Screenshot to add: slack-new-order.png
A new request in Slack, with its progress shown as reactions.

Every order in one place

Every request goes through the same steps. If it is over your limit, an approver signs off, then an admin places the order, and whoever opens the box marks it received. Everyone can see where every order stands, so nobody has to ask "did that ever get ordered?" in the group chat.

Because everything lives in one Google Sheet, you can import your past order history, fix anything by hand, and take your data with you at any time.

A catalog that learns from what you buy

Every item your lab orders goes into the catalog, with its picture, product link, catalog number, pack size and price per unit. The next time someone needs it, they start typing and request it again in a few clicks, instead of hunting for the link someone sent two years ago.

For something new, paste the product link and the app fills in what it can.

Placing a request.
Placing a request.
The catalog, built from what your lab has ordered.
The catalog, built from what your lab has ordered.

Safety first.

Chemical safety is part of running a lab, not an afterthought, so it is built into ordering. When someone orders a chemical, the app looks it up in PubChem, so the CAS number, hazard statements and pictograms fill in automatically. You can attach the safety data sheet to each chemical, so it is one click away for everyone in the lab, along with where the chemical is stored. Your safety officer will be delighted, possibly for the first time.

Chemical records with hazard pictograms, storage conditions, and links to the safety data sheet and PubChem.
Chemical records with hazard pictograms, storage conditions, and links to the safety data sheet and PubChem.

Make it yours.

Admins and owners can change almost everything from one place. Click your name in the top right corner of the app and choose Settings. Owners can see every setting, and admins can see the ordering rules. Nobody needs to touch any code.

Your colors, your logo

Pick your own color palette with a live preview, upload your lab or school logo, and set your lab name and subtitle. Carolina blue is only a few clicks away, and I promise not to take it personally.

I built the app for universities with complicated procurement departments, so it supports purchasing forms, internal codes and standing orders. Every one of those features can be switched off if you want something simple. For a class, turn on groups and budgets, then split students into teams or give each student a budget of their own.

Change it yourself, safely

You do not need to have programmed a day in your life. Tools like ChatGPT and Claude can now make careful changes from a plain-language request, and since the code is yours, you can keep changing it for as long as you like. The setup instructions include my recommendations: practice on a separate copy, change one thing at a time, and keep a copy of what worked.

Lab name, subtitle and logo, set in Settings.
Lab name, subtitle and logo, set in Settings.
Choose your school colors, with a live preview.
Choose your school colors, with a live preview.

Get it.

For a school team, the teacher or adult advisor should send the request.

  1. Request access

    Fill in the short form with your institutional email, the Google account you will copy the app with, your PI or instructor, and a link to your group's page.

  2. Confirm your academic email

    I will send a link to your academic address. This is how I know the request is really from you.

  3. Get approved

    I review each request myself, usually within a few days, and email you the copy link and the step-by-step setup instructions. You will log in with your Google account to make your copy.

  4. Copy and set up

    Make a copy, run one setup function, and publish it for your group. It takes about 30 minutes, and the instructions explain every click.

Questions.

Will my copy get updates?

No, and that is on purpose. Your copy is independent, so nothing changes without you. You have all of the code, so it is yours to keep and change.

Can people outside my group see our orders?

No. Only people you approve can use the app, and only you and the editors you choose can open the spreadsheet. Files people attach are stored in Drive folders the app shares by link so it can display them; the links are long, random and shown only inside the app.

Do I need a Google Workspace account?

No. A free Gmail account works. A shared lab Gmail account is best, so the app does not depend on one person.

Is it Duke-specific?

No. Institution names, purchasing systems, codes and forms all come from Settings. Copies made for groups outside Duke contain no Duke data.

Optional research use

If many groups adopt the app, I would like to write about how and why academic groups adopt shared, customizable lab tools. The request form only asks what I need to approve your request. Once the study has been reviewed by Duke's Campus Institutional Review Board, the approval email will include a link to a short, optional, anonymous survey. I will never publish names, email addresses or anything that identifies your group, and skipping the survey has no effect on access. Nothing from inside your copy of the app is ever collected.

Terms, in short

Copyright © 2026 The Chory Lab, Duke University. It is free for academic and non-profit groups. You are free to use it in your group and change it however you like. That is the point, and I hope you improve it. Please do not share copies or the template link outside your group; anyone else can request their own access. Full terms of use.

Support

This is a tool from one research lab, shared as is, so I cannot promise support or new features. If you get stuck, the troubleshooting section of the setup instructions is the best place to start.

Permissions and privacy.

When you set it up, Google will show a permission screen and call the app "unverified". That only means Google has not reviewed this particular copy. It is your own copy, running in your own account, and nobody else, including me, can run it or see its data.

PermissionWhy
Your spreadsheetsReads and writes the app's own spreadsheet, and any other sheet you choose to link.
Your Google Drive filesCreates the app's folder and saves files people attach. It only works inside its own folder and files you point it at.
Your email addressSo the app knows who is signed in.
Background tasksSends notifications and digests on a schedule.
External servicesOnly the ones you turn on: Slack, ChatGPT or Claude, PDF.co, PubChem, and vendor pages when you add an item from a link.
Send email as youOrder notifications and digests.
Read your emailOnly for the optional email intake, if you turn it on. It looks for vendor emails sent to the addresses you set up, and never sends, changes or deletes email.

The people in your group are asked for much less: when they sign in, the app sees only their name and email address.

What it tracks

Your copy keeps track of orders, the people in your group, the files they upload, and a log of every change with who made it and when. All of it lives in your spreadsheet and your Drive, and you can read, export or delete any of it.

What I see

Nothing from your copy. There is no usage tracking and no connection back to me. The only information I hold is what you put on the request form, kept privately and used to approve access, count how many groups use the app, and email you about updates if you ask. To have it removed, use the contact form.

And a lot of little things.

These are the small features that add up when you are the one running the lab.

  • Storage locations and boxes. Record where each item was put away, down to the box and slot.
  • Default grants. Give each person a default grant ID, so their requests are charged to the right grant automatically.
  • Stock items. Group the different brands of the same thing, like tips, gloves or conicals, and reorder in one click.
  • Item ratings. Lab members can rate items and leave notes, so you know which antibody actually worked.
  • Reused justifications. Reordering something fills in the justification from the last time it was ordered.
  • Duplicate check. A regular sweep flags when two people have requested the same thing.
  • Price comparisons. Record what other vendors charge for the same catalog number.
  • Vendor logins and discount codes. Kept in one place, behind a password.
  • Shipping locations. Save your building and room addresses, with a default.
  • Standing purchase orders. Track them with their dates and limits.
  • Custom DNA orders. Oligos, gene fragments and sequencing, with your own pricing.
  • Bulk orders and past orders. Order many items from one vendor at once, and import your old order history.
  • Invitations. Invite people straight into a role instead of waiting for them to request access.
  • Weekly reminders. Each person gets a nudge about their own orders that need attention.
  • Flags and comments. Report a problem with an order, and the conversation stays on that order.
  • Quiet Slack. Received items are batched into one post, so one person putting away a pile of boxes does not flood the channel.
  • A Chrome extension. Add items to the catalog straight from a vendor's product page.
  • PDF catalog import. Pull items from a vendor's PDF price list into your catalog.
  • Equipment logins. Keep logins for instruments and lab computers with everything else.
  • Download your data. Export everything at any time.

...and probably a dozen things I have forgotten. Since the code is yours, you can add whatever is still missing.

Where the money goes.

The app itself is free and has no subscription. Two optional extras cost a little: the ChatGPT API, which reads messy order numbers and product pages, costs our lab a few cents a month, and PDF.co, which saves vendor emails as PDFs for your records, is about $9 a month. Slack works on a free workspace.

See where the work goes, not just the money

The owner's Analytics tab shows spending by grant, vendor, category and person. It also shows the work nobody sees: who receives and puts packages away, and who keeps restocking the common items everyone uses.

If one person is carrying a disproportionate share, that is worth knowing. It might mean redistributing tasks, setting up a rotation, or making the case for a lab manager. Feel free to show this chart to your chair.

Who marks orders received, split into common lab supplies and everything else.
Who marks orders received, split into common lab supplies and everything else.
Monthly spending with a rolling average, shaded by semester.
Monthly spending with a rolling average, shaded by semester.

Last updated 7 November 2026. Copyright © 2026 The Chory Lab, Duke University. Free to use and change for your own group (terms).