diff --git a/website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/index.mdx b/website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/index.mdx
index e57d82920..8ac413822 100644
--- a/website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/index.mdx
+++ b/website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/index.mdx
@@ -1,189 +1,420 @@
----
-slug: /fax/getting-started/first-steps-with-fax
-sidebar_position: 0
-x-custom:
- tags:
- - language:javascript
- - language:python
- - language:csharp
- - language:php
- - language:ruby
- - sdk:compatibility
- - product:fax
----
-
-# Sending and Receiving Fax
-It's easy to start sending and receiving Fax using SignalWire's APIs! You will need at least one number to send and receive faxes, so if you don't have one already, please follow the instructions below.
-
-## Obtaining and configuring a number
-[Log in](https://signalwire.com/signin) to your SignalWire Space. From the Phone Numbers section, you can [buy a new phone number](/platform/phone-numbers/getting-started/buying-a-phone-number).
-
-## Receiving your first fax
-There are two parts to receiving a fax:
-1. A SignalWire Phone Number;
-2. The instructions to actually receive the Fax.
-
-After you have acquired a number, or in case you have one already, open its settings by clicking on "Edit Settings". Scroll down until you reach "Voice and Fax Settings", as shown in the next figure, and configure it to:
-
-- "ACCEPT INCOMING CALLS AS" -> Fax
-- "HANDLE FAXES USING" -> LaML Webhooks
-
-
-
- Phone Number Settings
-
-
-### Setting up the instructions to receive faxes
-#### Using cXML scripts
-cXML scripts allow you to tell SignalWire how to handle calls, messages, or faxes by using instructions called Verbs. You can learn more about cXML scripts on [this article](/compatibility-api/guides/general/creating-and-using-cxml-scripts), but essentially we need to create a new Bin in the LaML section of the Dashboard with the following instructions:
-
-```xml
-
-
-
-
-```
-
-Lastly, we need to connect the phone number with the instructions to receive the fax, so we copy the Bin's URL from the cXML Applications section of the Dashboard and paste it in the phone number's "WHEN A FAX COMES IN" field, like this:
-
-
-
- Updating the Phone Number instructions.
-
-
-That's it! You can now start receiving faxes on your phone number, and they will appear under LaML -> Faxes in your Dashboard:
-
-
-
- Faxes Tab
-
-
-#### Using Compatibility SDKs
-If you wish to avoid using SignalWire's cXML Applications, you can use our SDKs and host the instructions yourself. Please see our [`` Verb instructions](/compatibility-api/cxml/fax/receive#receive-a-fax) for specific code examples.
-
-You'll then need to make your code accessible to SignalWire through a Webhook. We have a great [guide on how to do this using ngrok](/platform/basics/guides/technical-troubleshooting/how-to-test-webhooks-with-ngrok)!
-
-## Sending your first fax
-There are three parts to sending a fax:
-1. A SignalWire Phone Number;
-2. The destination number;
-3. The publicly available media to be sent, such as a PDF file.
-
-### Using our REST API
-Using our [Send a Fax endpoint](/rest/compatibility-api/endpoints/send-fax) you can make a POST request to
-
-`https://.signalwire.com/api/laml/2010-04-01/Accounts//Faxes`
-
-with the following body parameters:
-- `From`
-- `To`
-- `MediaUrl`
-
-### Using Compatibility SDKs
-You can send faxes using [our SDK's Send a Fax function](/compatibility-api/client-sdks/methods/faxes/send), in multiple languages:
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-
-
-
-```javascript
-const { RestClient } = require('@signalwire/compatibility-api')
-const client = RestClient('YourProjectID', 'YourAuthToken', { signalwireSpaceUrl: 'example.signalwire.com' })
-
-client.fax.faxes.create({
- from: '+13103383454',
- to: '+13104456789',
- mediaUrl: 'https://example.com/fax.pdf'
-})
-.then(fax => console.log(fax.sid))
-.done();
-```
-
-
-
-
-```python
-from signalwire.rest import Client as signalwire_client
-
-client = signalwire_client("YourProjectID", "YourAuthToken", signalwire_space_url = 'example.signalwire.com')
-
-fax = client.fax.faxes \
- .create(
- from_='+13103383454',
- to='+13104456789',
- media_url='https://example.com/fax.pdf'
- )
-
-print(fax.sid)
-```
-
-
-
-
-```csharp
-using System;
-using System.Collections.Generic;
-using Twilio;
-using Twilio.Rest.Fax.V1;
-
-class Program
-{
- static void Main(string[] args)
-{
- TwilioClient.Init("YourProjectID", "YourAuthToken", new Dictionary { ["signalwireSpaceUrl"] = ".signalwire.com" });
-
- var fax = FaxResource.Create(
- from: "+13103383454",
- to: "+13104456789",
- mediaUrl: new Uri("https://example.com/fax.pdf")
- );
-
- Console.WriteLine(fax.Sid);
-}
-}
-```
-
-
-
-
-```php
- "example.signalwire.com"));
-
- $fax = $client->fax->v1->faxes
- ->create("+13104456789", // to
- "https://example.com/fax.pdf", // mediaUrl
- array("from" => "+13103383454")
- );
-
- print($fax->sid);
-?>
-```
-
-
-
-
-```ruby
-require 'signalwire/sdk'
-
-@client = Signalwire::REST::Client.new 'YourProjectID', 'YourAuthToken', signalwire_space_url: "example.signalwire.com"
-
-fax = @client.fax.faxes
-.create(
- from: '+13103383454',
- to: '+13104456789',
- media_url: 'https://example.com/fax.pdf'
-)
-puts fax.sid
-```
-
-
-
-
-## Next steps
-
-Congratulations! You can now send and receive faxes using SignalWire. You are now ready to explore the advanced guides in the Fax section from the left menu.
+---
+title: First steps with fax
+sidebar_label: First steps with fax
+slug: /fax/getting-started/first-steps-with-fax
+description: Learn how to send and receive your first fax using SignalWire's APIs
+sidebar_position: 0
+x-custom:
+ tags:
+ - language:javascript
+ - language:python
+ - language:csharp
+ - language:php
+ - language:ruby
+ - sdk:compatibility
+ - product:fax
+---
+
+import Subtitle from "@site/src/components/typography/Subtitle";
+import ResourceAdmonition from "/docs/main/_common/dashboard/_resource-admonition.mdx";
+import LegacyInstructions from "/docs/main/_common/dashboard/legacy-instructions.mdx";
+import UiAccordion from "/docs/main/_common/dashboard/_ui-accordion.mdx";
+import { MdWarning, MdList, MdFilterAlt } from "react-icons/md";
+
+# First steps with fax
+
+Learn how to send and receive your first fax using SignalWire.
+You'll configure a phone number, create SWML or cXML scripts to handle faxes, and use SWML or our APIs to send faxes programmatically.
+
+## Prerequisites
+
+Before you begin, you'll need:
+
+- A [SignalWire account](https://signalwire.com/signup)
+- At least one phone number capable of receiving faxes
+- Your [API credentials](https://my.signalwire.com/credentials) (Space URL, Project ID, and API token)
+
+## Receiving your first fax
+
+To receive faxes, you'll configure a phone number to handle incoming faxes using either a SWML or cXML script that defines what happens when a fax arrives.
+
+
+
+
+
+
+#### Obtain a phone number
+
+First, you need a SignalWire phone number capable of receiving faxes.
+
+[Log in](https://signalwire.com/signin) to your SignalWire Space.
+If you don't have a number yet, navigate to the Phone Numbers section and [buy a new phone number](/platform/phone-numbers/getting-started/buying-a-phone-number).
+
+#### Create a SWML script
+
+From your [SignalWire Dashboard](https://my.signalwire.com/dashboard), create a new Resource by navigating to the resources tab, then select the "New Script" option and choose "New SWML application".
+
+
+ 
+
+
+Paste the following code into your script:
+
+```yaml andJson
+version: 1.0.0
+sections:
+ main:
+ - receive_fax: {}
+```
+
+Save the script; it should now be located in your Resources tab on the left sidebar under Scripts.
+
+#### Configure phone number for SWML
+
+Navigate to the "Phone Numbers" tab on the left sidebar.
+
+From this tab, click on your newly purchased phone number, then on the "edit settings" option.
+In the settings page that appears, select "Assign Resource" for "Inbound Call Settings".
+
+
+ 
+
+
+Select the newly created SWML script, then click "Save" to apply the configuration.
+
+#### Test your setup
+
+Send a test fax to your configured phone number and then open the respective call log found in the "logs" section on your left sidebar.
+
+Copy the link found in the "document" parameter and paste it into your browser to view your fax.
+
+
+
+
+ 
+
+
+
+
+
+
+
+
+
+#### Obtain a phone number
+
+First, you need a SignalWire phone number capable of receiving faxes.
+
+[Log in](https://signalwire.com/signin) to your SignalWire Space.
+If you don't have a number yet, navigate to the Phone Numbers section and [buy a new phone number](/platform/phone-numbers/getting-started/buying-a-phone-number).
+
+#### Create a cXML script
+
+From your [SignalWire Dashboard](https://my.signalwire.com/dashboard), create a new Resource by selecting the Script option, then choose "cXML script".
+
+
+ 
+
+
+In the pane that appears, select the "Script Will Be Used For" dropdown, then select Faxing.
+
+
+ 
+
+
+Paste the following XML into your script:
+
+```xml
+
+
+
+
+```
+
+Save the script; it should now be located in your Resources tab on the left sidebar under Scripts.
+
+#### Configure phone number for cXML
+
+Navigate to the "Phone Numbers" tab on the left sidebar.
+From this tab, click on your newly purchased phone number, then on the "edit settings" option.
+In the settings page that appears, select "Assign Resource" for "Inbound Call Settings".
+
+
+ 
+
+
+Select the newly created cXML script, then click "Save" to apply the configuration.
+
+#### Test your setup
+
+Send a test fax to your configured phone number and then open the respective call log found in the "logs" section on your left sidebar.
+
+Copy the link found in the "document" parameter and paste it into your browser to view your fax.
+
+
+ 
+
+
+
+
+
+
+
+:::info [Alternative: Using webhooks or SDKs]
+
+If you prefer to host the fax handling logic yourself, you have two options:
+
+- **For SWML**: Configure a webhook endpoint that returns SWML. See our [SWML receive_fax documentation](/swml/methods/receive_fax) for more details.
+- **For cXML**: Use our Compatibility SDKs. See our [`` verb documentation](/compatibility-api/cxml/fax/receive#receive-a-fax) for code examples.
+
+You'll need to make your code accessible to SignalWire through a webhook.
+We have a [guide on testing webhooks with ngrok](/platform/basics/guides/technical-troubleshooting/how-to-test-webhooks-with-ngrok) to help you get started.
+
+:::
+
+
+
+
+
+
+
+Follow the above guide with these changes:
+
+### Create a cXML Script
+
+Navigate to the "LaML/cXML" section of your Dashboard and create a new cXML bin.
+
+### Assign a phone number
+
+Open the settings for your phone number. Under "Voice and Fax Settings":
+
+- Set "Accept Incoming Calls As" to "Fax"
+- Set "Handle Faxes Using" to "LaML Webhooks"
+- Select your cXML script from the dropdown for "When a Fax Comes In"
+
+
+
+
+
+
+
+## Sending your first fax
+
+
+
+
+SWML can be used to send a fax through the `send_fax` method.
+The below example script sends a fax, then posts the result to a predetermined webhook.
+
+```yaml andJson
+version: 1.0.0
+sections:
+ main:
+ - send_fax:
+ document: https://example.com/fax_to_send.pdf
+ - execute:
+ dest: 'https://example.com/handle_outgoing_fax_result'
+```
+
+
+
+
+You can also utilize SWML to send faxes via a POST request to the SignalWire REST API [Create a Call endpoint](/rest/signalwire-rest/endpoints/calling/calls-create).
+
+This can be done either by referencing a SWML script via webhook URL or by including the SWML inline in the request body.
+
+
+
+
+
+```bash
+ curl -L -g 'https://{Your_Space_Name}.signalwire.com/api/calling/calls' \
+ -u '{YourProjectID}:{YourAPIToken}' \
+ -H 'Content-Type: application/json' \
+ -H 'Accept: application/json' \
+ --data-raw '{
+ "command": "dial",
+ "params": {
+ "from": "sip:from-sip@example-112233445566.sip.signalwire.com",
+ "to": "sip:from-sip@example-112233445567.sip.signalwire.com",
+ "url": "https://example.com/swml-for-faxing"
+ }
+ }'
+```
+
+
+
+
+```bash
+ curl -L -g 'https://{Your_Space_Name}.signalwire.com/api/calling/calls' \
+ -u '{YourProjectID}:{YourAPIToken}' \
+ -H 'Content-Type: application/json' \
+ -H 'Accept: application/json' \
+ --data-raw '{
+ "command": "dial",
+ "params": {
+ "from": "sip:from-sip@example-112233445566.sip.signalwire.com",
+ "to": "sip:from-sip@example-112233445567.sip.signalwire.com",
+ "swml": "{\"version\":\"1.0.0\",\"sections\":{\"main\":[{\"send_fax\":{\"document\":\"https://example.com/fax_to_send.pdf\"}},{\"execute\":{\"dest\":\"https://example.com/handle_outgoing_fax
+ _result\"}}]}}"
+ }
+ }'
+```
+
+
+
+
+
+
+
+Send a fax by making a POST request to the Compatibility API [Send Fax endpoint](/rest/compatibility-api/endpoints/send-fax):
+
+```bash
+ curl -L -g 'https://{YOUR_SPACE_URL}.signalwire.com/api/laml/2010-04-01/Accounts/{YourProjectID}/Faxes' \
+ -u '{YourProjectID}:{YourAPIToken}' \
+ -H 'Content-Type: application/x-www-form-urlencoded' \
+ -H 'Accept: application/json' \
+ -d 'MediaUrl=https://example.com/fax_to_send.pdf' \
+ -d 'To=+1xxxxxxxxxx' \
+ -d 'From=+1xxxxxxxxxx'
+```
+
+
+
+You can also send faxes using our [Compatibility SDK's Send a Fax function](/compatibility-api/client-sdks/methods/faxes/send):
+
+
+
+
+```javascript
+const { RestClient } = require("@signalwire/compatibility-api");
+const client = RestClient("YourProjectID", "YourAuthToken", {
+ signalwireSpaceUrl: "example.signalwire.com",
+});
+
+client.fax.faxes
+ .create({
+ from: "+13103383454",
+ to: "+13104456789",
+ mediaUrl: "https://example.com/fax.pdf",
+ })
+ .then((fax) => console.log(fax.sid))
+ .done();
+```
+
+
+
+
+```python
+from signalwire.rest import Client as signalwire_client
+
+client = signalwire_client("YourProjectID", "YourAuthToken", signalwire_space_url = 'example.signalwire.com')
+
+fax = client.fax.faxes \
+ .create(
+ from_='+13103383454',
+ to='+13104456789',
+ media_url='https://example.com/fax.pdf'
+ )
+
+print(fax.sid)
+```
+
+
+
+
+```csharp
+using System;
+using System.Collections.Generic;
+using Twilio;
+using Twilio.Rest.Fax.V1;
+
+class Program
+{
+ static void Main(string[] args)
+{
+ TwilioClient.Init("YourProjectID", "YourAuthToken", new Dictionary { ["signalwireSpaceUrl"] = ".signalwire.com" });
+
+ var fax = FaxResource.Create(
+ from: "+13103383454",
+ to: "+13104456789",
+ mediaUrl: new Uri("https://example.com/fax.pdf")
+ );
+
+ Console.WriteLine(fax.Sid);
+}
+}
+```
+
+
+
+
+```php
+ "example.signalwire.com"));
+
+ $fax = $client->fax->v1->faxes
+ ->create("+13104456789", // to
+ "https://example.com/fax.pdf", // mediaUrl
+ array("from" => "+13103383454")
+ );
+
+ print($fax->sid);
+?>
+```
+
+
+
+
+```ruby
+require 'signalwire/sdk'
+
+@client = Signalwire::REST::Client.new 'YourProjectID', 'YourAuthToken', signalwire_space_url: "example.signalwire.com"
+
+fax = @client.fax.faxes
+.create(
+ from: '+13103383454',
+ to: '+13104456789',
+ media_url: 'https://example.com/fax.pdf'
+)
+puts fax.sid
+```
+
+
+
+
+
+
+
+## Next steps
+
+
+ }
+ href="/fax/getting-started/common-fax-errors"
+ >
+ Troubleshoot and understand common fax transmission errors
+
+ }
+ href="/fax/getting-started/list-faxes-to-csv-in-all-languages"
+ >
+ Export your fax history to CSV format for reporting
+
+ }
+ href="/fax/getting-started/filter-faxes-by-number-status-and-date"
+ >
+ Query and filter your fax records
+
+
diff --git a/website/images/dashboard/phone-numbers/assign-resource-messaging-example.webp b/website/images/dashboard/phone-numbers/assign-resource-messaging-example.webp
new file mode 100644
index 000000000..6753cee46
Binary files /dev/null and b/website/images/dashboard/phone-numbers/assign-resource-messaging-example.webp differ
diff --git a/website/images/dashboard/resources/fax-cxml-script-example.webp b/website/images/dashboard/resources/fax-cxml-script-example.webp
new file mode 100644
index 000000000..306e917f0
Binary files /dev/null and b/website/images/dashboard/resources/fax-cxml-script-example.webp differ
diff --git a/website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/fax-2.webp b/website/images/dashboard/resources/hybrid-fax-handling-paste.webp
similarity index 100%
rename from website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/fax-2.webp
rename to website/images/dashboard/resources/hybrid-fax-handling-paste.webp
diff --git a/website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/fax-1.webp b/website/images/dashboard/resources/hybrid-fax-handling.webp
similarity index 100%
rename from website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/fax-1.webp
rename to website/images/dashboard/resources/hybrid-fax-handling.webp
diff --git a/website/images/dashboard/sidebar/fax-logs-example.webp b/website/images/dashboard/sidebar/fax-logs-example.webp
new file mode 100644
index 000000000..ba9bb02b8
Binary files /dev/null and b/website/images/dashboard/sidebar/fax-logs-example.webp differ
diff --git a/website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/fax-3.webp b/website/images/dashboard/sidebar/hybrid-fax-logs.webp
similarity index 100%
rename from website/docs/main/home/calling/fax/getting-started/first-steps-with-fax/fax-3.webp
rename to website/images/dashboard/sidebar/hybrid-fax-logs.webp
diff --git a/website/images/dashboard/sidebar/voice-logs.webp b/website/images/dashboard/sidebar/voice-logs.webp
new file mode 100644
index 000000000..2a6b6f7aa
Binary files /dev/null and b/website/images/dashboard/sidebar/voice-logs.webp differ