async renderPostBaseHtml(post, newsletter) {
        const postUrl = this.#getPostUrl(post);

        const renderOptions = {
            target: 'email',
            postUrl
        };

        const labs = this.getLabs();
        const accentColor = this.#getAccentColor();

        if (labs?.isSet('emailCustomization')) {
            renderOptions.design = {
                accentColor,
                backgroundColor: newsletter?.get('background_color'),
                backgroundIsDark: this.#checkIfBackgroundIsDark(newsletter),
                headerBackgroundColor: this.#getHeaderBackgroundColor(newsletter, accentColor),
                buttonCorners: newsletter?.get('button_corners'),
                buttonStyle: newsletter?.get('button_style'),
                titleFontWeight: newsletter?.get('title_font_weight'),
                linkStyle: newsletter?.get('link_style'),
                imageCorners: newsletter?.get('image_corners'),
                postTitleColor: newsletter?.get('post_title_color'),
                sectionTitleColor: newsletter?.get('section_title_color'),
                linkColor: newsletter?.get('link_color'),
                // TODO:
                // if the other options above have default or calculated values we
                // should follow the same pattern as the options below to avoid
                //duplicating magic values or logic in renderers
                dividerColor: this.#getDividerColor(newsletter),
                buttonColor: this.#getButtonColor(newsletter, accentColor),
                buttonTextColor: this.#getButtonTextColor(newsletter, accentColor)
            };
        }

        let html;
        if (post.get('lexical')) {
            // only lexical's renderer is async
            html = await this.#renderers.lexical.render(
                post.get('lexical'),
                renderOptions
            );
        } else {
            html = this.#renderers.mobiledoc.render(
                JSON.parse(post.get('mobiledoc')), {target: 'email', postUrl}
            );
        }
        return html;
    }
Always add free and paid segments if email has paywall card