Free tool

HTML + CSS + JS merger

Paste or drop your three files and get one HTML document with the stylesheet and script inlined exactly where the tags were. Single-file apps have no paths to break — this is the quickest way to make one.

Merge into one file

Drop files on the boxes or paste. If your HTML already has <link href="style.css"> or <script src="app.js"> tags, they are replaced in place; otherwise the CSS goes into the head and the script before </body>.

Drop index.html
Drop style.css
Drop app.js

Why merge at all?

A single HTML file is the most reliable thing you can turn into an APK. There are no paths to get wrong — no href="/style.css" that resolves to the root of the phone instead of your folder, no ../img/ that points outside the bundle, no case-sensitivity surprise where Logo.PNG is not logo.png. Everything the page needs is in the one document, and the document is what gets bundled.

For a small app — a calculator, a form, a quiz, a landing page, an HTML5 game with a few hundred lines — a single file is also easier to send, easier to back up and easier to version. This tool takes the split version you wrote (because splitting is nicer to edit) and produces the merged version you build from.

What the merger does, exactly

What it cannot do

Images, fonts and other binary assets stay as references. If your CSS says url(bg.png) the merged file still needs bg.png next to it — either ZIP the two together, or convert the image with the Image to Data URI tool and paste the result in. Several stylesheets or scripts need merging in order first; paste them into the box one after another.

Frequently asked questions

Does the order of my CSS and JS matter?

Yes, in the same way it does on the web. If you have several stylesheets, paste them into the CSS box in the order they were linked. Same for scripts.

Why is my script moved to the end of the body?

So that it runs after the elements it refers to exist — the same effect as the defer attribute. If your script must run in the head (rare), untick the option and it is inlined where the tag was.

My CSS references images with url(). Are those inlined?

No — only text is merged. Keep the images next to the HTML and ZIP the folder, or turn them into data URIs with the Image to Data URI tool so they can live inside the file.

Will the merged file work offline inside the APK?

If everything it needs is now inside it, yes. Run it through the Offline Readiness Checker: any remaining external link, module script or fetch() call is listed with a fix.

Is anything uploaded?

No. The files are read by your browser with the FileReader API and the merge happens in page JavaScript. The download is generated locally.

Read next

Related tools

Your HTML, installed on a phone today

Upload the file or ZIP, pick a name and an icon, and download a signed Android APK in minutes. Free to start — no Android Studio, no code changes, no card.

Convert HTML to APK — free