Skip to content

Three kinds of publication, two comment streams, and one queue that keeps them civil

A market-news publication with announcements, reporting and commentary as separate content types, member profiles, and a moderation queue that can hold a comment while a person decides.

Thu 17 Sep 2026Evening edition · updated 17:50TNWK 318.4p ▼ 11.6%CQEN 142.0p ▲ 4.2%ORVP 2,214p ▲ 7.9%FBHM 486.5p ▼ 2.1%AMLW 671.0p ▼ 0.8%Sign in · Join
Markets, companies and the argument about bothThe Copperplate Published with Closeprint
Mining · ReportTNWK 318.4p ▼ 11.6%

Tarnwick Resources cuts full-year output guidance after flooding at Ashcombe pit

The copper producer now expects 41,000 to 44,000 tonnes, down from 52,000, and says the lower levels of the pit will stay closed until at least November.

Hannah Oduya Mining correspondent · 07:42Corrected 15:10

TNWK · today · penceSource: exchange feed, 15-min delay

47 comments·Comments on reports are checked before they appear

Housebuilding · Report

Fellbrook Homes holds its dividend as reservations slow into autumn

Sam Adeyemi · 09:15 · 22 comments

The wireReports under 150 words

17:36CQEN

Calder Quay Energy confirms talks on North Sands stake sale

17:04BMRT

Brightmoss Retail names interim chief financial officer

16:48ORVP

Orrin & Vale Pharma trial meets primary endpoint

16:31HSPL

Hessle Point Logistics wins port contract extension

15:52AMLW

Amberlow Insurance flags higher storm claims for Q3

15:10TNWK

Tarnwick report corrected: reopening date is November

14:27FBHM

Fellbrook Homes shares slip after trading update

13:55PNDR

Pendrith Foods completes Leicester plant sale

12:40WYVN

Wyvern Rail sets date for capital markets day

OpinionSigned argument

Martin Kell

Housebuilders are priced for a spring that isn't coming

Reservations tell you more than land banks, and reservations are saying wait.

128 comments · open for argument

Priya Castellane

Why I am still holding the water utilities

Regulated returns are dull. Dull is the point this year.

64 comments · open for argument

Regulatory announcementsAs received

Comments are closed on regulatory announcements, published as released.

17:30CQEN

Statement re possible disposal

16:45ORVP

Phase III topline results

16:00BMRT

Directorate change

11:20TNWK

Director/PDMR shareholding

07:00TNWK

Operational update – Ashcombe

All announcements

Who, what, and how long

Industry

Media & Publishing

Duration

14 weeks

Cooperation model

Fixed price, phased

Services
Publishing platformModeration toolingMember accounts
Integrations
Newsletter deliveryTransactional emailSearch indexingAnalytics
Technologies
LaravelPHPMySQLBladeAlpine.js
Team
1 Project lead2 Full-stack engineers1 QA engineer

Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.

Introduction

What we were brought in to do

The publication publishes market announcements, reporting and commentary to an audience that argues about all three. We built the publishing platform, the member accounts, and the moderation queue that keeps the comments worth reading.

A market publication running regulatory announcements, reporting and commentary to a readership that argues about all three, on a platform where every piece was the same content type with a comments toggle. The engagement was commissioned after a comment thread appeared under a regulatory announcement and had to be removed, which raised a question nobody could answer: why was that possible in the first place?

Full-Stack Engineering

Where the old way broke

Announcements, news and commentary are three different things with three different tolerances. A regulatory announcement should carry no comments at all; a piece of reporting should carry considered ones; commentary is where the audience actually wants to argue. Treating them as one content type gets all three wrong.

One post type with a flag means the editorial policy lives in whoever remembers to set it. That failed in both directions: announcements occasionally carried threads they should never have had, and commentary occasionally shipped with comments off because a sub-editor duplicated the wrong template. Meanwhile moderation was binary (publish or delete), which forced a decision on exactly the comments that needed a person.

Three content types with their own rules, comments attached only where they belong, and a moderation queue where holding is a first-class state. A borderline comment waits for a human; no rule gets to publish it or destroy it.

01

Three types, three policies

Announcements carry no comments, reporting carries considered ones, commentary is where the argument belongs.

Announcement, reporting and commentary are separate content types, each with its comment policy attached to the type itself, so an editor can't accidentally open a regulatory announcement to a comment thread. Commentary carries the argument, reporting carries considered responses under stricter rules, and announcements carry none. The decision is made once, in the model, and nobody has to remember it at publish.

What shipped
  • Comment policy attached to the type, not toggled per post
  • Announcements structurally can't carry comments
  • One decision in the model, no memory test per publish
Content types

Three types, each with its own editorial rules and a comment policy set on the type. There's no per-post toggle

Policy lives on the type Thu 17 Sep 2026 · 17:50RO

Report

Includes the wire

Comment policyPre-moderated

Comments are held on submit and checked before they appear

Editorial rules
  • Named sources or stated basis
  • Corrections kept on the record
  • Wire items are reports under 150 words
Shelf life

Current until corrected or superseded

comments(): hasMany · pre-moderated

Opinion

Signed argument

Comment policyPost-moderated

Comments appear at once, marked unreviewed until a moderator has read them

Editorial rules
  • Bylined and labeled Opinion everywhere
  • Author's holdings disclosed
  • Dated; not updated after publication
Shelf life

Dated argument

comments(): hasMany · post-moderated

Regulatory announcement

Issuer releases

Comment policyClosed

The type has no comment relation, so no post of it can carry a thread

Editorial rules
  • Published as received from the issuer
  • No standfirst, no headline rewrite
  • Issuer, ticker and time of release shown
Shelf life

Permanent record

comments(): not defined on this type

Preview · as published /announcements/A-18872

Reg. announcement
Issuer

Tarnwick Resources plc TNWK

Received · published

07:00:00 · 07:00:02

Operational update – Ashcombe

Tarnwick Resources plc (“Tarnwick” or “the Company”) announces that water ingress affecting levels 6 to 9 of the Ashcombe pit, first reported on 14 September 2026, has not yet been contained.

Pumping capacity on site has been doubled. The Company expects levels 6 to 9 to remain closed until at least November 2026. Levels 1 to 5 continue to operate.

As a result, the Company now expects full-year copper production of 41,000 to 44,000 tonnes (previous guidance: 52,000 tonnes).

The Company will provide a further update at its interim results on 29 October 2026.

No comment section. Comments are not available on regulatory announcements.

Editor · fields on this type

A-18872
IssuerTarnwick Resources plc
TickerTNWK
Released17 Sep 2026 · 07:00:02
BodyAs received · 4 paragraphs
CommentsNot a field on this type

Nothing to remember at publish

There's no switch to leave on. A thread can't be opened under an announcement because the type has no comments.

On screen

Content types: report, opinion and regulatory announcement, each with its comment policy set on the type, beside an announcement previewed as published: as received, with no comment section, because comments aren't a field on that type.

Moderation queue 6 held

Held is a state a comment waits in while a person decides · invisible to readers, visible to its author

All types Thu 17 Sep 2026 · 17:50RO
StatesSubmittedHeldPublishedRemovedOnly a moderator moves a comment out of held.Decided by rules today: 0

Waiting for a person

Oldest first

GPG. PryceReport 58 min

Tarnwick cuts full-year output guidance · On submit · reports are checked first

“…someone on that board knew what the water table was doing.”

SPstockpicker_88Report 42 min

Tarnwick cuts full-year output guidance · On submit · reports are checked first

“Hearing a bid for Tarnwick is coming before the interims. Load up.”

MFM. FarrantOpinion 31 min

Housebuilders are priced for a spring… · Held by Tom Veale at 17:19

“Kell has been short housebuilders for two years and never says so.”

RNR. NkemeluReport 28 min

Fellbrook Homes holds its dividend · On submit · reports are checked first

“The site manager at the Bicester plot told me reservations are half of this.”

ABanon_bearOpinion 16 min

Why I am still holding the water utilities · Held by Ines Mbatha at 17:34

“Castellane's column reads like it was written by the regulator's PR team.”

JOJ. OseiReport 10 min

Calder Quay confirms stake sale talks · On submit · reports are checked first

“Price they'll get is under book. Anyone who has read the 2025 accounts…”

c-771204 Held · 58 min

Submitted 16:52 · G. Pryce
Report

Tarnwick Resources cuts full-year output guidance after flooding at Ashcombe pit

R-40318 · 47 published · 2 held · reports are pre-moderated, so this was held on submit

The pit flooded on the 14th. Ask why the July update called Ashcombe “on plan” — someone on that board knew what the water table was doing.

Submitted16:52 · memberHeld16:52 · type policyNext step: a moderator publishes or removes it
Readers see

Nothing, and not counted as published

G. Pryce sees

Their comment, marked held

GP

Gareth Pryce · member since Mar 2021

214 comments5 ever held0 removed

Open profile
PublishKeep held · add noteRemove… reason required

No timer publishes or deletes this comment. It waits here until someone decides.

02

Held as a first-class state

On screen

The moderation queue, where held is a state a comment waits in while a person decides: six comments waiting, one open with its report, what readers and the author each see, the commenter's history, and publish, keep held or remove.

A borderline comment waits for a human. Nothing auto-publishes it or quietly destroys it.

Held is a real state a comment can occupy, not a limbo produced by a rule failing to decide. A borderline comment enters the queue, stays invisible to readers and available to its author, and waits for a person. Both automatic outcomes (publishing something defamatory, destroying something legitimate) are worse than an hour's delay.

What shipped
  • Held modeled as a state, not as a rule failing to decide
  • Invisible to readers, still visible to its author
  • A delay beats either automatic outcome
03

Reasons kept

Why a comment was removed is recorded, because unexplained moderation is what starts the second argument.

Every removal records a reason from a fixed set plus the moderator's note, and the author is told which. Unexplained moderation starts a second, larger argument about the moderation itself, and a recorded reason is also the only way a moderation policy can be reviewed for consistency instead of defended from memory.

What shipped
  • Reason recorded from a fixed set, plus a moderator note
  • The author is told why, not just that
  • Policy consistency becomes reviewable, no longer a matter of memory
Remove a comment

Every removal records a reason from a fixed set and a note, and the author is told which

Thu 17 Sep 2026 · 17:50RO

Remove c-771219

stockpicker_88 · held 42 min

Report Tarnwick cuts full-year output guidance

“Hearing a bid for Tarnwick is coming before the interims. Load up.”

Reason · required · one of five
R1Unverified allegation about a named person or company
R2Price-sensitive rumour
R3Personal abuse
R4Promotion or spam
R5Off the subject of the piece
Moderator note · kept on the record

States a bid as coming, with no source, under a report on a stock that fell 11% today. Not in the company's statement.

What stockpicker_88 is told

Your comment on “Tarnwick cuts full-year output guidance” was removed by a moderator. Reason: price-sensitive rumour. It presents unconfirmed price-sensitive information as fact.

Cancel · stays heldRemove with reason R2

Moderation log

Thu 17 Sep 2026 · every action, by a person
Filter by reasonR1R2R3R4R5
TimeCommentActionReasonBy
17:48tipsheet_ukc-771207 · reportRemovedR2Rosa Okafor
17:46N. Brightwellc-771198 · reportPublished—Rosa Okafor
17:41tidewatchc-771174 · opinionRemovedR3Tom Veale
17:34anon_bearc-771256 · opinionHeld—Ines Mbatha
17:30E. Ruskc-771190 · reportPublished—Rosa Okafor
17:19M. Farrantc-771230 · opinionHeld—Tom Veale
17:02brokerage-alertsc-771151 · opinionRemovedR4Ines Mbatha
16:57K. Mistryc-771166 · reportPublished—Tom Veale
16:40S. Lindqvistc-771140 · reportRemovedR1Rosa Okafor
16:22P. Amadic-771133 · opinionPublished—Ines Mbatha
16:05harbourlightc-771119 · reportRemovedR5Tom Veale

Removals without a reason: none. The remove button stays disabled until a reason is chosen, so the policy can be reviewed from this log instead of remembered.

On screen

Removing a held comment: a reason from a fixed set of five, the moderator's note, the message the author will receive, and the day's moderation log with a reason on every removal.

Gareth Pryce @gpryce

Opened from the queue · c-771204 · one click from the comment being decided

Back to c-771204 Thu 17 Sep 2026 · 17:50RO
GP

Gareth Pryce

Member since Mar 2021 · Truro

1 comment held now
Comments

214

Reports and opinion

Ever held

5

4 published after review

Removed

0

None, ever

Announcements

—

Not possible on the type

Every time a comment was held

Newest first · none removed
DateOnOutcome
17 Sep 2026ReportTarnwick cuts full-year output guidanceHeld nowWaiting for a person · In the queue now
02 Jul 2026ReportTarnwick trading update: Ashcombe on planPublished after reviewRosa Okafor · Claim sourced to the company's own filing
19 Feb 2026OpinionAre the miners cheap or broken?Published after reviewTom Veale · Robust, not personal
08 Nov 2025ReportCalder Quay's North Sands licencePublished after reviewInes Mbatha · Author edited the second sentence while held
23 May 2024OpinionThe case against copper at these pricesPublished after reviewRosa Okafor · Figures checked against the column

History informs the decision; it never makes it. Nothing on this page publishes, holds or removes a comment on its own.

Where they comment

214 total
131
on reports
83
on opinion
0
on announcements
Recent · published

16 SepReportPublished

Orrin & Vale trial readout: what to watch

Primary endpoint is one thing. The dropout rate in the placebo arm is the question.

14 SepReportPublished

Tarnwick shares fall on Ashcombe water ingress

Worked two winters at Ashcombe. Levels 6 to 9 have always taken water after rain.

11 SepOpinionPublished

Housebuilders are priced for a spring that isn't coming

Kell's right on reservations and wrong on land values. Both can be true.

On screen

A member profile opened from the queue: 214 comments, five ever held, none removed, every hold and how it ended, and where they comment.

04

Profiles as a moderation tool

A commenter with a history is the cheapest signal a moderator has.

A commenter's history (how long they've posted, how much has been held, how much removed) sits one click from the comment in the queue. Prior behavior is the cheapest signal a moderator has, and reconstructing it by searching was costing more time than reading the comment. History informs the decision; it never makes it automatically.

What shipped
  • Commenter history one click from the comment in the queue
  • The cheapest available signal, made cheap to reach
  • Informs the decision, never makes it
05

One set of records

The newsletter sends exactly what the site published, with no second edit to drift from it.

The newsletter is generated from the published records, so the version in an inbox is the version on the site, corrections included. A second editorial pass into a mailing tool is where the drift always starts, and removing it removed a whole category of correction that had to be issued twice.

What shipped
  • Newsletter generated from published records, not re-edited
  • Inbox and site carry the same text, corrections included
  • No second editorial pass to drift from the first
Evening send · 18:00

Generated from what the site published. There's no second copy to edit

Scheduled · 18:00 Thu 17 Sep 2026 · 17:50RO

Preview · as subscribers receive it

Rendered from records
The CopperplateThe evening send · Thu 17 Sep 2026

What we published today, as it reads on the site now.

Reports

Tarnwick Resources cuts full-year output guidance after flooding at Ashcombe pit

07:42 · 47 comments

Corrected 15:10: An earlier version gave the pit's reopening as October. The company said November.

Fellbrook Homes holds its dividend as reservations slow into autumn

09:15 · 22 comments

Opinion

Housebuilders are priced for a spring that isn't coming

Martin Kell · 128 comments

Why I am still holding the water utilities

Priya Castellane · 64 comments

Regulatory announcementsAs received

17:30Calder Quay Energy plc · Statement re possible disposal
16:45Orrin & Vale Pharma plc · Phase III topline results
07:00Tarnwick Resources plc · Operational update – Ashcombe

No comment counts: comments are closed on announcements

You receive this as a member of The Copperplate · Manage email

Composed from published records

7 records · Thu 17 Sep 2026
Source

Site records

Editorial passes

1 · the site's

Corrections

As published

RecordTitleAtComments
R-40318ReportTarnwick Resources cuts full-year output guidance after flooding at Ashcombe pit07:4247
R-40322ReportFellbrook Homes holds its dividend as reservations slow into autumn09:1522
O-9140OpinionHousebuilders are priced for a spring that isn't coming06:30128
O-9141OpinionWhy I am still holding the water utilities12:0064
A-18901Reg. announcementCalder Quay Energy plc · Statement re possible disposal17:30 none
A-18896Reg. announcementOrrin & Vale Pharma plc · Phase III topline results16:45 none
A-18872Reg. announcementTarnwick Resources plc · Operational update – Ashcombe07:00 none

R-40318 · corrected at 15:10

On the site

“…will stay closed until at least November.”

In the send

“…will stay closed until at least November.”

Same record, same text. A correction is made once, on the site.

On screen

The evening send, composed from what the site published: reports and opinion with comment counts, announcements carrying none, and a correction carried exactly as it reads on the site.

The solution

What we built together

  1. 01

    Modeled announcements, news and commentary separately, never as one post with a flag

    Announcement, reporting and commentary are separate types with their comment policy attached to the type, so an announcement structurally can't carry a thread.

  2. 02

    Attached comments to the two types that should carry them, and kept them off announcements

    Comments exist on the two types that should carry them and are absent from the third. Nobody has a toggle to remember.

  3. 03

    Made 'held' a real state, so borderline comments wait for a person instead of being auto-decided

    Held is a real state: a borderline comment is invisible to readers, still visible to its author, and waits for a person instead of being auto-decided.

  4. 04

    Kept the reason a comment was removed, because unexplained moderation is what starts the second argument

    The reason set was drafted with the editor and deliberately kept short, because a long list becomes a shrug and moderators pick the first plausible entry.

  5. 05

    Ran the newsletter off the same records, so a subscriber sees what the site published

    The newsletter had been a separate editorial pass, and retiring it removed the step where the two versions of a correction diverged.

Operational results after launch

3

Content types modelled

0

Comments auto-decided

None

Removals without a reason

1

Editorial passes per send

Content types modeled is a count. Comments auto-decided is zero: no rule publishes or deletes on its own. Removals without a reason is none, enforced by the removal flow requiring one. Editorial passes per send is one, because the newsletter generates straight from the published records.

Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.

Process

Phase by phase

  1. Phase 1: Three Types

    Not One Post With A Flag

    Modeled announcements, news and commentary as distinct types, because their editorial rules, comment policy and shelf life genuinely differ.

    • Content Types
    • Per-Type Rules
    • Category Model
  2. Phase 2: Members

    A Profile Worth Having

    Built member accounts and profiles so a commenter has a history, which is the cheapest moderation tool there is.

    • Member Accounts
    • Profiles
    • Comment History
  3. Phase 3: The Queue

    Held Is A Real State

    Built moderation around a held state, so a borderline comment waits for a person instead of being auto-published or silently destroyed.

    • Moderation Queue
    • Held State
    • Removal Reasons
  4. Phase 4: The Newsletter

    Same Records, Same Story

    Ran the newsletter off the published records, so what lands in an inbox is what the site actually says, with no second editorial pass to drift from.

    • Newsletter
    • Subscriber List
    • Send Composition
Thu 17 Sep 2026Evening edition · updated 17:50TNWK 318.4p ▼ 11.6%CQEN 142.0p ▲ 4.2%ORVP 2,214p ▲ 7.9%FBHM 486.5p ▼ 2.1%AMLW 671.0p ▼ 0.8%Signed in · G. Pryce
Markets, companies and the argument about bothThe Copperplate Published with Closeprint

Companies · MiningReport

Tarnwick Resources cuts full-year output guidance after flooding at Ashcombe pit

The copper producer now expects 41,000 to 44,000 tonnes, down from 52,000, and says the lower levels of the pit will stay closed until at least November.

HOHannah Oduya · Mining correspondent17 Sep 2026 · 07:42 · R-40318

Correction, 15:10. An earlier version gave the pit's reopening as October. The company said November.

Tarnwick Resources cut its full-year copper output guidance on Thursday after water ingress at its Ashcombe pit, first disclosed on Monday, was not contained over the week.

In a statement released at 07:00, the company said levels 6 to 9 would stay closed until at least November and that it now expects 41,000 to 44,000 tonnes. Levels 1 to 5 continue to operate. Shares fell as much as 13% in early trading before recovering slightly.

The company will update the market at its interim results on 29 October. Analysts at two brokers said the revision was larger than they had modeled.

Comments47 published2 held for a moderator

Comments on reports are checked before they appear. A held comment waits for a person; readers see it only once a moderator publishes it.

Add to the discussion, as G. Pryce…
Your comment will be held until it is checkedSubmit for checking

GPG. Pryce16:52 Only you can see this · held since 16:52

The pit flooded on the 14th. Ask why the July update called Ashcombe “on plan” — someone on that board knew what the water table was doing.

Waiting for a moderator. Nothing has been decided.

LHL. Harcourt16:20Published

Levels 1 to 5 still running is the line that matters. Half the output was never from the lower levels anyway.

CBcopperbottom15:41Published

Thanks for the correction note. November vs October is a whole quarter of pumping costs.

Newest first · 2 of 47 published shownShow all

On screen

A report with its comment stream: 47 published, 2 held, the note that comments on reports are checked before they appear, and the signed-in member's own held comment, visible only to them.

About our collaboration

Separating the three content types was the first decision, and it settled an editorial argument that predated the project. Making 'held' a real state was the second, and between them they account for most of what changed about the comment sections.

Phased so the content model was settled with the editor before any moderation work, because the comment policy is a property of the type, not a setting on the post. The held state was the moderation decision that mattered, and the case for it was simple: both automatic outcomes are worse than a one-hour delay.

What we'd carry into the next one

04
  1. 01

    One post type with a flag is how three editorial policies become none.

    A flag puts three editorial policies in one person's memory, and it failed in both directions: threads where there should have been none, and none where they were wanted.

  2. 02

    A binary moderation model forces a decision on exactly the comments that need a human.

    Publish-or-delete forces the decision precisely where judgment is needed, and both automatic answers are worse than making the comment wait an hour.

  3. 03

    Recording why something was removed prevents the argument that follows the argument.

    The argument that follows moderation is about the moderation. A recorded reason is what prevents it, and what makes the policy reviewable at all.

  4. 04

    A newsletter edited separately from the site will eventually contradict it.

    A newsletter edited separately drifts from the site by construction, and the drift shows up first in the corrections, the worst possible place.

Three types, one sample comment

Held is where a comment waits. A person is who decides.

Follow one comment through a report, an opinion piece and a regulatory announcement. Each type carries its own policy: checked first, checked after, or no comments at all. Publish it or remove it, and see what readers, the author and the trail are left with. Switch tabs, or use the arrow keys once one is focused.

Decisions made by rules: 0

Pre-moderatedComments are held on submit and checked before they appear

Reports carry considered comments under stricter rules. A comment is held on submit and appears only after a moderator publishes it.

G. Pryceon “Tarnwick Resources cuts full-year output guidance after flooding at Ashcombe pit” Not submitted

“The pit flooded on the 14th. Ask why the July update called Ashcombe “on plan” — someone on that board knew what the water table was doing.”

Readers see

Nothing yet

The author sees

Their draft

Moderation trail

by people: 0 · by rules: 0

Nothing yet. Submit the sample comment to follow it through the pre-moderated policy.

Illustrative clock times and a sample comment. The states, the reason set and who may move a comment between them are the product's.

Architecture · Laravel, MySQL, Blade, Alpine.js

From a published piece to a decided comment and the evening send

The editorial policy lives in the model, where nobody has to remember to set a flag. Moderation keeps its reasons, and the newsletter reads the same records the site does.

  1. 01 · Source
    Desk publishes, issuer releasesReports and opinion come from the desk. Regulatory announcements are published as received.
  2. 02 · Model
    Three content typesAnnouncement, report and opinion are separate types with the comment policy on the type. Announcements have no comment relation.
  3. 03 · Moderate
    Held as a real stateA borderline comment waits in held, invisible to readers and visible to its author. No rule publishes or removes on its own.
  4. 04 · Record
    Comments, reasons, historyEvery removal stores a reason from a fixed set and a note, and a commenter's history sits one click from the queue.
  5. 05 · Deliver
    Site and evening sendThe newsletter is generated from the published records, so the inbox carries the site's text, corrections included.

What goes live, what stays untouched, what's explained

Held comments, closed announcements & recorded reasons

Borderline comments wait for a person

Held is a real state, not a rule failing to decide. A comment that might be defamatory or price-sensitive stays invisible to readers until a moderator acts, and comments on reports are checked before they appear.

Announcements stay as received

Regulatory announcements are their own type, published as received and with no comment relation, so no editor can open a thread under one by duplicating the wrong template.

No removal without a reason

The removal flow requires a reason from a short fixed set plus the moderator's note, and tells the author which. Every decision is on the record, so the policy can be reviewed for consistency.

Publishing to a readership that argues back, and need moderation you can explain? Scope your build in three minutes.

Scope your build
Have a project?

Let's talk

Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.