~netlandish/links

25dac9b91a3cabc8a360b5d976532f16fdeceb9d — Rael Monge 4 months ago d32c6d7
Adding translate variable to all the Pricing List page
3 files changed, 164 insertions(+), 75 deletions(-)

M api/graph/schema.resolvers.go
M core/routes.go
M templates/pricing_list.html
M api/graph/schema.resolvers.go => api/graph/schema.resolvers.go +1 -1
@@ 2406,7 2406,7 @@ func (r *mutationResolver) AddListing(ctx context.Context, input *model.AddListi
			return nil, err
		}
		if len(listings) >= 1 {
			validator.Error(lt.Translate("This function is only allowed for paid users.")).
			validator.Error(lt.Translate("Free accounts are only allowed 1 link listing.")).
				WithCode(valid.ErrRestrictedCode)
			return nil, nil
		}

M core/routes.go => core/routes.go +70 -1
@@ 335,8 335,77 @@ func (s *Service) Homepage(c echo.Context) error {

func (s *Service) PricingList(c echo.Context) error {
	lt := localizer.GetSessionLocalizer(c)
	pd := localizer.NewPageData(lt.Translate("Pricing List"))
	pd := localizer.NewPageData(lt.Translate("Pricing"))
	pd.Data["organizations"] = lt.Translate("Organizations")
	pd.Data["organizations_definition"] = lt.Translate(
		"Every account can create unlimited organizations. Each organization can has it's own bookmarks, listings, analytics, etc. All of the features below belong to each organization. Each has their own URL's, groupings, etc. ")

	pd.Data["feature"] = lt.Translate("Feature")
	pd.Data["free"] = lt.Translate("Free")
	pd.Data["personal"] = lt.Translate("Personal")
	pd.Data["business"] = lt.Translate("Business")
	pd.Data["price"] = lt.Translate("Price")
	pd.Data["per_year"] = lt.Translate("per year")
	pd.Data["per_month"] = lt.Translate("per month")
	pd.Data["months"] = lt.Translate("months")
	pd.Data["unlimited"] = lt.Translate("Unlimited")
	pd.Data["public_only"] = lt.Translate("Public only")

	pd.Data["bookmarks"] = lt.Translate("Bookmarks")
	pd.Data["feature_bookmarks_1"] = lt.Translate("Save public/private links")
	pd.Data["feature_bookmarks_2"] = lt.Translate("Save public/private notes")
	pd.Data["feature_bookmarks_3"] = lt.Translate("Follow other organizations (social)")
	pd.Data["feature_bookmarks_4"] = lt.Translate("Organize by tags")
	pd.Data["feature_bookmarks_5"] = lt.Translate("Advanced filtering/search")
	pd.Data["feature_bookmarks_6"] = lt.Translate("Full RSS feeds")
	pd.Data["domain_ssl"] = lt.Translate("Custom domain + SSL")

	pd.Data["link_listings"] = lt.Translate("Link Listings")
	pd.Data["feature_link_listings_1"] = lt.Translate("Create link listings (ie, social media bios, etc.)")
	pd.Data["feature_link_listings_2"] = lt.Translate("Organize listings by tag")
	pd.Data["feature_link_listings_3"] = lt.Translate("Filter/Search listings")
	pd.Data["feature_link_listings_4"] = lt.Translate("Unlimited QR codes per listing")
	pd.Data["full_analytics"] = lt.Translate("Full Analytics")
	pd.Data["listing"] = lt.Translate("Listing")

	pd.Data["link_short"] = lt.Translate("Link Shortening")
	pd.Data["feature_link_short_1"] = lt.Translate("Unlimited short links")
	pd.Data["feature_link_short_2"] = lt.Translate("Organize shorts by tags")
	pd.Data["feature_link_short_3"] = lt.Translate("Filter/Search shorts")
	pd.Data["feature_link_short_4"] = lt.Translate("Unlimited QR codes per short")

	pd.Data["analytics"] = lt.Translate("Analytics")
	pd.Data["feature_analytics_1"] = lt.Translate("Full analytics history")
	pd.Data["feature_analytics_2"] = lt.Translate("QR Code specific analytics")
	pd.Data["feature_analytics_3"] = lt.Translate("Click analytics")
	pd.Data["feature_analytics_4"] = lt.Translate("Referer analyitcs")
	pd.Data["feature_analytics_5"] = lt.Translate("Country analytics")
	pd.Data["feature_analytics_6"] = lt.Translate("City analytics")
	pd.Data["feature_analytics_7"] = lt.Translate("Device analytics")

	pd.Data["collaboration_integrations"] = lt.Translate("Collaboration / Integrations")
	pd.Data["feature_collab_integrat_1"] = lt.Translate("Add unlimited members to organization")
	pd.Data["feature_collab_integrat_2"] = lt.Translate("Slack Integration")
	pd.Data["feature_collab_integrat_3"] = lt.Translate("MatterMost Integration")
	pd.Data["feature_collab_integrat_4"] = lt.Translate("Build Your Own Integration")

	pd.Data["import_export"] = lt.Translate("Import / Export")
	pd.Data["feature_import_export_1"] = lt.Translate("Import from Pinboard")
	pd.Data["feature_import_export_2"] = lt.Translate("Import from Firefox")
	pd.Data["feature_import_export_3"] = lt.Translate("Import from Chrome")
	pd.Data["feature_import_export_4"] = lt.Translate("Import from Safari")
	pd.Data["feature_import_export_5"] = lt.Translate("Export in JSON or HTML")

	pd.Data["api_powered"] = lt.Translate("API Powered")
	pd.Data["feature_api_powered_1"] = lt.Translate("Full GraphQL API Access")
	pd.Data["feature_api_powered_2"] = lt.Translate("GraphQL Playground")
	pd.Data["feature_api_powered_3"] = lt.Translate("OAuth2 Support")
	pd.Data["feature_api_powered_4"] = lt.Translate("Personal Access Tokens")

	pd.Data["self_hosting"] = lt.Translate("Self Hosting")
	pd.Data["feature_self_hosting_1"] = lt.Translate("Fully open source")
	pd.Data["feature_self_hosting_2"] = lt.Translate("Host your own version of Link Taco")
	pd.Data["feature_self_hosting_3"] = lt.Translate("Documentation")

	gmap := gobwebs.Map{
		"pd": pd,

M templates/pricing_list.html => templates/pricing_list.html +93 -73
@@ 7,29 7,26 @@
<section class="card shadow-card">
    <div class="tour-intro">
        <p class="text-center"><strong>{{.pd.Data.organizations}}</strong></p>
        <p>
            Every account can create unlimited organizations. Each organization can has it's own bookmarks,
            listings, analytics, etc. All of the features below belong to each organization. Each has their
            own URL's, groupings, etc.
        </p>
        <p>{{.pd.Data.organizations_definition}}</p>
    </div>

    <table class="striped mb-2" id="price_table">
        <thead>
            <tr>
              <th class="text-center">Feature</th>
              <th class="text-center">Free</th>
              <th class="text-center">Personal</th>
              <th class="text-center">Business</th>
              <th class="text-center">{{.pd.Data.feature}}</th>
              <th class="text-center">{{.pd.Data.free}}</th>
              <th class="text-center">{{.pd.Data.personal}}</th>
              <th class="text-center">{{.pd.Data.business}}</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th class="text-center">Bookmarks</th>
                <th class="text-center">{{.pd.Data.bookmarks}}</th>
                <th colspan="3"></th>
            </tr>
            <tr>
                <td class="text-center">Save public/private links</td>
                <td class="text-center">{{.pd.Data.feature_bookmarks_1}}</td>
                <td class="text-center">{{ .pd.Data.public_only }}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 40,14 37,23 @@
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
                    </svg>
                </td>
            </tr>
            <tr>
                <td class="text-center">{{.pd.Data.feature_bookmarks_2}}</td>
                <td class="text-center">{{ .pd.Data.public_only }}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
                    </svg>
                </td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
                    </svg>
                </td>
            </tr>
            <tr>
                <td class="text-center">Save public/private notes</td>
	     <tr>
                <td class="text-center">{{.pd.Data.feature_bookmarks_3}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 64,8 70,9 @@
                    </svg>
                </td>
            </tr>

            <tr>
                <td class="text-center">Organize by tags</td>
                <td class="text-center">{{.pd.Data.feature_bookmarks_4}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 83,7 90,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Advanced filtering/search</td>
                <td class="text-center">{{.pd.Data.feature_bookmarks_5}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 101,7 108,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Full RSS feeds</td>
                <td class="text-center">{{.pd.Data.feature_bookmarks_6}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 119,7 126,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Custom domain + SSL</td>
                <td class="text-center">{{.pd.Data.domain_ssl}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-error">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 136,17 143,17 @@
                </td>
            </tr>
            <tr>
                <th class="text-center">Link LIstings</th>
                <th class="text-center">{{.pd.Data.link_listings}}</th>
                <th colspan="3"></th>
            </tr>
            <tr>
                <td class="text-center">Save custom link listings <br> (ie, for use in social media bios, etc.)</td>
                <td class="text-center">1 months</td>
                <td class="text-center">Unlimited</td>
                <td class="text-center">Unlimited</td>
                <td class="text-center">{{.pd.Data.feature_link_listings_1}}</td>
                <td class="text-center">1 {{.pd.Data.listing}}</td>
                <td class="text-center">{{.pd.Data.unlimited}}</td>
                <td class="text-center">{{.pd.Data.unlimited}}</td>
            </tr>
            <tr>
                <td class="text-center">Organize listings by tags</td>
                <td class="text-center">{{.pd.Data.feature_link_listings_2}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 164,7 171,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Filter/Search listings</td>
                <td class="text-center">{{.pd.Data.feature_link_listings_3}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 182,7 189,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Unlimited QR codes per listing</td>
                <td class="text-center">{{.pd.Data.feature_link_listings_4}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 200,8 207,8 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Full Analytics</td>
                <td class="text-center">2 months</td>
                <td class="text-center">{{.pd.Data.full_analytics}}</td>
                <td class="text-center">2 {{.pd.Data.months}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 214,7 221,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Custom domain + SSL</td>
                <td class="text-center">{{.pd.Data.domain_ssl}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-error">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 231,17 238,30 @@
                </td>
            </tr>
            <tr>
                <th class="text-center">Link Shortening</th>
                <th class="text-center">{{.pd.Data.link_short}}</th>
                <th colspan="3"></th>
            </tr>
            <tr>
                <td class="text-center">Unlimited short links</td>
                <td class="text-center"></td>
                <td class="text-center"></td>
                <td class="text-center"></td>
                <td class="text-center">{{.pd.Data.feature_link_short_1}}</td>
		<td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
                    </svg>
                </td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
                    </svg>
                </td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
                    </svg>
                </td>

            </tr>
            <tr>
                <td class="text-center">Organize shorts by tags</td>
                <td class="text-center">{{.pd.Data.feature_link_short_2}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 259,7 279,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Filter/Search shorts</td>
                <td class="text-center">{{.pd.Data.feature_link_short_3}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 277,7 297,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Unlimited QR codes per short</td>
                <td class="text-center">{{.pd.Data.feature_link_short_4}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 295,8 315,8 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Full Analytics</td>
                <td class="text-center">2 months</td>
                <td class="text-center">{{.pd.Data.full_analytics}}</td>
                <td class="text-center">2 {{.pd.Data.months}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 309,7 329,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Custom domain + SSL</td>
                <td class="text-center">{{.pd.Data.domain_ssl}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-error">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 326,12 346,12 @@
                </td>
            </tr>
            <tr>
                <th class="text-center">Analytics</th>
                <th class="text-center">{{.pd.Data.analytics}}</th>
                <th colspan="3"></th>
            </tr>
            <tr>
                <td class="text-center">Full analytics history</td>
                <td class="text-center">2 months</td>
                <td class="text-center">{{.pd.Data.feature_analytics_1}}</td>
                <td class="text-center">2 {{.pd.Data.months}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 344,7 364,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">QR Code specific analyt</td>
                <td class="text-center">{{.pd.Data.feature_analytics_2}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 362,7 382,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Click analytics</td>
                <td class="text-center">{{.pd.Data.feature_analytics_3}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 380,7 400,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Referer analyitcs</td>
                <td class="text-center">{{.pd.Data.feature_analytics_4}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 398,7 418,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Country analytics</td>
                <td class="text-center">{{.pd.Data.feature_analytics_5}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 416,7 436,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">City analytics</td>
                <td class="text-center">{{.pd.Data.feature_analytics_6}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-error">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 433,7 453,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Device analytics</td>
                <td class="text-center">{{.pd.Data.feature_analytics_7}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-error">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 450,11 470,11 @@
                </td>
            </tr>
            <tr>
                <th class="text-center">Collaboration / Integrations</th>
                <th class="text-center">{{.pd.Data.collaboration_integrations}}</th>
                <th colspan="3"></th>
            </tr>
            <tr>
                <td class="text-center">Add unlimited members to organization</td>
                <td class="text-center">{{.pd.Data.feature_collab_integrat_1}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-error">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 470,7 490,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Slack Integration</td>
                <td class="text-center">{{.pd.Data.feature_collab_integrat_2}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-error">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 486,7 506,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">MatterMost Integration</td>
                <td class="text-center">{{.pd.Data.feature_collab_integrat_3}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-error">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 502,7 522,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Build Your Own Integration</td>
                <td class="text-center">{{.pd.Data.feature_collab_integrat_4}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 520,11 540,11 @@
                </td>
            </tr>
            <tr>
                <th class="text-center">Import / Export</th>
                <th class="text-center">{{.pd.Data.import_export}}</th>
                <th colspan="3"></th>
            </tr>
            <tr>
                <td class="text-center">Import from Pinboard</td>
                <td class="text-center">{{.pd.Data.feature_import_export_1}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 542,7 562,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Import from Firefox</td>
                <td class="text-center">{{.pd.Data.feature_import_export_2}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 560,7 580,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Import from Chrome</td>
                <td class="text-center">{{.pd.Data.feature_import_export_3}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 578,7 598,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Import from Safari</td>
                <td class="text-center">{{.pd.Data.feature_import_export_4}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 596,7 616,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Export in JSON or HTML</td>
                <td class="text-center">{{.pd.Data.feature_import_export_5}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 614,11 634,11 @@
                </td>
            </tr>
            <tr>
                <th class="text-center">API Powered</th>
                <th class="text-center">{{.pd.Data.api_powered}}</th>
                <th colspan="3"></th>
            </tr>
            <tr>
                <td class="text-center">Full GraphQL API Access</td>
                <td class="text-center">{{.pd.Data.feature_api_powered_1}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 636,7 656,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">GraphQL Playground</td>
                <td class="text-center">{{.pd.Data.feature_api_powered_2}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 654,7 674,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">OAuth2 Support</td>
                <td class="text-center">{{.pd.Data.feature_api_powered_3}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 672,7 692,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Personal Access Tokens</td>
                <td class="text-center">{{.pd.Data.feature_api_powered_4}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 690,11 710,11 @@
                </td>
            </tr>
            <tr>
                <th class="text-center">Self Hosting</th>
                <th class="text-center">{{.pd.Data.self_hosting}}</th>
                <th colspan="3"></th>
            </tr>
            <tr>
                <td class="text-center">Fully open source</td>
                <td class="text-center">{{.pd.Data.feature_self_hosting_1}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 712,7 732,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Host your own version o</td>
                <td class="text-center">{{.pd.Data.feature_self_hosting_2}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 730,7 750,7 @@
                </td>
            </tr>
            <tr>
                <td class="text-center">Documentation</td>
                <td class="text-center">{{.pd.Data.feature_self_hosting_3}}</td>
                <td class="text-center">
                    <svg style="width:20px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="text-primary">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />


@@ 748,11 768,11 @@
                </td>
            </tr>
            <tr>
                <th class="text-center">Price</th>
                <td class="text-center">Free</td>
                <td class="text-center">$25 per year</td>
                <td class="text-center">$25 per month</td>
                <th class="text-center">{{.pd.Data.price}}</th>
                <td class="text-center">{{.pd.Data.free}}</td>
                <td class="text-center">$25 {{.pd.Data.per_year}}</td>
                <td class="text-center">$25 {{.pd.Data.per_month}}</td>
            </tr>
        </tbody>
    </table>
</section>
\ No newline at end of file
</section>