# Lapakin Tools > Lapakin Tools is a collection of free online tools for business, students, developers, and everyday tasks. ## Everyday tools - [Spin Wheel](https://tools.lapakin.com/spin-wheel): Spin the wheel to pick a random winner. - [Random Number Generator](https://tools.lapakin.com/random-number): Generate random numbers within any range you set. - [Random Picker](https://tools.lapakin.com/random-picker): Pick a random winner from your list of names or items. - [Random Pair Generator](https://tools.lapakin.com/random-pair): Shuffle names into random pairs in one click. - [Group Divider](https://tools.lapakin.com/group-divider): Divide a list of names into balanced random groups. - [Simple Raffle](https://tools.lapakin.com/simple-raffle): Run a simple raffle draw from a list of entries. - [Password Generator](https://tools.lapakin.com/password-generator): Create strong random passwords with custom options. - [Username Generator](https://tools.lapakin.com/username-generator): Generate unique random usernames for your accounts. ## Developer tools - [JSON Formatter](https://tools.lapakin.com/dev-tools/json-formatter): Format minified or badly indented JSON into clean, readable output with your choice of indent width, right in your browser, with no upload step. - [JSON Validator](https://tools.lapakin.com/dev-tools/json-validator): Check whether JSON is valid and see the exact line and column where the syntax breaks, plus the keys, depth, and size of the whole document. - [JSON Minifier](https://tools.lapakin.com/dev-tools/json-minifier): Remove every space, newline, and indent from JSON to shrink the payload size, ready to paste into a request body, a config file, or a cache key. - [JSON to YAML](https://tools.lapakin.com/dev-tools/json-to-yaml): Convert JSON data into YAML with correct quoting, nesting, and indentation, for config files, GitHub Actions, Docker Compose, and Kubernetes manifests. - [YAML to JSON](https://tools.lapakin.com/dev-tools/yaml-to-json): Convert YAML into JSON with correct types for numbers, booleans, and null values, so you can paste the result straight into an API request body. - [XML Formatter](https://tools.lapakin.com/dev-tools/xml-formatter): Re-indent XML with consistent spacing and readable nesting, keeping the declaration, DOCTYPE, attribute order, and text content exactly as they were. - [XML Validator](https://tools.lapakin.com/dev-tools/xml-validator): Check that XML is well-formed and see the element, attribute, and depth counts, with the parser message and position when the document is broken. - [XML to JSON](https://tools.lapakin.com/dev-tools/xml-to-json): Convert XML into JSON with attributes, text content, and repeated child elements mapped to keys, arrays, and a text field whose name you choose. - [HTML Formatter](https://tools.lapakin.com/dev-tools/html-formatter): Re-indent HTML with consistent indentation and one tag per line, while keeping script, style, preformatted, and textarea content untouched inside. - [HTML Minifier](https://tools.lapakin.com/dev-tools/html-minifier): Strip comments and redundant whitespace from HTML to cut page weight, keeping one meaningful space between inline elements and preformatted text. - [CSS Formatter](https://tools.lapakin.com/dev-tools/css-formatter): Re-indent CSS so each declaration sits on its own line and nested at-rules are indented, without touching strings, comments, or values inside url(). - [CSS Minifier](https://tools.lapakin.com/dev-tools/css-minifier): Remove comments and redundant whitespace from CSS to shrink the file, keeping strings and url() values byte-identical to what you originally wrote. - [JavaScript Formatter](https://tools.lapakin.com/dev-tools/javascript-formatter): Re-indent JavaScript with consistent braces and line breaks, using a tokenizer that keeps strings, template literals, comments, and regex intact. - [JavaScript Minifier](https://tools.lapakin.com/dev-tools/javascript-minifier): Strip comments and unneeded whitespace from JavaScript to cut file size, while keeping strings, template literals, and regex expressions byte-identical. - [SQL Formatter](https://tools.lapakin.com/dev-tools/sql-formatter): Re-indent SQL queries so major clauses start on their own line, uppercasing keywords while leaving string literals and comments exactly as written. - [SQL Minifier](https://tools.lapakin.com/dev-tools/sql-minifier): Collapse whitespace in SQL to remove blank lines and padding, keeping string literals intact so the query still runs exactly the same way as before. - [Regex Tester](https://tools.lapakin.com/dev-tools/regex-tester): Test a regular expression against sample text and see every match with its position, capture groups, and named groups highlighted inline in place. - [Base64 Encoder](https://tools.lapakin.com/dev-tools/base64-encoder): Encode any text to Base64 with full UTF-8 support, including emoji and non-Latin scripts, and switch to URL-safe output when a token needs it. - [Base64 Decoder](https://tools.lapakin.com/dev-tools/base64-decoder): Decode a Base64 string back to text, with UTF-8 validation and a hex dump when the decoded bytes turn out to be binary rather than readable text. - [URL Encoder](https://tools.lapakin.com/dev-tools/url-encoder): Percent-encode characters that are unsafe in a URL, with component or whole-URL rules, optional plus signs for spaces, and copy-ready output. - [URL Decoder](https://tools.lapakin.com/dev-tools/url-decoder): Decode a percent-encoded URL back to readable text, with optional plus-to-space handling for query strings and safe behaviour on broken input. - [HTML Entity Encoder](https://tools.lapakin.com/dev-tools/html-entity-encoder): Escape ampersands, angle brackets, and quotes into HTML entities, or encode every printable character at once. Safe for HTML, email, and JSON payloads. - [HTML Entity Decoder](https://tools.lapakin.com/dev-tools/html-entity-decoder): Turn named and numeric HTML entities back into the characters they represent, covering common HTML5 names, decimal, and hexadecimal references. - [Unicode Converter](https://tools.lapakin.com/dev-tools/unicode-converter): Convert text to Unicode escapes and back, covering code points beyond the basic multilingual plane so emoji and other symbols round-trip cleanly. - [ASCII Converter](https://tools.lapakin.com/dev-tools/ascii-converter): Show the decimal, hexadecimal, and binary code behind every character in your text, as a quick code list or an aligned reference table. Covers Latin and beyond. - [String Escape Tool](https://tools.lapakin.com/dev-tools/string-escape-tool): Escape and unescape a string for JSON, JavaScript, URL, or SQL, covering backslashes, quotes, control characters, and all percent escapes. Both directions. - [Slug Generator](https://tools.lapakin.com/dev-tools/slug-generator): Turn a title into a clean URL slug by stripping accents, folding punctuation into words, and joining what is left with the separator you pick. - [UUID Generator](https://tools.lapakin.com/dev-tools/uuid-generator): Generate random UUID v4 or time-ordered UUID v7 values in bulk, with optional uppercase, brace, and no-dash formatting for your database. No server needed. - [ULID Generator](https://tools.lapakin.com/dev-tools/ulid-generator): Create ULID identifiers that carry a timestamp, so values stay sortable by creation time while staying short, 26 characters, and URL-safe. No server needed. - [Nano ID Generator](https://tools.lapakin.com/dev-tools/nanoid-generator): Generate short, URL-friendly random IDs in bulk, with a length and alphabet you choose, from digits only up to the full URL-safe character set. - [Unix Timestamp Converter](https://tools.lapakin.com/dev-tools/unix-timestamp-converter): Turn a Unix timestamp into UTC, ISO 8601, and local date and time, with seconds or milliseconds input, plus a plain-English age and weekday. - [Timestamp Converter](https://tools.lapakin.com/dev-tools/timestamp-converter): Convert a date and time between ISO 8601, UTC, local time, and Unix seconds and milliseconds, with the weekday and time zone offset shown as well. - [JWT Secret Generator](https://tools.lapakin.com/dev-tools/jwt-secret-generator): Create random signing secrets for JSON Web Tokens with a length, alphabet, and batch size you choose, plus the estimated entropy of each secret. - [JWT Decoder](https://tools.lapakin.com/dev-tools/jwt-decoder): Read the header and claims of a JSON Web Token, see the algorithm, subject, issued time, and expiry, and check whether it has already expired. - [JWT Generator](https://tools.lapakin.com/dev-tools/jwt-generator): Create a signed JSON Web Token in the browser with HS256, HS384, or HS512, adding issued-at and expiry claims to the claim set you paste in. - [Hash Generator](https://tools.lapakin.com/dev-tools/hash-generator): Hash text with MD5, SHA-1, SHA-256, SHA-384, or SHA-512, compare the digests side by side, and see a warning when a legacy algorithm is picked. - [HMAC Generator](https://tools.lapakin.com/dev-tools/hmac-generator): Sign a message with a secret key using HMAC SHA-1, SHA-256, SHA-384, or SHA-512, and copy the hex digest to verify a webhook or API payload. - [SHA-256 Generator](https://tools.lapakin.com/dev-tools/sha256-generator): Generate the SHA-256 hash of any text as hex or Base64, the digest format used for checksums, file verification, and content integrity checks. - [SHA-512 Generator](https://tools.lapakin.com/dev-tools/sha512-generator): Generate the SHA-512 hash of any text as hex or Base64, the 512-bit digest used for checksums, file fingerprints, and longer-lived signatures. - [Password Hash Generator](https://tools.lapakin.com/dev-tools/password-hash-generator): Derive a PBKDF2 password hash in the browser with a random salt, an iteration count you control, and a self-describing string for your database. - [Cron Expression Generator](https://tools.lapakin.com/dev-tools/cron-expression-generator): Build a cron expression from schedule choices and see a plain-English description with the next five run times, ready to paste into crontab. - [Cron Expression Parser](https://tools.lapakin.com/dev-tools/cron-expression-parser): Explain a cron expression field by field in plain English and list the next run times, so you can confirm that a schedule does what you meant. - [IP Address Converter](https://tools.lapakin.com/dev-tools/ip-address-converter): Convert an IPv4 address to decimal, hexadecimal, octal, and binary forms, and see its address class, range type, and reverse DNS name for lookups. - [CIDR Calculator](https://tools.lapakin.com/dev-tools/cidr-calculator): Work out the network address, broadcast address, subnet mask, wildcard mask, and usable host range for any IPv4 CIDR block in a single step. - [IPv4 Subnet Calculator](https://tools.lapakin.com/dev-tools/ipv4-subnet-calculator): Split an IPv4 network into equal subnets and list the CIDR block, address range, first and last host, and usable host count of each piece you get. - [Port Checker](https://tools.lapakin.com/dev-tools/port-checker): Look up what a port number is used for, with its service name, protocol, and typical use, plus what a browser can and cannot reach on that port. - [HTTP Status Code Lookup](https://tools.lapakin.com/dev-tools/http-status-code-lookup): Search every assigned HTTP status code with its name, class, and what it means for a request, from 100 informational to 511 network authentication. - [MIME Type Lookup](https://tools.lapakin.com/dev-tools/mime-type-lookup): Find the MIME type for a file extension or the extensions for a MIME type, covering images, fonts, documents, archives, audio, video, and code. - [User Agent Parser](https://tools.lapakin.com/dev-tools/user-agent-parser): Read a User-Agent string and see the browser, version, operating system, device type, and whether it is a crawler, with edge and Chrome told apart. - [URL Parser](https://tools.lapakin.com/dev-tools/url-parser): Break a URL into its scheme, host, port, path segments, query, and fragment, and see whether it is secure and how many parameters it carries. - [Query String Parser](https://tools.lapakin.com/dev-tools/query-string-parser): Read a query string or a URL parameter by parameter, with decoded values for repeated keys and a normalised query string you can copy straight back. - [Color Converter](https://tools.lapakin.com/dev-tools/color-converter): Convert a color between HEX, RGB, HSL, HSV, and CMYK, including an alpha channel, and get its contrast ratio against black and white text. Works with CSS. - [CSS Color Generator](https://tools.lapakin.com/dev-tools/css-color-generator): Build a tint to shade palette from a single base colour, and get it as ready-to-paste CSS custom properties for your design token naming. Copy and paste ready. ## Writer tools - [Word Counter](https://tools.lapakin.com/writer-tools/word-counter): Count words, unique words, and characters in your text as you type, with no signup, no upload, and no word limit of any kind. Unique words too, live. - [Character Counter](https://tools.lapakin.com/writer-tools/character-counter): Count characters in your text with or without spaces, plus bytes, lines, and paragraphs, for form limits, meta tags, and SMS budgets. Handy for meta tags. - [Sentence Counter](https://tools.lapakin.com/writer-tools/sentence-counter): Count the sentences in your text and see the average and longest sentence length, so you can spot sentences that run long before a reader does. - [Paragraph Counter](https://tools.lapakin.com/writer-tools/paragraph-counter): Count the paragraphs in your text along with sentences, words, and the average length of each paragraph, for article and essay targets. Handy for essay drafts. - [Line Counter](https://tools.lapakin.com/writer-tools/line-counter): Count the lines in your text, including or excluding blank lines, which is what most code editors and submission forms actually limit. Handy for form limits. - [Letter Counter](https://tools.lapakin.com/writer-tools/letter-counter): Count the letters in your text and see how many are uppercase, lowercase, and distinct, ignoring digits and punctuation. Handy when an assignment counts letters. - [Word Frequency Counter](https://tools.lapakin.com/writer-tools/word-frequency-counter): See how often each word appears in your text, ranked by count or alphabetically, so you can spot repetition and overused words in a draft. Finds repeated words. - [Keyword Density Checker](https://tools.lapakin.com/writer-tools/keyword-density-checker): Measure how often a keyword or phrase appears in your text and what share of the total it takes, for on-page SEO and over-optimisation checks. - [Text Statistics](https://tools.lapakin.com/writer-tools/text-statistics): See every text statistic at once, from words and sentences to letters, digits, punctuation, and the average words per sentence and paragraph. Everything at once. - [Typing Speed Calculator](https://tools.lapakin.com/writer-tools/typing-speed-calculator): Measure your typing speed in words and characters per minute, with a built-in timer you can start and stop as you type a passage. Words per minute is the unit. - [Writing Goal Tracker](https://tools.lapakin.com/writer-tools/writing-goal-tracker): Set a word target and watch your progress toward it as you type, with the remaining words and a share of the goal completed. Gives a draft a target to hit. - [Reading Time Calculator](https://tools.lapakin.com/writer-tools/reading-time-calculator): Calculate how long your text takes to read at slow, average, and fast speeds, so you can set expectations before publishing an article. Useful for a blog byline. - [Speaking Time Calculator](https://tools.lapakin.com/writer-tools/speaking-time-calculator): Calculate how long your script takes to say out loud at your speaking pace, with extra time allowed for punctuation pauses and delivery. Useful for a video script. - [Case Converter](https://tools.lapakin.com/writer-tools/case-converter): Convert text between lowercase, uppercase, title case, sentence case, camel, Pascal, snake, kebab, constant, and alternating case. Keeps paragraphs intact. - [Title Case Converter](https://tools.lapakin.com/writer-tools/title-case-converter): Convert text to Title Case with correct handling of minor words and existing acronyms, so a headline reads the way an editor would want it. Keeps acronyms intact. - [Sentence Case Converter](https://tools.lapakin.com/writer-tools/sentence-case-converter): Convert text to sentence case, capitalising the first word after each full stop while leaving acronyms and the pronoun I untouched. Usual style for web headings. - [Uppercase Converter](https://tools.lapakin.com/writer-tools/uppercase-converter): Convert any text to uppercase, with an option that also turns accented letters such as é into their plain capital equivalent. For headings and ASCII only. - [Lowercase Converter](https://tools.lapakin.com/writer-tools/lowercase-converter): Convert any text to lowercase, with an option that strips accents so a letter such as É becomes a plain e. Useful for tags, slugs, and case-sensitive values. - [Alternating Case Converter](https://tools.lapakin.com/writer-tools/alternating-case-converter): Alternate the letter case of your text letter by letter, or word by word, which is the format used for decorative headings and playful captions. - [camelCase Converter](https://tools.lapakin.com/writer-tools/camel-case-converter): Convert text or a variable name to camelCase, joining words with no separator so the first letter of each word is capitalised. Used for JavaScript variables. - [PascalCase Converter](https://tools.lapakin.com/writer-tools/pascal-case-converter): Convert text or a variable name to PascalCase, joining words with no separator and capitalising the first letter of every word. Used for class and type names. - [snake_case Converter](https://tools.lapakin.com/writer-tools/snake-case-converter): Convert text or a variable name to snake_case, joining lowercase words with underscores, which is the standard for Python and database columns. - [kebab-case Converter](https://tools.lapakin.com/writer-tools/kebab-case-converter): Convert text to kebab-case, joining lowercase words with hyphens, the format used for URL slugs, CSS class names, and file names. Used for slugs and CSS classes. - [CONSTANT_CASE Converter](https://tools.lapakin.com/writer-tools/constant-case-converter): Convert text to CONSTANT_CASE, joining uppercase words with underscores, which is the style used for constants and environment variables. Marks fixed values. - [Remove Duplicate Lines](https://tools.lapakin.com/writer-tools/remove-duplicate-lines): Remove duplicate lines from a list and keep only the first occurrence of each one, with options for case sensitivity, sorting, and blank lines. - [Sort Lines](https://tools.lapakin.com/writer-tools/sort-lines): Sort a list of lines alphabetically, by length, or numerically, with options for case sensitivity and dropping empty lines. Tidy a list or order numbers. - [Remove Extra Spaces](https://tools.lapakin.com/writer-tools/remove-extra-spaces): Collapse multiple spaces and tabs into a single space and trim the ends of every line, while keeping your line breaks exactly as they are. Good after a PDF copy. - [Remove Line Breaks](https://tools.lapakin.com/writer-tools/remove-line-breaks): Join every line of your text into a single line, with a space or nothing between them, which is what form fields and metadata tags need. Good for a meta tag. - [Add Line Breaks](https://tools.lapakin.com/writer-tools/add-line-breaks): Wrap your text to a set line length on word boundaries, keeping paragraph breaks intact so nothing is cut in half mid-word. Handy for print and email. - [Text Cleaner](https://tools.lapakin.com/writer-tools/text-cleaner): Strip hidden and invisible characters, normalise line endings and tabs, collapse blank lines, and trim your text in one pass. The fix after a web copy paste. - [Plain Text Formatter](https://tools.lapakin.com/writer-tools/plain-text-formatter): Strip HTML tags and formatting from a page and leave readable plain text, keeping headings, list items, and paragraph breaks where they belong. - [Text Repeater](https://tools.lapakin.com/writer-tools/text-repeater): Repeat a line of text as many times as you need, joined by a character or a line break, for testing, templates, and placeholders. Handy for test strings. - [Reverse Text](https://tools.lapakin.com/writer-tools/reverse-text): Reverse your text character by character, either as a whole or one line at a time, for puzzles, effects, and checking a string. Safe with emoji. - [Reverse Words](https://tools.lapakin.com/writer-tools/reverse-words): Reverse the order of the words in your text or in each line, keeping every word itself intact and readable. Word order changes, spelling does not. - [Text Diff Checker](https://tools.lapakin.com/writer-tools/text-diff-checker): Compare two texts line by line and see exactly which lines were added, removed, or kept, so you can review a change before you commit it. Nothing is uploaded. - [Find and Replace](https://tools.lapakin.com/writer-tools/find-and-replace): Find a word or phrase in your text and replace every occurrence at once, with whole word, case, and regular expression options. A whole-word option is included. - [Word Finder](https://tools.lapakin.com/writer-tools/word-finder): Count how often a word appears in your text and show every occurrence with the words around it, so you can judge each use in context. Shows the context too. - [Text Extractor](https://tools.lapakin.com/writer-tools/text-extractor): Pull pieces out of your text by a regular expression, or take a range of words or characters, and get the matches back one per line. Regex or word and char range. - [Longest Word Finder](https://tools.lapakin.com/writer-tools/longest-word-finder): Find the longest words in your text with their length, which is how you spot an over-long word before a reader stumbles on it. Long words slow a reader down. - [Shortest Word Finder](https://tools.lapakin.com/writer-tools/shortest-word-finder): Find the shortest words in your text with their length, which is how you spot filler words that can often be deleted without losing meaning. Often filler words. - [Palindrome Checker](https://tools.lapakin.com/writer-tools/palindrome-checker): Check whether a word or sentence reads the same backwards and forwards, with options to ignore case, spaces, and punctuation. Never odd or even is one. - [Anagram Checker](https://tools.lapakin.com/writer-tools/anagram-checker): Check whether two texts are anagrams of each other by comparing their letters, with a note on exactly which letters differ when they are not. Names the difference. - [Extract Emails](https://tools.lapakin.com/writer-tools/extract-emails): Pull every email address out of a text and get the list back one per line, validated and ready to paste into a spreadsheet. Each address is validated first. - [Extract URLs](https://tools.lapakin.com/writer-tools/extract-urls): Pull every web link out of a text and get the list back one per line, with trailing punctuation trimmed off the end of each address. Trims trailing punctuation. - [Extract Hashtags](https://tools.lapakin.com/writer-tools/extract-hashtags): Pull every hashtag out of a text and get the list back one per line, ignoring markdown headings that start with a hash. A hash plus space is a heading. - [Extract Mentions](https://tools.lapakin.com/writer-tools/extract-mentions): Pull every mention such as a username out of a text and get the list back one per line, with email addresses left out unless you want them. Skips email addresses. - [List Formatter](https://tools.lapakin.com/writer-tools/list-formatter): Turn plain lines into a bulleted, numbered, lettered, or Roman numeral list, with a starting number and nesting for indented items. Works with indented outlines. - [Bullet List Generator](https://tools.lapakin.com/writer-tools/bullet-list-generator): Turn one item per line into a bulleted list using a dash, an asterisk, or a plus, ready to paste into any document or content field. No hand numbering needed. - [Numbered List Generator](https://tools.lapakin.com/writer-tools/numbered-list-generator): Turn one item per line into a numbered list that counts up for you, with the starting number and the dot or bracket style you prefer. Renumbers after an edit. - [Comma Separator](https://tools.lapakin.com/writer-tools/comma-separator): Join a list of lines into one line separated by commas, semicolons, pipes, or spaces, with optional trimming and dropping of empty lines. For tag and keyword fields. - [Text to CSV](https://tools.lapakin.com/writer-tools/text-to-csv): Turn lines of text into a proper CSV file with quoting and CRLF line endings, choosing your delimiter and an optional header row. RFC 4180 line endings included. - [CSV to Text](https://tools.lapakin.com/writer-tools/csv-to-text): Turn CSV data back into readable text, handling quoted fields and detecting the delimiter automatically so you can read a spreadsheet as lines. - [Quote Generator](https://tools.lapakin.com/writer-tools/quote-generator): Wrap each line of your text in quotation marks, curly quotes, or a block quote marker, with an optional author attribution for every line. Ready for a quote wall. - [Markdown Formatter](https://tools.lapakin.com/writer-tools/markdown-formatter): Tidy Markdown into a consistent style, with normalised list markers, clean spacing around headings, and no changes inside code blocks. Keeps code blocks intact. - [Markdown to HTML](https://tools.lapakin.com/writer-tools/markdown-to-html): Convert Markdown into clean HTML with headings, lists, links, code, tables, and blockquotes, escaping any raw HTML so the result is safe to paste. - [HTML to Markdown](https://tools.lapakin.com/writer-tools/html-to-markdown): Convert HTML into clean Markdown, keeping headings, lists, links, code, and tables readable, and escaping stray Markdown characters in the text. - [Readability Checker](https://tools.lapakin.com/writer-tools/readability-checker): Measure your text with seven readability formulas at once, including Flesch, Flesch-Kincaid, Gunning Fog, and SMOG, against a target audience. - [Flesch Reading Ease](https://tools.lapakin.com/writer-tools/flesch-reading-ease): Calculate the Flesch Reading Ease score for your text, from 0 to 100, with the difficulty band and the sentence and syllable counts behind it. - [Flesch-Kincaid Grade](https://tools.lapakin.com/writer-tools/flesch-kincaid-grade): Calculate the Flesch-Kincaid grade level of your text, which reports the US school year needed to read it, and compare it to your target audience. - [Passive Voice Checker](https://tools.lapakin.com/writer-tools/passive-voice-checker): Find sentences that use the passive voice, with the suspected verb and a rewritten active version when the sentence names who did the action. - [Sentence Length Checker](https://tools.lapakin.com/writer-tools/sentence-length-checker): See every sentence in your text with its length, so you can find the ones that run long and split them before a reader gives up. Long sentences are the fixable kind. - [Paragraph Length Checker](https://tools.lapakin.com/writer-tools/paragraph-length-checker): See each paragraph with its word and sentence counts, and find the paragraphs that are carrying more than a reader wants at once. Finds the heavy paragraph. - [Lorem Ipsum Generator](https://tools.lapakin.com/writer-tools/lorem-ipsum-generator): Generate placeholder paragraphs, sentences, or a set number of words in Lorem ipsum, Bacon, or Shakespeare style, for a layout before real content exists. - [Citation Generator](https://tools.lapakin.com/writer-tools/citation-generator): Build an APA, MLA, Chicago, Harvard, or IEEE citation from the source details you enter, and see exactly which fields are still missing. Never invents a DOI.