shadcn.io is not affiliated with official shadcn/ui
Build and Deploy Settings Block for React
A build settings panel for a static-site host: a preset fills the folder and commands, and a dark terminal writes the build log from the fields, or stops at the error a real runner would give.
Installation
Overview
Show people what their build settings will do before they save them, with this build and deploy settings panel for React with Base UI. A hairline frame with a plus mark on each corner leads with a sentence worked out from the fields ("builds apps/web with npm run build, publishes dist/ to Europe and redeploys on every push to main") and says whether the simulated build passes. A Native Select of presets (static site, Node server, Docker image) fills the root directory, the install command, the build command and the output directory together; a select picks the Node version, a Segment Group the region and a Switch turns auto-deploy on or off. Beside the form a terminal, dark whatever the theme, writes the log as you type: it changes into the folder, installs, builds and looks for the output, or stops at what a real runner would say, such as a missing script, a command it has never heard of or an output folder the build didn't write. An action foot counts unsaved changes beside a Shine Button that saves them in the page. It's built from Native Select, Segment Group, Switch, Input, Field, Button, Shine Button and Guides, with a CSS entrance only. For a hosting dashboard, a CI service or any product that builds a site from a repository.
FAQ
How do I change the presets and the sample repository?
Edit PRESETS (each has a root directory, install and build commands and an output directory), APPS (the sample repository: each app has its folder, its scripts, the folder its build writes and whether it holds a Dockerfile) and SAVED, which holds what the account has stored when the page opens. TOOLS and RUNNERS list the commands the sample runner knows. The lead sentence, the log and the unsaved count are all worked out from the fields.
What does the log do, and does anything build?
Nothing builds. The log is a pure function of the fields: an unknown folder stops at "No such file or directory", an unknown command at "command not found", a script the app doesn't have at "Missing script", Docker in an app without a Dockerfile at the error Docker gives, and an output folder that isn't the one the build writes at "not found". An empty install command is skipped, an empty build command serves the folder as it is, and a Docker build ignores the Node version and the output folder. Edit a field and the log follows at once.
Why is the terminal dark in a light theme?
A terminal is dark by nature, so it keeps the dark scope and everything around it follows the theme. Its text sits on the dark surface at full contrast, each line has a sign and, for assistive technology, a spoken word (command, output, note, problem or done), and the region scrolls and takes focus so a long log can be read by keyboard.
What stays local, and how do I make it real?
Everything. Save keeps the settings in this page's state, and the log is the simulation above. To make it real, post the settings to your server, run the build in a container or a runner, and stream its real output into the same list, one entry per line. The fields can validate against the repository's real folders and scripts instead of the sample.
When does it refuse to save?
Save checks the root directory and the output directory when it is pressed: a root that is empty or leaves the repository (an absolute path or one with ..) and an output folder that is empty when the build writes files are marked, read with their field, and focus goes to the first one. An unknown folder is not a refusal: the log shows the error a real build would give, so you can still save a setting for a folder you are about to create.
How does it look on a phone?
The form comes first and the log under it, in a box of fixed height that scrolls inside itself, so nothing moves as lines appear. Each field has a visible label and a reserved line for its problem, the region is a group of three buttons and the action foot stays pinned to the bottom of the screen with the status line, which says what changed and what was saved.
Related
- Pro
SMTP Settings
Domains and deliveryAn outgoing mail settings panel that leads with how mail will leave, a server form with presets, an encryption choice and a masked password, beside a dark terminal that plays a simulated SMTP session or stops at the mismatch a real server would give.
- Pro
A pipeline settings window that draws its stages as cards on a canvas, redraws the lines when a stage runs in parallel, and recomputes the total time, with an inspector for each stage.
- Pro
Environment Variables Settings
Domains and deliveryAn environment variables settings panel that shows where each variable is set across Production, Preview and Development, counts what is missing, fills a missing value with Copy from, and previews a pasted .env file before it imports.
- Pro
A Git connection settings panel: a provider and repository, a connection that disconnects through an alert dialog, and a branch table that sends patterns to environments, first match wins, with a tester.
- Pro
Developer Tools Settings
API and webhooksFour SDK switches and an environment choice beside a request panel they steer: capture lists six requests, choosing one opens its JSON, and debug, verbose errors and timing each add their own part to what it shows.
- Pro
Custom Domain Settings
Domains and deliveryA custom domain settings panel that leads with what visitors get at each step and walks four stages on a vertical rail: add a domain, add a CNAME and a TXT record with copy buttons, a simulated two-try DNS check and a sample certificate.